|
@@ -2371,16 +2371,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
if (Objects.isNull(vipGroupCourseAdjustInfo.getVipGroupId())) {
|
|
if (Objects.isNull(vipGroupCourseAdjustInfo.getVipGroupId())) {
|
|
throw new BizException("请指定课程");
|
|
throw new BizException("请指定课程");
|
|
}
|
|
}
|
|
- if (Objects.isNull(vipGroupCourseAdjustInfo.getCourseCreateStartTime())) {
|
|
|
|
- throw new BizException("请指定排课起始时间;");
|
|
|
|
- }
|
|
|
|
|
|
+// if (Objects.isNull(vipGroupCourseAdjustInfo.getCourseCreateStartTime())) {
|
|
|
|
+// throw new BizException("请指定排课起始时间;");
|
|
|
|
+// }
|
|
if (CollectionUtils.isEmpty(vipGroupCourseAdjustInfo.getCourseTimes())) {
|
|
if (CollectionUtils.isEmpty(vipGroupCourseAdjustInfo.getCourseTimes())) {
|
|
throw new BizException("请指定排课周期");
|
|
throw new BizException("请指定排课周期");
|
|
}
|
|
}
|
|
if (StringUtils.isBlank(vipGroupCourseAdjustInfo.getCourseScheduleIds())) {
|
|
if (StringUtils.isBlank(vipGroupCourseAdjustInfo.getCourseScheduleIds())) {
|
|
throw new BizException("请指定需要调整的课程");
|
|
throw new BizException("请指定需要调整的课程");
|
|
}
|
|
}
|
|
- Date courseCreateStartTime = vipGroupCourseAdjustInfo.getCourseCreateStartTime();
|
|
|
|
|
|
+// Date courseCreateStartTime = vipGroupCourseAdjustInfo.getCourseCreateStartTime();
|
|
Date now = new Date();
|
|
Date now = new Date();
|
|
Date today = DateUtil.stringToDate(DateUtil.dateToString(now, DateUtil.ISO_EXPANDED_DATE_FORMAT),
|
|
Date today = DateUtil.stringToDate(DateUtil.dateToString(now, DateUtil.ISO_EXPANDED_DATE_FORMAT),
|
|
DateUtil.ISO_EXPANDED_DATE_FORMAT);
|
|
DateUtil.ISO_EXPANDED_DATE_FORMAT);
|
|
@@ -2461,8 +2461,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
throw new BizException("部分课程不存在");
|
|
throw new BizException("部分课程不存在");
|
|
}
|
|
}
|
|
|
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
|
- calendar.setTime(courseCreateStartTime);
|
|
|
|
|
|
+// Calendar calendar = Calendar.getInstance();
|
|
|
|
+// calendar.setTime(courseCreateStartTime);
|
|
List<Date> courseStartDates = new ArrayList<>();
|
|
List<Date> courseStartDates = new ArrayList<>();
|
|
|
|
|
|
Set<String> holidayDays = new HashSet<>();
|
|
Set<String> holidayDays = new HashSet<>();
|
|
@@ -2475,7 +2475,94 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- while (true) {
|
|
|
|
|
|
+ while (true) {
|
|
|
|
+ for (CourseTimeDto courseTime : vipGroupCourseAdjustInfo.getCourseTimes()) {
|
|
|
|
+ if(courseTime.getCourseCreateStartTime() == null){
|
|
|
|
+ courseTime.setCourseCreateStartTime(vipGroupCourseAdjustInfo.getCourseCreateStartTime());
|
|
|
|
+ }
|
|
|
|
+ if (courseTime.getCourseCreateStartTime().before(today)) {
|
|
|
|
+ throw new BizException("排课起始时间不能小于当前时间");
|
|
|
|
+ }
|
|
|
|
+ if (courseTime.getCalendar() == null) {
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ calendar.setTime(courseTime.getCourseCreateStartTime());
|
|
|
|
+ courseTime.setCalendar(calendar);
|
|
|
|
+ }
|
|
|
|
+ while (vipGroupCourseAdjustInfo.isHoliday() && holidayDays.contains(DateUtil.format(courseTime.getCalendar().getTime(), "yyyy-MM-dd"))) {
|
|
|
|
+ courseTime.getCalendar().add(Calendar.DATE, courseTime.getIntervalDays());
|
|
|
|
+ }
|
|
|
|
+ String dateYmdStr = DateUtil.dateToString(courseTime.getCalendar().getTime(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
|
|
|
|
+ dateYmdStr = dateYmdStr + " " + courseTime.getStartClassTime();
|
|
|
|
+ Date courseStartTime = DateUtil.stringToDate(dateYmdStr, "yyyy-MM-dd HH:mm");
|
|
|
|
+ Date courseEndTime = DateUtil.addMinutes(courseStartTime, singleClassMinutes);
|
|
|
|
+ if(DateUtil.daysBetween(DateUtil.stringToDate(DateUtil.format(courseStartTime,DateUtil.DEFAULT_PATTERN),DateUtil.DEFAULT_PATTERN),
|
|
|
|
+ DateUtil.stringToDate(DateUtil.format(courseEndTime,DateUtil.DEFAULT_PATTERN),DateUtil.DEFAULT_PATTERN)) > 0){
|
|
|
|
+ throw new BizException("单节课时不允许跨天");
|
|
|
|
+ }
|
|
|
|
+ courseStartDates.add(DateUtil.stringToDate(dateYmdStr, DateUtil.EXPANDED_DATE_TIME_FORMAT));
|
|
|
|
+ CourseSchedule courseSchedule = courseSchedules.get(courseStartDates.size() - 1);
|
|
|
|
+ //校验课程是否结算
|
|
|
|
+ this.checkCourseIsSettlement(courseSchedule);
|
|
|
|
+ int num = studentAttendanceDao.countStudentAttendenceNum(courseSchedule.getId().intValue());
|
|
|
|
+ if (num > 0) {
|
|
|
|
+ throw new BizException("{}[{}]{}-{}课程已点名",
|
|
|
|
+ courseSchedule.getName(),
|
|
|
|
+ courseSchedule.getId(),
|
|
|
|
+ DateUtil.dateToString(courseSchedule.getStartClassTime(),
|
|
|
|
+ DateUtil.EXPANDED_DATE_TIME_FORMAT),
|
|
|
|
+ DateUtil.dateToString(courseSchedule.getEndClassTime(),
|
|
|
|
+ DateUtil.EXPANDED_DATE_TIME_FORMAT));
|
|
|
|
+ }
|
|
|
|
+ courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
|
|
+ courseSchedule.setClassDate(courseStartTime);
|
|
|
|
+ courseSchedule.setStartClassTime(courseStartTime);
|
|
|
|
+ courseSchedule.setEndClassTime(courseEndTime);
|
|
|
|
+
|
|
|
|
+ Integer allowOnlineToOffline = 0;
|
|
|
|
+ if(Objects.nonNull(vipGroupActivity)){
|
|
|
|
+ allowOnlineToOffline = vipGroupActivity.getAllowOnlineToOffline();
|
|
|
|
+ ActivityUserMapper activityUserMapper = activityUserMapperDao.findVipUserMapper(vipGroup.getId(), "VIP",null);
|
|
|
|
+ if(activityUserMapper != null){
|
|
|
|
+ if(vipGroup.getId().equals(activityUserMapper.getGiveVipGroupId())){
|
|
|
|
+ allowOnlineToOffline = vipGroupActivity.getGiveAllowOnlineToOffline();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode())) {
|
|
|
|
+ boolean onlineToOffline = courseSchedule.getTeachMode().equals(TeachModeEnum.ONLINE)
|
|
|
|
+ &&vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE);
|
|
|
|
+ boolean offlineToOnline = courseSchedule.getTeachMode().equals(TeachModeEnum.OFFLINE)
|
|
|
|
+ &&vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.ONLINE);
|
|
|
|
+ if(onlineToOffline && Objects.nonNull(vipGroupActivity) && (allowOnlineToOffline == 0 || allowOnlineToOffline == 3)){
|
|
|
|
+ throw new BizException("此VIP课活动不支持线上课调整为线下课");
|
|
|
|
+ }
|
|
|
|
+ if(offlineToOnline&&Objects.nonNull(vipGroupActivity) && (allowOnlineToOffline == 2 || allowOnlineToOffline == 3)){
|
|
|
|
+ throw new BizException("此VIP课活动不支持线下课调整为线上课");
|
|
|
|
+ }
|
|
|
|
+ if(onlineToOffline&&Objects.isNull(vipGroupCourseAdjustInfo.getSchoolId())){
|
|
|
|
+ throw new BizException("请选择教学点");
|
|
|
|
+ }
|
|
|
|
+ courseSchedule.setTeachMode(vipGroupCourseAdjustInfo.getTeachMode());
|
|
|
|
+ if (vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)) {
|
|
|
|
+ if(Objects.nonNull(vipGroupCourseAdjustInfo.getSchoolId())){
|
|
|
|
+ courseSchedule.setSchoolId(vipGroupCourseAdjustInfo.getSchoolId());
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ courseSchedule.setSchoolId(null);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ courseTime.getCalendar().add(Calendar.DATE, courseTime.getIntervalDays());
|
|
|
|
+ if (courseStartDates.size() == courseScheduleIds.size()) {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (courseStartDates.size() == courseScheduleIds.size()) {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*while (true) {
|
|
if (vipGroupCourseAdjustInfo.isHoliday() && holidayDays.contains(DateUtil.format(calendar.getTime(), "yyyy-MM-dd"))) {
|
|
if (vipGroupCourseAdjustInfo.isHoliday() && holidayDays.contains(DateUtil.format(calendar.getTime(), "yyyy-MM-dd"))) {
|
|
calendar.add(Calendar.DATE, 1);
|
|
calendar.add(Calendar.DATE, 1);
|
|
continue;
|
|
continue;
|
|
@@ -2564,7 +2651,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
calendar.add(Calendar.DATE, 1);
|
|
calendar.add(Calendar.DATE, 1);
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
checkNewCourseSchedules(courseSchedules, false,false);
|
|
checkNewCourseSchedules(courseSchedules, false,false);
|
|
//如果是陪练课,调整时间不允许超过有效期
|
|
//如果是陪练课,调整时间不允许超过有效期
|
|
if(groupType == PRACTICE){
|
|
if(groupType == PRACTICE){
|