فهرست منبع

Merge remote-tracking branch 'origin/master'

Joburgess 4 سال پیش
والد
کامیت
39fe26f966
1فایلهای تغییر یافته به همراه51 افزوده شده و 44 حذف شده
  1. 51 44
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

+ 51 - 44
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -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) {