|
@@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.google.common.collect.Lists;
|
|
|
-import com.microsvc.toolkit.config.jwt.utils.JwtUserInfo;
|
|
|
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
import com.yonge.cooleshow.biz.dal.constant.CourseConstant;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.CourseGroupDao;
|
|
@@ -51,7 +49,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.text.MessageFormat;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.ZoneId;
|
|
|
import java.util.*;
|
|
@@ -75,7 +72,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
private final static Logger log = LoggerFactory.getLogger(CourseGroupServiceImpl.class);
|
|
|
|
|
|
@Autowired
|
|
|
- private SysUserFeignService sysUserFeignService;
|
|
|
+ private SysUserService sysUserService;
|
|
|
@Autowired
|
|
|
private RedissonClient redissonClient;
|
|
|
@Autowired
|
|
@@ -129,7 +126,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
*/
|
|
|
@Override
|
|
|
public LiveCourseInfoVo queryLiveCourseInfo(Long groupId) {
|
|
|
- return queryLiveCourseInfo(groupId, getSysUser());
|
|
|
+ return queryLiveCourseInfo(groupId, sysUserService.getUser());
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -159,7 +156,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
result.setMixStudentNum(group.getMixStudentNum());
|
|
|
result.setImGroupId(group.getImGroupId());
|
|
|
result.setAuditVersion(group.getAuditVersion());
|
|
|
- SysUser teacherUser = getSysUser(group.getTeacherId());
|
|
|
+ SysUser teacherUser = sysUserService.getByUserId(group.getTeacherId());
|
|
|
if (teacherUser == null) {
|
|
|
throw new BizException("用户不存在");
|
|
|
}
|
|
@@ -230,11 +227,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
pageInfo.setAsc("b.created_time_");
|
|
|
String os = WrapperUtil.toStr(param, "os");
|
|
|
if (StringUtils.isNotBlank(os) && os.equals("student")) {
|
|
|
- Long studentId = getSysUser().getId();
|
|
|
- if (Objects.isNull(studentId)) {
|
|
|
- throw new BizException("未查询到用户信息请重新登录");
|
|
|
- }
|
|
|
- param.put("studentId", studentId);
|
|
|
+ param.put("studentId", sysUserService.getUserId());
|
|
|
IPage<CourseGroupVo> page = baseMapper.queryStudentCourseGroup(pageInfo, param);
|
|
|
return PageUtil.pageInfo(page);
|
|
|
}
|
|
@@ -361,7 +354,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
Long groupId = WrapperUtil.toLong(param, "groupId", "课程组id不能为空!");
|
|
|
Long studentId = orderGoodsInfo.getUserId();
|
|
|
//校验学生信息
|
|
|
- getSysUser(studentId);
|
|
|
+ sysUserService.findUserById(studentId);
|
|
|
//课程组信息
|
|
|
CourseGroup courseGroup = this.getOne(Wrappers.<CourseGroup>lambdaQuery()
|
|
|
.eq(CourseGroup::getId, groupId)
|
|
@@ -405,18 +398,101 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public IPage<CourseGroupWrapper.TeacherCourseGroupDto> myCourseGroup(IPage<CourseGroupWrapper.TeacherCourseGroupDto> page,
|
|
|
+ public IPage<CourseGroupWrapper.TeacherCourseGroupDto> teacherCourseGroup(IPage<CourseGroupWrapper.TeacherCourseGroupDto> page,
|
|
|
CourseGroupWrapper.TeacherCourseGroupQuery query) {
|
|
|
- List<CourseGroupWrapper.TeacherCourseGroupDto> records = this.baseMapper.myCourseGroup(page, query);
|
|
|
+ List<CourseGroupWrapper.TeacherCourseGroupDto> records = this.baseMapper.teacherCourseGroup(page, query);
|
|
|
if (CollectionUtils.isNotEmpty(records)) {
|
|
|
+ List<Long> courseIds = records.stream().map(CourseGroupWrapper.TeacherCourseGroupDto::getCourseGroupId).distinct().collect(Collectors.toList());
|
|
|
List<Long> subjectIds = records.stream().map(CourseGroupWrapper.TeacherCourseGroupDto::getSubjectId).distinct().collect(Collectors.toList());
|
|
|
List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIds);
|
|
|
Map<Long, String> subjectMap = subjectList.stream().collect(Collectors.toMap(Subject::getId, Subject::getName));
|
|
|
- records.forEach(e -> e.setSubjectName(subjectMap.get(e.getSubjectId())));
|
|
|
+ List<CourseScheduleStudentPayment> list = courseScheduleStudentPaymentService.lambdaQuery()
|
|
|
+ .in(CourseScheduleStudentPayment::getCourseGroupId, courseIds)
|
|
|
+ .list();
|
|
|
+ Map<Long, List<CourseScheduleStudentPayment>> map = list.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseGroupId));
|
|
|
+ //获取所有用户编号
|
|
|
+
|
|
|
+ List<Long> userIds = list.stream().map(CourseScheduleStudentPayment::getUserId).distinct().collect(Collectors.toList());
|
|
|
+ Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> userMap = sysUserService.getMapByIds(userIds);
|
|
|
+ for (CourseGroupWrapper.TeacherCourseGroupDto e : records) {
|
|
|
+ e.setSubjectName(subjectMap.get(e.getSubjectId()));
|
|
|
+ if(StringUtils.equals(query.getCourseType(),"PIANO_ROOM_CLASS")){
|
|
|
+ List<CourseScheduleStudentPayment> studentPayments = map.get(e.getCourseGroupId());
|
|
|
+ e.setStudentNum(studentPayments.size());
|
|
|
+ StringBuffer studentName = new StringBuffer();
|
|
|
+ for (int i = 0; i < studentPayments.size(); i++) {
|
|
|
+ if(studentName.length() > 0){
|
|
|
+ studentName.append(",");
|
|
|
+ }
|
|
|
+ studentName.append(userMap.get(studentPayments.get(i).getUserId()).getUsername());
|
|
|
+ if (i > 0) {
|
|
|
+ studentName.append("等").append(studentPayments.size()).append("人");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ e.setStudentName(studentName.toString());
|
|
|
+ }else{
|
|
|
+ CourseScheduleStudentPayment studentPayment = map.get(e.getCourseGroupId()).get(0);
|
|
|
+ com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = userMap.get(studentPayment.getUserId());
|
|
|
+ e.setStudentName(sysUser.getUsername());
|
|
|
+ e.setCourseGroupName(e.getCourseGroupName() + "-" + sysUser.getUsername());
|
|
|
+ e.setStudentAvatar(sysUser.getAvatar());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return page.setRecords(records);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public IPage<CourseGroupWrapper.StudentCourseGroupDto> studentCourseGroup(IPage<CourseGroupWrapper.StudentCourseGroupDto> page,
|
|
|
+ CourseGroupWrapper.TeacherCourseGroupQuery query) {
|
|
|
+ List<CourseGroupWrapper.StudentCourseGroupDto> records = this.baseMapper.studentCourseGroup(page, query);
|
|
|
+ if (CollectionUtils.isNotEmpty(records)) {
|
|
|
+ List<Long> subjectIds = records.stream().map(CourseGroupWrapper.StudentCourseGroupDto::getSubjectId).distinct().collect(Collectors.toList());
|
|
|
+ List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIds);
|
|
|
+ Map<Long, String> subjectMap = subjectList.stream().collect(Collectors.toMap(Subject::getId, Subject::getName));
|
|
|
+ //获取所有用户编号
|
|
|
+
|
|
|
+ List<Long> userIds = records.stream().map(CourseGroupWrapper.StudentCourseGroupDto::getTeacherId).distinct().collect(Collectors.toList());
|
|
|
+ Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> userMap = sysUserService.getMapByIds(userIds);
|
|
|
+ for (CourseGroupWrapper.StudentCourseGroupDto e : records) {
|
|
|
+ e.setSubjectName(subjectMap.get(e.getSubjectId()));
|
|
|
+ com.yonge.cooleshow.biz.dal.entity.SysUser user = userMap.get(e.getTeacherId());
|
|
|
+ if(Objects.nonNull(user)){
|
|
|
+ e.setTeacherName(user.getRealName());
|
|
|
+ e.setTeacherAvatar(user.getAvatar());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return page.setRecords(records);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<CourseGroupWrapper.CourseStudentVo> queryStudentByGroupId(Long groupId) {
|
|
|
+ List<CourseScheduleStudentPayment> studentPayments = courseScheduleStudentPaymentService.lambdaQuery()
|
|
|
+ .eq(CourseScheduleStudentPayment::getCourseGroupId, groupId)
|
|
|
+ .isNotNull(CourseScheduleStudentPayment::getUserId)
|
|
|
+ .list();
|
|
|
+ if (CollectionUtils.isNotEmpty(studentPayments)) {
|
|
|
+ List<Long> userIds = studentPayments.stream().map(CourseScheduleStudentPayment::getUserId).distinct().collect(Collectors.toList());
|
|
|
+ Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> mapByIds = sysUserService.getMapByIds(userIds);
|
|
|
+ List<CourseGroupWrapper.CourseStudentVo> result = new ArrayList<>();
|
|
|
+ userIds.forEach(e -> {
|
|
|
+ CourseGroupWrapper.CourseStudentVo vo = new CourseGroupWrapper.CourseStudentVo();
|
|
|
+ vo.setStudentId(e);
|
|
|
+ com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = mapByIds.get(e);
|
|
|
+ vo.setStudentName(sysUser.getRealName());
|
|
|
+ vo.setUserName(sysUser.getUsername());
|
|
|
+ vo.setAvatar(sysUser.getAvatar());
|
|
|
+ vo.setImUserId(imGroupService.getImUserId(String.valueOf(e),
|
|
|
+ ClientEnum.STUDENT.name()));
|
|
|
+ result.add(vo);
|
|
|
+ });
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
*
|
|
|
* 直播课购买后数据写入
|
|
@@ -557,7 +633,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
timeList.forEach(o -> {
|
|
|
boolean checkDataTime = courseScheduleService.checkStudentCourseTime(studentId, startTimeFun.apply(o), endTimeFun.apply(o));
|
|
|
if (checkDataTime) {
|
|
|
- SysUser sysUser = sysUserFeignService.queryUserById(studentId);
|
|
|
+ SysUser sysUser = sysUserService.getByUserId(studentId);
|
|
|
throw new BizException("学生:" + sysUser.getUsername() + ",预计安排在" + DateUtil.dateToString(startTimeFun.apply(o), "yyyy年MM月dd号 HH点mm分") + "的课程时间存在冲突!");
|
|
|
}
|
|
|
});
|
|
@@ -586,7 +662,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
);
|
|
|
Optional.ofNullable(teacherTime).orElseThrow(() -> new BizException("未查询到老师趣纠课设置!"));
|
|
|
skipHoliday = teacherTime.getSkipHolidayFlag();
|
|
|
- studentId = getSysUser().getId();
|
|
|
+ studentId = sysUserService.getUserId();
|
|
|
}
|
|
|
|
|
|
//获取当前课程
|
|
@@ -826,7 +902,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
Long groupId = WrapperUtil.toLong(param, "groupId", "课程组id不能为空!");
|
|
|
Long studentId = orderReqInfo.getUserId();
|
|
|
//校验学生信息
|
|
|
- getSysUser(studentId);
|
|
|
+ sysUserService.findUserById(studentId);
|
|
|
//课程组信息
|
|
|
CourseGroup courseGroup = this.getOne(Wrappers.<CourseGroup>lambdaQuery()
|
|
|
.eq(CourseGroup::getId, groupId)
|
|
@@ -1023,9 +1099,9 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
@Override
|
|
|
public void buyLiveSendMessage(CourseScheduleStudentPayment studentPayment, CourseGroup courseGroup) {
|
|
|
//查询老师信息
|
|
|
- SysUser teacherInfo = getSysUser(courseGroup.getTeacherId());
|
|
|
+ SysUser teacherInfo = sysUserService.findUserById(courseGroup.getTeacherId());
|
|
|
//查询学生信息
|
|
|
- SysUser studentInfo = getSysUser(studentPayment.getUserId());
|
|
|
+ SysUser studentInfo = sysUserService.findUserById(studentPayment.getUserId());
|
|
|
try {
|
|
|
|
|
|
String payType = "";
|
|
@@ -1107,17 +1183,6 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
.eq(CourseScheduleStudentPayment::getOrderNo, orderParam.getOrderNo()));
|
|
|
}
|
|
|
|
|
|
- private SysUser getSysUser(Long userId) {
|
|
|
- return Optional.ofNullable(userId)
|
|
|
- .map(sysUserFeignService::queryUserById)
|
|
|
- .orElseThrow(() -> new BizException("用户不存在"));
|
|
|
- }
|
|
|
-
|
|
|
- private SysUser getSysUser() {
|
|
|
- return Optional.ofNullable(sysUserFeignService.queryUserInfo())
|
|
|
- .orElseThrow(() -> new BizException("用户不存在"));
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* <p>定时将符合开售日期的未开售的直播课课程组修改为报名中状态-每隔10分钟执行一次
|
|
|
* <p>定时将符合结束售卖日期的在售卖中的直播课课程组修改为取消或者成课状态状态-每隔10分钟执行一次
|
|
@@ -1335,7 +1400,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
private void sendStudentMessage(Set<Long> userIds, CourseGroup courseGroup) {
|
|
|
for (Long userId : userIds) {
|
|
|
|
|
|
- SysUser user = sysUserFeignService.queryUserById(userId);
|
|
|
+ SysUser user = sysUserService.getByUserId(userId);
|
|
|
// 发短信
|
|
|
try {
|
|
|
Map<Long, String> receivers = new HashMap<>();
|
|
@@ -1401,7 +1466,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
}
|
|
|
// 发短信
|
|
|
try {
|
|
|
- SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
|
|
|
+ SysUser user = sysUserService.getByUserId(courseGroup.getTeacherId());
|
|
|
Map<Long, String> receivers = new HashMap<>();
|
|
|
receivers.put(user.getId(), user.getPhone());
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_LIVE_COMPLETION_FAIL,
|
|
@@ -1412,7 +1477,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
|
|
|
// 发推送
|
|
|
try {
|
|
|
- SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
|
|
|
+ SysUser user = sysUserService.getByUserId(courseGroup.getTeacherId());
|
|
|
Map<Long, String> receivers = new HashMap<>();
|
|
|
receivers.put(user.getId(), user.getPhone());
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.LIVE_COMPLETION_FAIL,
|
|
@@ -1512,7 +1577,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
@Override
|
|
|
public ShareProfitVo shareLiveCourseProfit(SysUser sysUser, Long liveGroupId) {
|
|
|
LiveCourseInfoVo liveCourseInfoVo = queryLiveCourseInfo(liveGroupId, sysUser);
|
|
|
- SysUser teacher = this.getSysUser(liveCourseInfoVo.getTeacherId());
|
|
|
+ SysUser teacher = sysUserService.getByUserId(liveCourseInfoVo.getTeacherId());
|
|
|
|
|
|
LiveCourseGroupShareVo liveCourseGroupShareVo = new LiveCourseGroupShareVo();
|
|
|
BeanUtils.copyProperties(liveCourseInfoVo, liveCourseGroupShareVo);
|
|
@@ -1585,7 +1650,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
private void sendOutSaleMessage(LiveSaleOutDto dto, CourseGroup liveCourseGroupVo) {
|
|
|
// 发送课程下架通知
|
|
|
try {
|
|
|
- SysUser user = sysUserFeignService.queryUserById(liveCourseGroupVo.getTeacherId());
|
|
|
+ SysUser user = sysUserService.getByUserId(liveCourseGroupVo.getTeacherId());
|
|
|
Map<Long, String> receivers = new HashMap<>();
|
|
|
receivers.put(user.getId(), user.getPhone());
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.LIVE_COURSE_OUT_SALE_REASON,
|