|
@@ -1425,6 +1425,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
int singleClassMinutes = 0;
|
|
|
int courseNum = 0;
|
|
|
+ Date coursesExpireDate = null;
|
|
|
+ Date coursesStartDate = null;
|
|
|
GroupType groupType = vipGroupCourseAdjustInfo.getGroupType();
|
|
|
switch (vipGroupCourseAdjustInfo.getGroupType()){
|
|
|
case PRACTICE:
|
|
@@ -1434,6 +1436,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
singleClassMinutes = practiceGroup.getSingleClassMinutes();
|
|
|
courseNum = courseScheduleDao.countVipGroupCourses(practiceGroup.getId().intValue(),groupType.getCode());
|
|
|
+ coursesExpireDate = practiceGroup.getCoursesExpireDate();
|
|
|
+ coursesStartDate = practiceGroup.getCoursesStartDate();
|
|
|
break;
|
|
|
default:
|
|
|
VipGroup vipGroup = vipGroupDao.get(vipGroupCourseAdjustInfo.getVipGroupId().longValue());
|
|
@@ -1572,6 +1576,26 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
calendar.add(Calendar.DATE, 1);
|
|
|
}
|
|
|
checkNewCourseSchedules(courseSchedules, false);
|
|
|
+ //如果是陪练课,调整时间不允许超过有效期
|
|
|
+ if(groupType == GroupType.PRACTICE){
|
|
|
+ for (CourseSchedule e:courseSchedules) {
|
|
|
+ //已点名的不允许调整
|
|
|
+ List<StudentAttendance> studentAttendances = studentAttendanceDao.findByCourseId(e.getId());
|
|
|
+ if(studentAttendances != null && studentAttendances.size() > 0){
|
|
|
+ throw new BizException("调整失败: 课程已点名");
|
|
|
+ }
|
|
|
+ String classDate = DateUtil.format(e.getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
+ String startClassTime = DateUtil.format(e.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
|
+ Date startDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
|
|
|
+ Date endDateTime = DateUtil.addMinutes(startDateTime,singleClassMinutes);
|
|
|
+ if(DateUtil.minutesBetween(startDateTime,coursesStartDate) > 0){
|
|
|
+ throw new BizException("调整失败: 课程{}调整时间早于有效期",e.getId());
|
|
|
+ }
|
|
|
+ if(DateUtil.minutesBetween(coursesExpireDate,endDateTime) > 0){
|
|
|
+ throw new BizException("调整失败: 课程{}截止时间超过课程有效期",e.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
courseScheduleDao.batchUpdate(courseSchedules);
|
|
|
classGroupService.updateClassGroupInfo(classGroup.getId());
|
|
|
if(vipGroupCourseAdjustInfo.getCourseCreateStartTime().after(now)){
|
|
@@ -3185,13 +3209,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if(Objects.isNull(courseSchedule.getStartClassTime())){
|
|
|
throw new BizException("请指定上课时间");
|
|
|
}
|
|
|
- CourseSchedule oldCourseSchedule = courseScheduleDao.getSurplusCourseWithGroup(courseScheduleId);
|
|
|
+ CourseSchedule oldCourseSchedule = courseScheduleDao.get(courseScheduleId);
|
|
|
if(Objects.isNull(oldCourseSchedule)){
|
|
|
- throw new BizException("调整失败: 课程状态异常");
|
|
|
+ throw new BizException("课程不存在");
|
|
|
}
|
|
|
if(!oldCourseSchedule.getGroupType().equals(GroupType.PRACTICE)){
|
|
|
throw new BizException("请选择网管课");
|
|
|
}
|
|
|
+ //已点名的不允许调整
|
|
|
+ List<StudentAttendance> studentAttendances = studentAttendanceDao.findByCourseId(courseScheduleId);
|
|
|
+ if(studentAttendances != null && studentAttendances.size() > 0){
|
|
|
+ throw new BizException("调整失败: 课程已点名");
|
|
|
+ }
|
|
|
//已结算的课酬不能调整
|
|
|
CourseScheduleTeacherSalary teacherSalary = courseScheduleTeacherSalaryDao.queryByCourseScheduleIdAndUserId(oldCourseSchedule.getId(), oldCourseSchedule.getActualTeacherId());
|
|
|
if(teacherSalary != null && teacherSalary.getSettlementTime() != null){
|
|
@@ -3202,6 +3231,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
|
Date startDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
|
|
|
Date endDateTime = DateUtil.addMinutes(startDateTime,practiceGroup.getSingleClassMinutes());
|
|
|
+ if(DateUtil.minutesBetween(startDateTime,practiceGroup.getCoursesStartDate()) > 0){
|
|
|
+ throw new BizException("调整失败: 调整时间不得早于开课时间");
|
|
|
+ }
|
|
|
if(DateUtil.minutesBetween(practiceGroup.getCoursesExpireDate(),endDateTime) > 0){
|
|
|
throw new BizException("调整失败: 截止时间超过课程有效期");
|
|
|
}
|
|
@@ -3263,7 +3295,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
CourseSchedule oldCourseSchedule = courseScheduleDao.getSurplusCourseWithGroup(courseScheduleId);
|
|
|
if(Objects.isNull(oldCourseSchedule)){
|
|
|
- throw new BizException("调整失败: 课程状态异常");
|
|
|
+ throw new BizException("调整失败: 课程已结束");
|
|
|
}
|
|
|
if(!oldCourseSchedule.getGroupType().equals(GroupType.PRACTICE)){
|
|
|
throw new BizException("请选择网管课");
|
|
@@ -3271,7 +3303,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if(teacherId.equals(oldCourseSchedule.getActualTeacherId())){
|
|
|
throw new BizException("请选择不同的老师");
|
|
|
}
|
|
|
-
|
|
|
//保存修改记录
|
|
|
Date date = new Date();
|
|
|
CourseScheduleModifyLog scheduleModifyLog = new CourseScheduleModifyLog();
|
|
@@ -3289,6 +3320,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
checkNewCourseSchedules(courseSchedules,false);
|
|
|
|
|
|
courseScheduleDao.update(oldCourseSchedule);
|
|
|
+ List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId);
|
|
|
+ if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){
|
|
|
+ throw new BizException("请设置老师默认课酬");
|
|
|
+ }
|
|
|
teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId);
|
|
|
courseScheduleTeacherSalaryDao.batchUpdateTeacher(courseScheduleIds,teacherId);
|
|
|
courseScheduleModifyLogDao.insert(scheduleModifyLog);
|
|
@@ -3348,6 +3383,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
Set<Long> courseScheduleIds = courseSchedules.stream().map(e -> e.getId()).collect(Collectors.toSet());
|
|
|
courseScheduleTeacherSalaryDao.batchUpdateTeacher(courseScheduleIds,teacherId);
|
|
|
|
|
|
+ List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId);
|
|
|
+ if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){
|
|
|
+ throw new BizException("请设置老师默认课酬");
|
|
|
+ }
|
|
|
teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId);
|
|
|
courseScheduleModifyLogDao.batchInsert(scheduleModifyLogs);
|
|
|
|