| 
					
				 | 
			
			
				@@ -3,9 +3,7 @@ package com.ym.mec.biz.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import static com.ym.mec.biz.dal.enums.GroupType.MUSIC; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import static com.ym.mec.biz.dal.enums.GroupType.VIP; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import static com.ym.mec.biz.dal.enums.PracticeGroupType.CHARGE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import static com.ym.mec.biz.dal.enums.PracticeGroupType.FREE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import static com.ym.mec.biz.dal.enums.PracticeGroupType.TRIAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import static com.ym.mec.biz.dal.enums.PracticeGroupType.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.lang.reflect.InvocationTargetException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigDecimal; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3325,6 +3323,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				// 删除课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				List<Long> courseScheduleIdList = new ArrayList<Long>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				courseScheduleIdList.add(courseScheduleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<CourseScheduleTeacherSalary> oldCourseScheduleTeacherSalaryList = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Map<Long, List<CourseScheduleTeacherSalary>> courseSalaryListMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if(!CollectionUtils.isEmpty(oldCourseScheduleTeacherSalaryList)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					courseSalaryListMap = oldCourseScheduleTeacherSalaryList.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				for (Integer teacherId : newTeacherIdList) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3357,12 +3362,20 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						ts.setExpectSalary(teacherSalary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} else if (newCourseSchedule.getGroupType() == PRACTICE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						BigDecimal freeTeacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								.queryByUserId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						if (teacherDefaultPracticeGroupSalaryList != null && teacherDefaultPracticeGroupSalaryList.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							ts.setExpectSalary(teacherDefaultPracticeGroupSalaryList.get(0).getMainTeacherSalary()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							throw new BizException("请设置老师 的网管课课酬"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						List<CourseScheduleTeacherSalary> teacherSalaries = courseSalaryListMap.get(ts.getCourseScheduleId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(!CollectionUtils.isEmpty(teacherSalaries)&&freeTeacherSalary.compareTo(teacherSalaries.get(0).getExpectSalary())==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							ts.setExpectSalary(freeTeacherSalary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							if (teacherDefaultPracticeGroupSalaryList != null && teacherDefaultPracticeGroupSalaryList.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								ts.setExpectSalary(teacherDefaultPracticeGroupSalaryList.get(0).getMainTeacherSalary()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								throw new BizException("请设置老师 的网管课课酬"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if(ts.getExpectSalary() == null){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4563,26 +4576,26 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         courseScheduleDao.update(oldCourseSchedule); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(oldCourseSchedule.getMusicGroupId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(practiceGroup.getType() != TRIAL){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(practiceGroup.getType() != FREE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedule(courseScheduleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaries)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			BigDecimal teacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				courseScheduleTeacherSalary.setUserId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if(teacherSalary.compareTo(courseScheduleTeacherSalary.getExpectSalary())==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					throw new BizException("请设置老师默认课酬"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				courseScheduleTeacherSalaryDao.batchUpdateTeacher(courseScheduleIds,teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedule(courseScheduleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaries)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					BigDecimal teacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						courseScheduleTeacherSalary.setUserId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						courseScheduleTeacherSalary.setExpectSalary(teacherSalary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					courseScheduleTeacherSalaryDao.batchUpdate(courseScheduleTeacherSalaries); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				courseScheduleTeacherSalary.setExpectSalary(teacherDefaultPracticeGroupSalaries.get(0).getMainTeacherSalary()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			courseScheduleTeacherSalaryDao.batchUpdate(courseScheduleTeacherSalaries); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//删除申述 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		courseScheduleComplaintsDao.delByCourseScheduleId(courseScheduleId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4667,25 +4680,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			courseScheduleDao.batchUpdate(courseSchedules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Set<Long> courseScheduleIds = courseSchedules.stream().map(e -> e.getId()).collect(Collectors.toSet()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if(practiceGroup.getType() != TRIAL){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(CHARGE == practiceGroup.getType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						throw new BizException("请设置老师默认课酬"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					courseScheduleTeacherSalaryDao.batchUpdateTeacher(courseScheduleIds,teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					List<CourseSchedule> groupNotStartCourses = courseScheduleDao.findGroupNotStartCourses(practiceGroupId, PRACTICE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if(!CollectionUtils.isEmpty(groupNotStartCourses)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						BigDecimal teacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						List<Long> courseIds = groupNotStartCourses.stream().map(CourseSchedule::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							courseScheduleTeacherSalary.setUserId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							courseScheduleTeacherSalary.setExpectSalary(teacherSalary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<CourseSchedule> groupNotStartCourses = courseScheduleDao.findGroupNotStartCourses(practiceGroupId, PRACTICE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if(!CollectionUtils.isEmpty(groupNotStartCourses)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					BigDecimal teacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					List<Long> courseIds = groupNotStartCourses.stream().map(CourseSchedule::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						courseScheduleTeacherSalary.setUserId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(teacherSalary.compareTo(courseScheduleTeacherSalary.getExpectSalary())==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							throw new BizException("请设置老师默认课酬"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						courseScheduleTeacherSalaryDao.batchUpdate(courseScheduleTeacherSalaries); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						courseScheduleTeacherSalary.setExpectSalary(teacherDefaultPracticeGroupSalaries.get(0).getMainTeacherSalary()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					courseScheduleTeacherSalaryDao.batchUpdate(courseScheduleTeacherSalaries); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId); 
			 |