|
@@ -57,12 +57,13 @@ public class CourseScheduleConvertServiceImpl implements CourseScheduleConvertSe
|
|
|
|
|
|
@Override
|
|
|
public HashMap<String, Object> queryConvertStudent(String courseIds) {
|
|
|
+ List<Long> oldCourseIdList = Arrays.stream(courseIds.split(",")).map(id -> Long.parseLong(id)).collect(Collectors.toList());
|
|
|
//校验课程是否可以进行转换
|
|
|
- this.checkConvertCourseIds(courseIds);
|
|
|
+ this.checkConvertCourseIds(oldCourseIdList);
|
|
|
//获取可转换课程时长,学员数量,课程数量
|
|
|
- CourseConvertSumDto courseConvertSumDto = courseScheduleConvertDao.sumCourseConvert(courseIds);
|
|
|
+ CourseConvertSumDto courseConvertSumDto = courseScheduleConvertDao.sumCourseConvert(oldCourseIdList);
|
|
|
//获取学员列表
|
|
|
- List<BasicUserDto> basicUserDtos = Optional.ofNullable(courseScheduleConvertDao.queryStudents(courseIds)).
|
|
|
+ List<BasicUserDto> basicUserDtos = Optional.ofNullable(courseScheduleConvertDao.queryStudents(oldCourseIdList)).
|
|
|
orElseThrow(()->new BizException("操作失败:所选课程没有学员"));
|
|
|
List<Integer> userIds = basicUserDtos.stream().map(e -> e.getUserId()).collect(Collectors.toList());
|
|
|
Map<Integer,String> subjectMap = MapUtil.convertIntegerMap(studentDao.getStudentSubjectMapList(userIds));
|
|
@@ -77,8 +78,9 @@ public class CourseScheduleConvertServiceImpl implements CourseScheduleConvertSe
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResponseResult action(List<ClassGroupDto> classGroups) {
|
|
|
ClassGroupDto classGroupDto = classGroups.get(0);
|
|
|
+ List<Long> oldCourseIdList = Arrays.stream(classGroupDto.getCourseIds().split(",")).map(id -> Long.parseLong(id)).collect(Collectors.toList());
|
|
|
//校验课程是否可以进行转换
|
|
|
- this.checkConvertCourseIds(classGroupDto.getCourseIds());
|
|
|
+ this.checkConvertCourseIds(oldCourseIdList);
|
|
|
if(!classGroupDto.getConfirmGenerate()){
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
}
|
|
@@ -130,10 +132,7 @@ public class CourseScheduleConvertServiceImpl implements CourseScheduleConvertSe
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- ClassGroupDto groupDto = classGroups.get(0);
|
|
|
- String courseIds = groupDto.getCourseIds();
|
|
|
//获取总课酬
|
|
|
- List<Long> oldCourseIdList = Arrays.stream(courseIds.split(",")).map(e -> Long.parseLong(e)).collect(Collectors.toList());
|
|
|
List<CourseScheduleTeacherSalary> teacherSalaries = courseScheduleTeacherSalaryService.getDao().findByCourseSchedules(oldCourseIdList);
|
|
|
//获取学员课程价值
|
|
|
List<CourseScheduleStudentPayment> studentPayments = courseScheduleStudentPaymentService.getDao().findByCourseScheduleIds(oldCourseIdList);
|
|
@@ -148,9 +147,9 @@ public class CourseScheduleConvertServiceImpl implements CourseScheduleConvertSe
|
|
|
List<Long> courseIdList = courseScheduleList.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
cloudTeacherFreeCourseService.courseConvert(oldCourseIdList,courseIdList);
|
|
|
//记录课程转换相关信息
|
|
|
- courseConvertLogService.save(courseIds,newClassGroupIds,courseIdList,teacherSalaries,studentPayments);
|
|
|
+ courseConvertLogService.save(oldCourseIdList,newClassGroupIds,courseIdList,teacherSalaries,studentPayments);
|
|
|
// 刷新群组
|
|
|
- imUserFriendService.refreshGroupImUserFriend(groupDto.getMusicGroupId(), MUSIC);
|
|
|
+ imUserFriendService.refreshGroupImUserFriend(classGroupDto.getMusicGroupId(), MUSIC);
|
|
|
return BaseController.succeed();
|
|
|
}
|
|
|
|
|
@@ -245,20 +244,19 @@ public class CourseScheduleConvertServiceImpl implements CourseScheduleConvertSe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void checkConvertCourseIds(String courseIds){
|
|
|
+ private void checkConvertCourseIds(List<Long> oldCourseIdList){
|
|
|
//是否同一个班级
|
|
|
- int classNum = courseScheduleConvertDao.countClassNum(courseIds);
|
|
|
+ int classNum = courseScheduleConvertDao.countClassNum(oldCourseIdList);
|
|
|
if(classNum > 1){
|
|
|
throw new BizException("操作失败:请选择同一个班级的课程");
|
|
|
}
|
|
|
//获取合法的课程列表
|
|
|
- int num = courseScheduleConvertDao.countLegalCourse(courseIds);
|
|
|
- String[] split = courseIds.split(",");
|
|
|
- if(num < split.length){
|
|
|
+ int num = courseScheduleConvertDao.countLegalCourse(oldCourseIdList);
|
|
|
+ if(num < oldCourseIdList.size()){
|
|
|
throw new BizException("操作失败:所选部分课程不支持课程转换");
|
|
|
}
|
|
|
//校验学员时长是否一致
|
|
|
- Integer errorNum = courseScheduleConvertDao.checkStudentCourseNum(courseIds,split.length);
|
|
|
+ Integer errorNum = courseScheduleConvertDao.checkStudentCourseNum(oldCourseIdList,oldCourseIdList.size());
|
|
|
if (errorNum != null && errorNum > 0){
|
|
|
throw new BizException("操作失败: 课程关联学员不一致");
|
|
|
}
|