| 
														
															@@ -1,5 +1,6 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 package com.ym.mec.biz.service.impl; 
														 | 
														
														 | 
														
															 package com.ym.mec.biz.service.impl; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import com.alibaba.fastjson.JSONObject; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.ym.mec.auth.api.client.SysUserFeignService; 
														 | 
														
														 | 
														
															 import com.ym.mec.auth.api.client.SysUserFeignService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.ym.mec.auth.api.entity.SysUser; 
														 | 
														
														 | 
														
															 import com.ym.mec.auth.api.entity.SysUser; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.ym.mec.biz.dal.dao.*; 
														 | 
														
														 | 
														
															 import com.ym.mec.biz.dal.dao.*; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -65,6 +66,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	private ClassGroupService classGroupService; 
														 | 
														
														 | 
														
															 	private ClassGroupService classGroupService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	@Autowired 
														 | 
														
														 | 
														
															 	@Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	private ClassGroupDao classGroupDao; 
														 | 
														
														 | 
														
															 	private ClassGroupDao classGroupDao; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	@Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	private TeacherDao teacherDao; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	@Override 
														 | 
														
														 | 
														
															 	@Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	public BaseDAO<Long, CourseSchedule> getDAO() { 
														 | 
														
														 | 
														
															 	public BaseDAO<Long, CourseSchedule> getDAO() { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -465,7 +468,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		//课程对应助教集合 
														 | 
														
														 | 
														
															 		//课程对应助教集合 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		List<CourseScheduleTeacherSalary> teachingTeacherSalarys = courseScheduleDao.findTeachingTeachers(newCourseScheduleIds); 
														 | 
														
														 | 
														
															 		List<CourseScheduleTeacherSalary> teachingTeacherSalarys = courseScheduleDao.findTeachingTeachers(newCourseScheduleIds); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Map<Long, List<CourseScheduleTeacherSalary>> courseTeachingTeacherMaps = teachingTeacherSalarys.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Map<Long,List<CourseScheduleTeacherSalary>> courseTeachingTeacherMaps = teachingTeacherSalarys.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		Map<Long, CourseSchedule> oldCourseSchedules = oldCourseScheduleList.stream().collect(Collectors.toMap(CourseSchedule::getId,courseSchedule -> courseSchedule)); 
														 | 
														
														 | 
														
															 		Map<Long, CourseSchedule> oldCourseSchedules = oldCourseScheduleList.stream().collect(Collectors.toMap(CourseSchedule::getId,courseSchedule -> courseSchedule)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		newCourseSchedules.forEach(newCourseSchedule -> { 
														 | 
														
														 | 
														
															 		newCourseSchedules.forEach(newCourseSchedule -> { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -480,26 +483,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 throw new BizException("不能调整今天及以前的课程"); 
														 | 
														
														 | 
														
															                 throw new BizException("不能调整今天及以前的课程"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			ArrayList<Date> dates = new ArrayList<>(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			dates.add(newCourseSchedule.getClassDate()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			List<CourseSchedule> coursesByDates = courseScheduleDao.findOverLapCoursesInDay(dates,newCourseSchedule.getStartClassTime(),newCourseSchedule.getEndClassTime()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			//判断是否存在同时间上课的班级 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			if(null==coursesByDates||coursesByDates.size()<=0){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				courseScheduleDao.update(newCourseSchedule); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			}else{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				coursesByDates.forEach(courseSchedule -> { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					if(courseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						//存在时间重叠,需要前端重新调整 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						throw new BizException("所选教师在当天课程安排上存在重叠!"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				}); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				List<Integer> repeatClassGroupIds = coursesByDates.stream().map(CourseSchedule::getClassGroupId).collect(Collectors.toList()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				checkStudentIsRepeat(repeatClassGroupIds); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				oldCourseSchedule.setClassDate(newCourseSchedule.getClassDate()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				oldCourseSchedule.setStartClassTime(newCourseSchedule.getStartClassTime()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				oldCourseSchedule.setEndClassTime(newCourseSchedule.getEndClassTime()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				courseScheduleDao.update(oldCourseSchedule); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			oldCourseSchedule.setClassDate(newCourseSchedule.getClassDate()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			oldCourseSchedule.setStartClassTime(newCourseSchedule.getStartClassTime()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			oldCourseSchedule.setEndClassTime(newCourseSchedule.getEndClassTime()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			courseScheduleDao.update(oldCourseSchedule); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			//被修改的教师编号列表,需要将预计薪水置零 
														 | 
														
														 | 
														
															 			//被修改的教师编号列表,需要将预计薪水置零 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			List<Integer> beReplaceTeacherIds=new ArrayList<>(); 
														 | 
														
														 | 
														
															 			List<Integer> beReplaceTeacherIds=new ArrayList<>(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -511,7 +498,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					VipGroup byCourseSchedule = vipGroupDao.findByCourseSchedule(newCourseSchedule.getId().intValue()); 
														 | 
														
														 | 
														
															 					VipGroup byCourseSchedule = vipGroupDao.findByCourseSchedule(newCourseSchedule.getId().intValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId()); 
														 | 
														
														 | 
														
															 					TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					List<CourseSchedule> courseSchedules=new ArrayList<>(); 
														 | 
														
														 | 
														
															 					List<CourseSchedule> courseSchedules=new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					coursesByDates.add(newCourseSchedule); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(byCourseSchedule, 
														 | 
														
														 | 
														
															 					courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(byCourseSchedule, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 							courseSchedules, 
														 | 
														
														 | 
														
															 							courseSchedules, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 							byTeacherAndCategory.getOnlineClassesSalary(), 
														 | 
														
														 | 
														
															 							byTeacherAndCategory.getOnlineClassesSalary(), 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -568,14 +554,35 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		}); 
														 | 
														
														 | 
														
															 		}); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		//生成修改后的教师课酬 
														 | 
														
														 | 
														
															 		//生成修改后的教师课酬 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		if(!CollectionUtils.isEmpty(needCreateCourseScheduleTeacherSalaryCourse)){ 
														 | 
														
														 | 
														
															 		if(!CollectionUtils.isEmpty(needCreateCourseScheduleTeacherSalaryCourse)){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse,oldCourseSchedules); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		//推送课时调整 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Set<Integer> teacherIds = newCourseSchedules.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		if(teacherIds == null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			teacherIds = new HashSet<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		teacherIds.addAll(oldCourseScheduleList.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet())); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		HashMap<Integer,String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(teacherIds, ",")))), HashMap.class); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		if(map != null && map.size() > 0){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.TEACHER_PUSH_COURSE_SCHEDULE_CHANGE_RESULT, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					map,null,0,"",""); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		} 
														 | 
														
														 | 
														
															 		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	@Transactional(rollbackFor = Exception.class) 
														 | 
														
														 | 
														
															 	@Transactional(rollbackFor = Exception.class) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	@Override 
														 | 
														
														 | 
														
															 	@Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	public void courseSwap(Long courseScheduleId1, Long courseScheduleId2) { 
														 | 
														
														 | 
														
															 	public void courseSwap(Long courseScheduleId1, Long courseScheduleId2) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		if(courseScheduleId1.equals(courseScheduleId2)){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			throw new BizException("请选择不同的课程"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		CourseSchedule courseSchedule1 = courseScheduleDao.get(courseScheduleId1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		CourseSchedule courseSchedule2 = courseScheduleDao.get(courseScheduleId2); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		courseSchedule1.setId(courseScheduleId2); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		courseSchedule2.setId(courseScheduleId1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		List<CourseSchedule> courseSchedules = courseScheduleDao.findCourseSchedulesByIds(new Long[]{courseScheduleId1, courseScheduleId2}); 
														 | 
														
														 | 
														
															 		List<CourseSchedule> courseSchedules = courseScheduleDao.findCourseSchedulesByIds(new Long[]{courseScheduleId1, courseScheduleId2}); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		CourseSchedule temp=new CourseSchedule(); 
														 | 
														
														 | 
														
															 		CourseSchedule temp=new CourseSchedule(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		BeanUtils.copyProperties(courseSchedules.get(0),temp); 
														 | 
														
														 | 
														
															 		BeanUtils.copyProperties(courseSchedules.get(0),temp); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		courseSchedules.get(0).setClassDate(courseSchedules.get(1).getClassDate()); 
														 | 
														
														 | 
														
															 		courseSchedules.get(0).setClassDate(courseSchedules.get(1).getClassDate()); 
														 |