Jelajahi Sumber

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge 5 tahun lalu
induk
melakukan
8a10d7be92

+ 31 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -1717,8 +1717,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         }
         Map result = new HashMap();
         SysConfig practiceSubjectIdListConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_SUBJECT_ID_LIST);
-        if (!Arrays.asList(practiceSubjectIdListConfig.getParanValue().split(",")).contains(practiceGroup.getSubjectId().toString())) {
+        if (Objects.isNull(practiceGroup.getSubjectId())
+                ||!Arrays.asList(practiceSubjectIdListConfig.getParanValue().split(",")).contains(practiceGroup.getSubjectId().toString())) {
             result.put("status", "DISABLE_SUBJECT");
+            result.put("info", "预约失败,声部选择错误,请重试。");
             return result;
         }
         Integer practiceCourseMinutes = 25;
@@ -1731,15 +1733,18 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         if (practiceGroup.getFirstCourseTime().before(activityStartDate)
                 || practiceGroup.getFirstCourseTime().after(activityEndDate)) {
             result.put("status", "APPLY_DATE_OVERFLOW");
+            result.put("info", "预约失败,陪练课的时间超出活动范围,请重试。");
             return result;
         }
         if (practiceGroup.getSecondCourseTime().before(activityStartDate)
                 || practiceGroup.getSecondCourseTime().after(activityEndDate)) {
             result.put("status", "APPLY_DATE_OVERFLOW");
+            result.put("info", "预约失败,陪练课的时间超出活动范围,请重试。");
             return result;
         }
         if (DateUtil.isSameDay(practiceGroup.getFirstCourseTime(), practiceGroup.getSecondCourseTime())) {
             result.put("status", "TWO_DATE_ON_ONE_DAY");
+            result.put("info", "预约失败,陪练课选择时间错误,请重试。");
             return result;
         }
 
@@ -1761,11 +1766,13 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         if (allCourseDates.get(2).before(activityStartDate)
                 || allCourseDates.get(2).after(courseExpireDate)) {
             result.put("status", "APPLY_DATE_OVERFLOW");
+            result.put("info", "预约失败,陪练课的时间超出活动范围,请重试。");
             return result;
         }
         if (allCourseDates.get(3).before(activityStartDate)
                 || allCourseDates.get(3).after(courseExpireDate)) {
             result.put("status", "APPLY_DATE_OVERFLOW");
+            result.put("info", "预约失败,陪练课的时间超出活动范围,请重试。");
             return result;
         }
         allCourseDates.sort(Comparator.comparing(Date::getTime));
@@ -1777,6 +1784,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
         if (applyTimes >= 1) {
             result.put("status", "IS_APPLIED");
+            result.put("info", "无法重复预约,您已经预约了陪练课。");
             return result;
         }
         applyTimes += 1;
@@ -1801,6 +1809,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         Subject subject = subjectDao.get(practiceGroup.getSubjectId());
         if (Objects.isNull(subject)) {
             result.put("status", "DISABLE_SUBJECT");
+            result.put("info", "预约失败,声部选择错误,请重试。");
             return result;
         }
         practiceGroup.setName(subject.getName() + "•" + sysUser.getUsername());
@@ -1939,33 +1948,39 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         }
 
         List<CourseSchedule> studentRepeatCourse1 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(0), DateUtil.addMinutes(allCourseDates.get(2), practiceCourseMinutes));
-        if (CollectionUtils.isEmpty(studentRepeatCourse1)) {
+        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));
-        if (CollectionUtils.isEmpty(studentRepeatCourse2)) {
+        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));
-        if (CollectionUtils.isEmpty(studentRepeatCourse3)) {
+        if (!CollectionUtils.isEmpty(studentRepeatCourse3)) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             result.put("status", "STUDENT_COURSE_REPEAT");
+            result.put("info", "抱歉啦,当前所选时段组合,与您现有课程"+studentRepeatCourse3.get(0).getName()+"」时段冲突;请选择其他时段重试");
             return result;
         }
         List<CourseSchedule> studentRepeatCourse4 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(3), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
-        if (CollectionUtils.isEmpty(studentRepeatCourse4)) {
+        if (!CollectionUtils.isEmpty(studentRepeatCourse4)) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             result.put("status", "STUDENT_COURSE_REPEAT");
+            result.put("info", "抱歉啦,当前所选时段组合,与您现有课程"+studentRepeatCourse4.get(0).getName()+"」时段冲突;请选择其他时段重试。");
             return result;
         }
 
         //推送
-        List<CourseSchedule> courseSchedules1 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(2), DateUtil.addMinutes(allCourseDates.get(2), practiceCourseMinutes));
-        List<CourseSchedule> courseSchedules2 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(3), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
+        List<CourseSchedule> courseSchedules1 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(0), DateUtil.addMinutes(allCourseDates.get(0), practiceCourseMinutes));
+        List<CourseSchedule> courseSchedules2 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(1), DateUtil.addMinutes(allCourseDates.get(1), practiceCourseMinutes));
+        List<CourseSchedule> courseSchedules3 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(2), DateUtil.addMinutes(allCourseDates.get(2), practiceCourseMinutes));
+        List<CourseSchedule> courseSchedules5 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(3), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
         if (!CollectionUtils.isEmpty(courseSchedules1) || !CollectionUtils.isEmpty(courseSchedules2)) {
             if (courseSchedules1 == null) {
                 courseSchedules1 = new ArrayList<>();
@@ -1973,7 +1988,15 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             if (courseSchedules2 == null) {
                 courseSchedules2 = new ArrayList<>();
             }
+            if (courseSchedules3 == null) {
+                courseSchedules3 = new ArrayList<>();
+            }
+            if (courseSchedules5 == null) {
+                courseSchedules5 = new ArrayList<>();
+            }
             courseSchedules1.addAll(courseSchedules2);
+            courseSchedules1.addAll(courseSchedules3);
+            courseSchedules1.addAll(courseSchedules5);
             List<String> courseDates = new ArrayList<>();
             List<String> courseNames = new ArrayList<>();
             for (int i = 0; i < courseSchedules1.size(); i++) {
@@ -1983,6 +2006,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                     } else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         result.put("status", "TEACHER_PRACTICE_REPEAT");
+                        result.put("info", "抱歉啦,当前所选时段组合,「" + teacher.getRealName() +"」老师已被预约,请选择其他时段或更换老师后重试。");
                         return result;
                     }
                 }