|
@@ -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", "预约失败,陪练课的时间超出活动时间范围(2020-3-31之前),请重试。");
|
|
|
return result;
|
|
|
}
|
|
|
if (practiceGroup.getSecondCourseTime().before(activityStartDate)
|
|
|
|| practiceGroup.getSecondCourseTime().after(activityEndDate)) {
|
|
|
result.put("status", "APPLY_DATE_OVERFLOW");
|
|
|
+ result.put("info", "预约失败,陪练课的时间超出活动时间范围(2020-3-31之前),请重试。");
|
|
|
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", "预约失败,陪练课的时间超出活动时间范围(2020-3-31之前),请重试。");
|
|
|
return result;
|
|
|
}
|
|
|
if (allCourseDates.get(3).before(activityStartDate)
|
|
|
|| allCourseDates.get(3).after(courseExpireDate)) {
|
|
|
result.put("status", "APPLY_DATE_OVERFLOW");
|
|
|
+ result.put("info", "预约失败,陪练课的时间超出活动时间范围(2020-3-31之前),请重试。");
|
|
|
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());
|
|
@@ -1915,7 +1924,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
teacherAttendances.add(teacherAttendance);
|
|
|
}
|
|
|
courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
|
- courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
|
|
|
teacherAttendanceDao.batchInsert(teacherAttendances);
|
|
|
|
|
|
Student student = studentDao.get(practiceGroup.getStudentId());
|
|
@@ -1939,41 +1947,57 @@ 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;
|
|
|
}
|
|
|
+ courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
|
|
|
|
|
|
//推送
|
|
|
- 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));
|
|
|
- if (!CollectionUtils.isEmpty(courseSchedules1) || !CollectionUtils.isEmpty(courseSchedules2)) {
|
|
|
+ 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)
|
|
|
+ ||!CollectionUtils.isEmpty(courseSchedules3) || !CollectionUtils.isEmpty(courseSchedules5)) {
|
|
|
if (courseSchedules1 == null) {
|
|
|
courseSchedules1 = new ArrayList<>();
|
|
|
}
|
|
|
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 +2007,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;
|
|
|
}
|
|
|
}
|