|
@@ -2912,7 +2912,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void courseAdjust(List<CourseSchedule> newCourseSchedules) {
|
|
|
- Date now = new Date();
|
|
|
+ Date date = new Date();
|
|
|
// 课程信息处理
|
|
|
List<Long> courseScheduleIds = newCourseSchedules.stream().map(CourseSchedule::getId).distinct().collect(Collectors.toList());
|
|
|
|
|
@@ -2936,7 +2936,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
newCourseSchedule.setGroupType(oldCourseSchedule.getGroupType());
|
|
|
}
|
|
|
|
|
|
- if(CourseStatusEnum.OVER.equals(oldCourseSchedule.getStatus())&&newCourseSchedule.getStartClassTime().compareTo(now)<0){
|
|
|
+ if(CourseStatusEnum.OVER.equals(oldCourseSchedule.getStatus())&&newCourseSchedule.getStartClassTime().compareTo(date)<0){
|
|
|
throw new BizException("调整无效");
|
|
|
}
|
|
|
|
|
@@ -3030,16 +3030,31 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if(Objects.isNull(newCourseSchedule.getClassDate())){
|
|
|
newCourseSchedule.setClassDate(oldCourseSchedule.getClassDate());
|
|
|
}
|
|
|
- if (newCourseSchedule.getStartClassTime().after(now)) {
|
|
|
+ if (newCourseSchedule.getStartClassTime().after(date)) {
|
|
|
newCourseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
|
}
|
|
|
- if (newCourseSchedule.getStartClassTime().before(now) && newCourseSchedule.getEndClassTime().after(now)) {
|
|
|
+ if (newCourseSchedule.getStartClassTime().before(date) && newCourseSchedule.getEndClassTime().after(date)) {
|
|
|
newCourseSchedule.setStatus(CourseStatusEnum.UNDERWAY);
|
|
|
}
|
|
|
- if (newCourseSchedule.getEndClassTime().before(now)) {
|
|
|
+ if (newCourseSchedule.getEndClassTime().before(date)) {
|
|
|
newCourseSchedule.setStatus(CourseStatusEnum.OVER);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ if (newCourseSchedule.getType() == CourseScheduleType.PRACTICE) {
|
|
|
+ PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(newCourseSchedule.getMusicGroupId()));
|
|
|
+ if (practiceGroup.getType() != TRIAL) {
|
|
|
+ if (DateUtil.minutesBetween(newCourseSchedule.getStartClassTime(), practiceGroup.getCoursesStartDate()) > 0) {
|
|
|
+ throw new BizException("调整失败: 调整时间不得早于开课时间");
|
|
|
+ }
|
|
|
+ if (DateUtil.minutesBetween(practiceGroup.getCoursesExpireDate(), newCourseSchedule.getEndClassTime()) > 0) {
|
|
|
+ throw new BizException("调整失败: 截止时间超过课程有效期");
|
|
|
+ }
|
|
|
+ practiceGroup.setCoursesStartDate(courseScheduleDao.getFirstTime(practiceGroup.getId(),PRACTICE.getCode()));
|
|
|
+ practiceGroup.setCoursesExpireDate(courseScheduleDao.getLastTime(practiceGroup.getId(),PRACTICE.getCode()));
|
|
|
+ practiceGroup.setUpdateTime(date);
|
|
|
+ practiceGroupDao.update(practiceGroup);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//课程冲突检测
|
|
@@ -3058,7 +3073,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
teacherAttendanceMap.put(ta.getCourseScheduleId(), tas);
|
|
|
}
|
|
|
|
|
|
- Date date = new Date();
|
|
|
Long courseScheduleId = null;
|
|
|
List<TeacherAttendance> insertTeacherAttendanceList = new ArrayList<TeacherAttendance>();
|
|
|
List<CourseScheduleTeacherSalary> insertCourseScheduleTeacherSalaryList = new ArrayList<CourseScheduleTeacherSalary>();
|
|
@@ -3120,8 +3134,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
insertTeacherAttendanceList.add(ta);
|
|
|
}
|
|
|
|
|
|
- //清理学生考勤
|
|
|
- studentAttendanceDao.deleteStudentAttendancesByCourse(courseScheduleId);
|
|
|
}
|
|
|
|
|
|
if(newCourseSchedule.getStatus() == CourseStatusEnum.NOT_START && newCourseSchedule.getGroupType() == GroupType.MUSIC){
|
|
@@ -3145,29 +3157,33 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(newCourseSchedule.getStatus() == CourseStatusEnum.NOT_START){
|
|
|
- //如果已结束修改成了未开始,需要更新学生考勤记录
|
|
|
- studentAttendanceDao.deleteStudentAttendancesByCourse(courseScheduleId);
|
|
|
- }
|
|
|
-
|
|
|
- if ((newCourseSchedule.getStatus() != oldCourseSchedule.getStatus() && newCourseSchedule.getStatus() == CourseStatusEnum.NOT_START)) {
|
|
|
-
|
|
|
- if(newCourseSchedule.getGroupType() == GroupType.MUSIC){
|
|
|
- //清理课程作业
|
|
|
- courseHomeworkService.delHomwworkByCourseScheduleId(courseScheduleId);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
VipGroup vipGroup = vipGroupDao.findByCourseSchedule(courseScheduleId);
|
|
|
|
|
|
if(Objects.nonNull(vipGroup)
|
|
|
&&!VipGroupStatusEnum.PROGRESS.equals(vipGroup.getStatus())
|
|
|
&&!VipGroupStatusEnum.FINISHED.equals(vipGroup.getStatus())){
|
|
|
- throw new BizException("非进行中课程组不允许进行此操作");
|
|
|
+ throw new BizException("非进行中或完成的课程组不允许进行此操作");
|
|
|
}
|
|
|
|
|
|
- if(Objects.nonNull(vipGroup)&&newCourseSchedule.getStartClassTime().after(now)){
|
|
|
+ if(Objects.nonNull(vipGroup) && newCourseSchedule.getStartClassTime().after(date)){
|
|
|
vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
|
|
|
+ vipGroup.setUpdateTime(date);
|
|
|
+ vipGroupDao.update(vipGroup);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((newCourseSchedule.getStatus() != oldCourseSchedule.getStatus() && newCourseSchedule.getStatus() == CourseStatusEnum.NOT_START)) {
|
|
|
+
|
|
|
+ //如果已结束修改成了未开始,需要更新学生考勤记录
|
|
|
+ studentAttendanceDao.deleteStudentAttendancesByCourse(courseScheduleId);
|
|
|
+
|
|
|
+ // 清理课程作业
|
|
|
+ courseHomeworkService.delHomwworkByCourseScheduleId(courseScheduleId);
|
|
|
+
|
|
|
+ //删除申述
|
|
|
+ courseScheduleComplaintsDao.delByCourseScheduleId(courseScheduleId);
|
|
|
+
|
|
|
+ //删除评论
|
|
|
+ courseScheduleReviewDao.delByCourseScheduleId(courseScheduleId);
|
|
|
}
|
|
|
|
|
|
// 计算课程时长
|
|
@@ -3175,11 +3191,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
int newMinutes = DateUtil.minutesBetween(newCourseSchedule.getStartClassTime(), newCourseSchedule.getEndClassTime());
|
|
|
|
|
|
// 如果修改了老师、课程类型、课程时长、教学模式,需要修改课酬
|
|
|
- if (VIP.equals(newCourseSchedule.getGroupType())||!ListUtil.isEquals(oldTeacherIdList, newTeacherIdList) || newCourseSchedule.getType() != oldCourseSchedule.getType()
|
|
|
+ if (!ListUtil.isEquals(oldTeacherIdList, newTeacherIdList) || newCourseSchedule.getType() != oldCourseSchedule.getType()
|
|
|
|| newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() || oldMinutes != newMinutes) {
|
|
|
|
|
|
Map<Integer, Teacher> teacherMap = null;
|
|
|
Map<Integer, Map<CourseScheduleType, TeacherDefaultMusicGroupSalary>> musicGroupSalaryMap = new HashMap<Integer, Map<CourseScheduleType, TeacherDefaultMusicGroupSalary>>();
|
|
|
+ Map<Integer, Map<Integer, TeacherDefaultVipGroupSalary>> vipGroupSalaryMap = new HashMap<Integer, Map<Integer, TeacherDefaultVipGroupSalary>>();
|
|
|
|
|
|
if (newCourseSchedule.getGroupType() == GroupType.MUSIC) {
|
|
|
// 所有教师列表
|
|
@@ -3197,20 +3214,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
musicGroupSalaryMap.put(tdms.getUserId(), map);
|
|
|
}
|
|
|
} else if (newCourseSchedule.getGroupType() == GroupType.VIP) {
|
|
|
- //查询这节课每位老师对应的课酬
|
|
|
- courseScheduleTeacherSalaryDao.queryTeacherSalary(courseScheduleId);
|
|
|
- }
|
|
|
-
|
|
|
- // 所有老师默认vip课酬
|
|
|
- List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries = teacherDefaultVipGroupSalaryDao.queryByUserIdList(newTeacherIdList);
|
|
|
- Map<Integer, Map<Integer, TeacherDefaultVipGroupSalary>> vipGroupSalaryMap = new HashMap<Integer, Map<Integer, TeacherDefaultVipGroupSalary>>();
|
|
|
- for (TeacherDefaultVipGroupSalary tdvs : teacherDefaultVipGroupSalaries) {
|
|
|
- Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(tdvs.getUserId());
|
|
|
- if (map == null) {
|
|
|
- map = new HashMap<Integer, TeacherDefaultVipGroupSalary>();
|
|
|
+ // 所有老师默认vip课酬
|
|
|
+ List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries = teacherDefaultVipGroupSalaryDao.queryByUserIdList(newTeacherIdList);
|
|
|
+ for (TeacherDefaultVipGroupSalary tdvs : teacherDefaultVipGroupSalaries) {
|
|
|
+ Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(tdvs.getUserId());
|
|
|
+ if (map == null) {
|
|
|
+ map = new HashMap<Integer, TeacherDefaultVipGroupSalary>();
|
|
|
+ }
|
|
|
+ map.put(tdvs.getVipGroupCategoryId(), tdvs);
|
|
|
+ vipGroupSalaryMap.put(tdvs.getUserId(), map);
|
|
|
}
|
|
|
- map.put(tdvs.getVipGroupCategoryId(), tdvs);
|
|
|
- vipGroupSalaryMap.put(tdvs.getUserId(), map);
|
|
|
}
|
|
|
|
|
|
// 删除课酬
|
|
@@ -3338,9 +3351,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //删除申述
|
|
|
- courseScheduleComplaintsDao.delByCourseScheduleIds(courseScheduleIds);
|
|
|
-
|
|
|
// 调整日志
|
|
|
CourseScheduleModifyLog courseScheduleModifyLog = new CourseScheduleModifyLog();
|
|
|
courseScheduleModifyLog.setCourseScheduleId(courseScheduleId);
|
|
@@ -3357,9 +3367,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
insertCourseScheduleModifyLogList.add(courseScheduleModifyLog);
|
|
|
|
|
|
- if(Objects.nonNull(vipGroup)){
|
|
|
- vipGroupDao.update(vipGroup);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
if (insertTeacherAttendanceList.size() > 0) {
|