|
@@ -700,20 +700,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
throw new BizException("未找到用户分部属性");
|
|
|
}
|
|
|
|
|
|
- //如果是广州分部的,并且声部满足条件的需要特殊处理
|
|
|
- if (sysUser.getOrganId().equals(GUANGZHOU_ORGAN_ID) && GUANGZHOU_SUBJECTIDS.contains(subjectId)) {
|
|
|
- List<MusicGroup> userMusicGroups = musicGroupDao.findUserMusicGroups(userId);
|
|
|
- if (!CollectionUtils.isEmpty(userMusicGroups)) {
|
|
|
- Collections.shuffle(userMusicGroups);
|
|
|
- Integer schoolId = userMusicGroups.get(0).getSchoolId();
|
|
|
- if (schoolSubjectTeachersMap.containsKey(schoolId)) {
|
|
|
- List<Integer> teacherIds = schoolSubjectTeachersMap.get(schoolId).get(subjectId);
|
|
|
- if (!CollectionUtils.isEmpty(teacherIds)) {
|
|
|
- return teacherDao.findSimpleTeachers(teacherIds);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } else if (sysUser.getOrganId().equals(DALIAN_ORGAN_ID)) {
|
|
|
+ if (sysUser.getOrganId().equals(DALIAN_ORGAN_ID)) {
|
|
|
sysUser.setOrganId(SHENYANG_ORGAN_ID);
|
|
|
}
|
|
|
|
|
@@ -1808,10 +1795,83 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
|
|
|
Subject subject = subjectDao.get(practiceGroup.getSubjectId());
|
|
|
if (Objects.isNull(subject)) {
|
|
|
- result.put("status", "DISABLE_SUBJECT");
|
|
|
+ result.put("status", "TEACHER_PRACTICE_REPEAT");
|
|
|
result.put("info", "预约失败,声部选择错误,请重试。");
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ Date monday1 = DateUtil.getWeekDayWithDate(allCourseDates.get(0), Calendar.MONDAY);
|
|
|
+ Date sunday1 = DateUtil.getWeekDayWithDate(allCourseDates.get(0), Calendar.SUNDAY);
|
|
|
+ int tp1 = courseScheduleDao.countTeacherPracticeCourse(practiceGroup.getUserId(), monday1, sunday1);
|
|
|
+ if(tp1>=80){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ result.put("status", "TEACHER_PRACTICE_REPEAT");
|
|
|
+ result.put("info", "抱歉啦,当前所选时段组合,「" + teacher.getRealName() +"」老师已被预约,请重新选择时段或更换老师后重试。");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ Date monday2 = DateUtil.getWeekDayWithDate(allCourseDates.get(1), Calendar.MONDAY);
|
|
|
+ Date sunday2 = DateUtil.getWeekDayWithDate(allCourseDates.get(1), Calendar.SUNDAY);
|
|
|
+ int tp2 = courseScheduleDao.countTeacherPracticeCourse(practiceGroup.getUserId(), monday2, sunday2);
|
|
|
+ if(tp2>=80){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ result.put("status", "TEACHER_PRACTICE_REPEAT");
|
|
|
+ result.put("info", "抱歉啦,当前所选时段组合,「" + teacher.getRealName() +"」老师已被预约,请重新选择时段或更换老师后重试。");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ Date monday3 = DateUtil.getWeekDayWithDate(allCourseDates.get(2), Calendar.MONDAY);
|
|
|
+ Date sunday3 = DateUtil.getWeekDayWithDate(allCourseDates.get(2), Calendar.SUNDAY);
|
|
|
+ int tp3 = courseScheduleDao.countTeacherPracticeCourse(practiceGroup.getUserId(), monday3, sunday3);
|
|
|
+ if(tp3>=80){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ result.put("status", "TEACHER_PRACTICE_REPEAT");
|
|
|
+ result.put("info", "抱歉啦,当前所选时段组合,「" + teacher.getRealName() +"」老师已被预约,请重新选择时段或更换老师后重试。");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ Date monday4 = DateUtil.getWeekDayWithDate(allCourseDates.get(3), Calendar.MONDAY);
|
|
|
+ Date sunday4 = DateUtil.getWeekDayWithDate(allCourseDates.get(3), Calendar.SUNDAY);
|
|
|
+ int tp4 = courseScheduleDao.countTeacherPracticeCourse(practiceGroup.getUserId(), monday4, sunday4);
|
|
|
+ if(tp4>=80){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ result.put("status", "TEACHER_PRACTICE_REPEAT");
|
|
|
+ result.put("info", "抱歉啦,当前所选时段组合,「" + teacher.getRealName() +"」老师已被预约,请重新选择时段或更换老师后重试。");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<CourseSchedule> courseSchedules6 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(0), DateUtil.addMinutes(allCourseDates.get(0), practiceCourseMinutes));
|
|
|
+ List<CourseSchedule> courseSchedules7 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(1), DateUtil.addMinutes(allCourseDates.get(1), practiceCourseMinutes));
|
|
|
+ List<CourseSchedule> courseSchedules8 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(2), DateUtil.addMinutes(allCourseDates.get(2), practiceCourseMinutes));
|
|
|
+ List<CourseSchedule> courseSchedules9 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(3), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(courseSchedules6) || !CollectionUtils.isEmpty(courseSchedules7)
|
|
|
+ ||!CollectionUtils.isEmpty(courseSchedules8) || !CollectionUtils.isEmpty(courseSchedules9)) {
|
|
|
+ if (courseSchedules6 == null) {
|
|
|
+ courseSchedules6 = new ArrayList<>();
|
|
|
+ }
|
|
|
+ if (courseSchedules7 == null) {
|
|
|
+ courseSchedules7 = new ArrayList<>();
|
|
|
+ }
|
|
|
+ if (courseSchedules7 == null) {
|
|
|
+ courseSchedules7 = new ArrayList<>();
|
|
|
+ }
|
|
|
+ if (courseSchedules8 == null) {
|
|
|
+ courseSchedules8 = new ArrayList<>();
|
|
|
+ }
|
|
|
+ courseSchedules6.addAll(courseSchedules7);
|
|
|
+ courseSchedules6.addAll(courseSchedules8);
|
|
|
+ courseSchedules6.addAll(courseSchedules9);
|
|
|
+ for (int i = 0; i < courseSchedules6.size(); i++) {
|
|
|
+ if (courseSchedules6.get(i).getGroupType().equals(GroupType.PRACTICE)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ result.put("status", "TEACHER_PRACTICE_REPEAT");
|
|
|
+ result.put("info", "抱歉啦,当前所选时段组合,「" + teacher.getRealName() +"」老师已被预约,请选择其他时段或更换老师后重试。");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
practiceGroup.setName(subject.getName() + "•" + sysUser.getUsername());
|
|
|
practiceGroup.setSingleClassMinutes(practiceCourseMinutes);
|
|
|
practiceGroupDao.insert(practiceGroup);
|
|
@@ -1946,21 +2006,21 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
studentDao.update(student);
|
|
|
}
|
|
|
|
|
|
- List<CourseSchedule> studentRepeatCourse1 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(0), DateUtil.addMinutes(allCourseDates.get(2), practiceCourseMinutes));
|
|
|
+ List<CourseSchedule> studentRepeatCourse1 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(0), DateUtil.addMinutes(allCourseDates.get(0), practiceCourseMinutes));
|
|
|
if (!CollectionUtils.isEmpty(studentRepeatCourse1)) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
result.put("status", "STUDENT_COURSE_REPEAT");
|
|
|
result.put("info", "抱歉啦,当前所选时段组合,与您现有课程「"+studentRepeatCourse1.get(0).getName()+"」时段冲突,请选择其他时段重试。");
|
|
|
return result;
|
|
|
}
|
|
|
- List<CourseSchedule> studentRepeatCourse2 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(1), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
|
|
|
+ List<CourseSchedule> studentRepeatCourse2 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(1), DateUtil.addMinutes(allCourseDates.get(1), practiceCourseMinutes));
|
|
|
if (!CollectionUtils.isEmpty(studentRepeatCourse2)) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
result.put("status", "STUDENT_COURSE_REPEAT");
|
|
|
result.put("info", "抱歉啦,当前所选时段组合,与您现有课程「"+studentRepeatCourse2.get(0).getName()+"」时段冲突,请选择其他时段重试。");
|
|
|
return result;
|
|
|
}
|
|
|
- List<CourseSchedule> studentRepeatCourse3 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(2), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
|
|
|
+ List<CourseSchedule> studentRepeatCourse3 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(2), DateUtil.addMinutes(allCourseDates.get(2), practiceCourseMinutes));
|
|
|
if (!CollectionUtils.isEmpty(studentRepeatCourse3)) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
result.put("status", "STUDENT_COURSE_REPEAT");
|