|
@@ -2904,8 +2904,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
oldCourses.get(i).setEndClassTime(DateUtil.stringToDate(courseEndTimeStr, "yyyy-MM-dd HH:mm"));
|
|
|
}
|
|
|
|
|
|
+ if(Objects.nonNull(courseAdjustInfo.getSchoolId())){
|
|
|
+ oldCourses.get(i).setSchoolId(courseAdjustInfo.getSchoolId());
|
|
|
+ }
|
|
|
+
|
|
|
if(Objects.nonNull(courseAdjustInfo.getTeachMode())&&!courseAdjustInfo.getTeachMode().equals(oldCourses.get(i).getTeachMode())){
|
|
|
oldCourses.get(i).setTeachMode(courseAdjustInfo.getTeachMode());
|
|
|
+ if(TeachModeEnum.ONLINE.equals(courseAdjustInfo.getTeachMode())){
|
|
|
+ oldCourses.get(i).setSchoolId(null);
|
|
|
+ }
|
|
|
if(VIP.equals(oldCourses.get(i).getGroupType())){
|
|
|
changeSalaryTeachTypes.add(TeachTypeEnum.BISHOP);
|
|
|
courseScheduleTeacherSalaryDao.deleteWithCourseAndTeachRole(Arrays.asList(oldCourses.get(i).getId()), TeachTypeEnum.BISHOP);
|
|
@@ -2956,9 +2963,49 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
|
|
|
if (!courseAdjustInfo.getConfirmGenerate()) {
|
|
|
+ List<CourseScheduleTeacherSalary> cstss = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseAdjustInfo.getCourseScheduleIds());
|
|
|
+ Map<Long, Set<Integer>> courseTeachTypeTeacherIdsMap = new HashMap<>();
|
|
|
+ if(!CollectionUtils.isEmpty(cstss)){
|
|
|
+ courseTeachTypeTeacherIdsMap = cstss.stream().filter(c->TeachTypeEnum.TEACHING.equals(c.getTeacherRole())).collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId, Collectors.mapping(CourseScheduleTeacherSalary::getUserId, Collectors.toSet())));
|
|
|
+ }
|
|
|
+ Set<Integer> allTeacherIds = cstss.stream().map(CourseScheduleTeacherSalary::getUserId).collect(Collectors.toSet());
|
|
|
+ List<SimpleUserDto> teachers = teacherDao.getUsersSimpleInfo(new ArrayList<>(allTeacherIds));
|
|
|
+ Map<Integer, String> idNameMap = new HashMap<>();
|
|
|
+ if(CollectionUtils.isEmpty(teachers)){
|
|
|
+ idNameMap = teachers.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, s->s.getRealName(), (s1, s2)->s1));
|
|
|
+ }
|
|
|
+ //获取班级声部名称
|
|
|
+ List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseAdjustInfo.getCourseScheduleIds());
|
|
|
+ Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
|
|
|
+
|
|
|
+ List<Integer> schoolIds = oldCourses.stream().filter(o -> Objects.nonNull(o.getSchoolId())).map(CourseSchedule::getSchoolId).collect(Collectors.toList());
|
|
|
+ List<School> schools = schoolDao.getSchools(schoolIds);
|
|
|
+ Map<Integer, String> idSchoolNameMap = new HashMap<>();
|
|
|
+ if(!CollectionUtils.isEmpty(schools)){
|
|
|
+ idSchoolNameMap = schools.stream().collect(Collectors.toMap(School::getId, s->s.getName(), (s1, s2)->s1));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<CourseScheduleEndDto> results = new ArrayList<>();
|
|
|
+ for (CourseSchedule oldCours : oldCourses) {
|
|
|
+ CourseScheduleEndDto courseEnd = new CourseScheduleEndDto();
|
|
|
+ BeanUtils.copyProperties(oldCours, courseEnd);
|
|
|
+ courseEnd.setTeacherName(idNameMap.get(oldCours.getId()));
|
|
|
+ if(courseTeachTypeTeacherIdsMap.containsKey(oldCours.getId())){
|
|
|
+ Set<Integer> teacherIds = courseTeachTypeTeacherIdsMap.get(oldCours.getId());
|
|
|
+ Set<String> teacherNames = new HashSet<>();
|
|
|
+ for (Integer teacherId : teacherIds) {
|
|
|
+ teacherNames.add(idNameMap.get(teacherId));
|
|
|
+ }
|
|
|
+ courseEnd.setTeachingTeacherNames(StringUtils.join(teacherNames, ","));
|
|
|
+ }
|
|
|
+ courseEnd.setSubjectName(classGroupSubjectNameMap.get(oldCours.getId()));
|
|
|
+ courseEnd.setSchoolName(idSchoolNameMap.get(oldCours.getSchoolId()));
|
|
|
+
|
|
|
+ results.add(courseEnd);
|
|
|
+ }
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
oldCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
|
|
|
- return BaseController.failed(HttpStatus.PARTIAL_CONTENT, oldCourses, "");
|
|
|
+ return BaseController.failed(HttpStatus.PARTIAL_CONTENT, results, "");
|
|
|
}
|
|
|
|
|
|
courseScheduleDao.batchUpdate(oldCourses);
|