| 
					
				 | 
			
			
				@@ -21,7 +21,9 @@ import com.ym.mec.common.page.QueryInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.service.impl.BaseServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.im.ImFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.util.collection.MapUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.util.date.DateConvertor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import jdk.nashorn.internal.ir.WhileNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -802,6 +804,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setStudentNum(studentList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setType(ClassGroupTypeEnum.NORMAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setDelFlag(YesOrNoEnum.NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        classGroup.setCurrentClassTimes(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        classGroup.setTotalClassTimes(classGroup4MixDto.getCourseTimes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupDao.insert(classGroup); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -827,32 +831,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //3、将老师加入关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //课时长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + classGroup4MixDto.getStartClassTime() + ":00"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + classGroup4MixDto.getEndClassTime() + ":00")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .toMinutes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             classGroupTeacherMapper.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             classGroupTeacherMapper.setMusicGroupId(classGroup4MixDto.getMusicGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), "SINGLE", musicGroup.getSettlementType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal salary = new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherSalaryList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //对应基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    salary = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //阶梯课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (classCourseDuration >= teacherDefaultMusicGroupSalary.getDurationMin() && classCourseDuration <= teacherDefaultMusicGroupSalary.getDurationMin()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    salary = baseSalary; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            classGroupTeacherMapper.setSalary(salary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -864,13 +846,21 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<CourseScheduleStudentPayment> courseScheduleStudentPaymentList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal expectPrice = new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int times = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        WhileNode: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         while (true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            int dayOfWeek = now.getDayOfWeek().getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (classGroup4MixDto.getDayOfWeek().equals(dayOfWeek)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Instant instant = now.atZone(ZoneId.systemDefault()).toInstant(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Date classDate = Date.from(instant); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String startClassTime = DateUtil.getDate(classDate) + " " + classGroup4MixDto.getStartClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String endClassTime = DateUtil.getDate(classDate) + " " + classGroup4MixDto.getEndClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int dayOfWeek = now.getDayOfWeek().getValue();//当前星期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (CourseTimeDto courseTimeDto : classGroup4MixDto.getCourseTimeDtoList()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //课时长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .toMinutes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Date classDate = DateConvertor.toDate(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String startClassTime = DateUtil.getDate(classDate) + " " + courseTimeDto.getStartClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String endClassTime = DateUtil.getDate(classDate) + " " + courseTimeDto.getEndClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 CourseSchedule courseSchedule = new CourseSchedule(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 courseSchedule.setSchoolId(schoolId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -890,11 +880,28 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 times++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), "SINGLE", musicGroup.getSettlementType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal salary = new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherSalaryList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //对应基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            salary = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //阶梯课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (classCourseDuration >= teacherDefaultMusicGroupSalary.getDurationMin() && classCourseDuration <= teacherDefaultMusicGroupSalary.getDurationMin()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            salary = baseSalary; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setUserId(classGroupTeacherMapper.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    courseScheduleTeacherSalary.setExpectSalary(classGroupTeacherMapper.getSalary()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    courseScheduleTeacherSalary.setExpectSalary(salary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setUpdateTime(date); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -910,12 +917,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleStudentPayment.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleStudentPaymentList.add(courseScheduleStudentPayment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (classGroup4MixDto.getCourseTimes().equals(times)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break WhileNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             now = now.plusDays(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (classGroup4MixDto.getCourseTimes().equals(times)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //老师结算表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaryList); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1016,32 +1022,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //3、将老师加入关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //课时长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + classGroup4MixDto.getStartClassTime() + ":00"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + classGroup4MixDto.getEndClassTime() + ":00")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .toMinutes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             classGroupTeacherMapper.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             classGroupTeacherMapper.setMusicGroupId(classGroup4MixDto.getMusicGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), "SINGLE", musicGroup.getSettlementType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal salary = new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherSalaryList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //对应基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    salary = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //阶梯课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (classCourseDuration >= teacherDefaultMusicGroupSalary.getDurationMin() && classCourseDuration <= teacherDefaultMusicGroupSalary.getDurationMin()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    salary = baseSalary; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            classGroupTeacherMapper.setSalary(salary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1053,13 +1037,21 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<CourseScheduleStudentPayment> courseScheduleStudentPaymentList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal expectPrice = new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int times = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        WhileNode: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         while (true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             int dayOfWeek = now.getDayOfWeek().getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (classGroup4MixDto.getDayOfWeek().equals(dayOfWeek)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Instant instant = now.atZone(ZoneId.systemDefault()).toInstant(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Date classDate = Date.from(instant); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String startClassTime = DateUtil.getDate(classDate) + " " + classGroup4MixDto.getStartClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String endClassTime = DateUtil.getDate(classDate) + " " + classGroup4MixDto.getEndClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (CourseTimeDto courseTimeDto : classGroup4MixDto.getCourseTimeDtoList()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //课时长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .toMinutes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Date classDate = DateConvertor.toDate(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String startClassTime = DateUtil.getDate(classDate) + " " + courseTimeDto.getStartClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String endClassTime = DateUtil.getDate(classDate) + " " + courseTimeDto.getEndClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 CourseSchedule courseSchedule = new CourseSchedule(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 courseSchedule.setSchoolId(schoolId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1079,11 +1071,28 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 times++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), "SINGLE", musicGroup.getSettlementType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal salary = new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherSalaryList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //对应基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            salary = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //阶梯课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (classCourseDuration >= teacherDefaultMusicGroupSalary.getDurationMin() && classCourseDuration <= teacherDefaultMusicGroupSalary.getDurationMin()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            salary = baseSalary; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setUserId(classGroupTeacherMapper.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    courseScheduleTeacherSalary.setExpectSalary(classGroupTeacherMapper.getSalary()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    courseScheduleTeacherSalary.setExpectSalary(salary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setUpdateTime(date); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1099,8 +1108,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleStudentPayment.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleStudentPaymentList.add(courseScheduleStudentPayment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (classGroup4MixDto.getCourseTimes().equals(times)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break WhileNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             now = now.plusDays(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (classGroup4MixDto.getCourseTimes().equals(times)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1175,6 +1187,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setStudentNum(studentList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setType(ClassGroupTypeEnum.SNAP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setDelFlag(YesOrNoEnum.NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        classGroup.setTotalClassTimes(classGroup4MixDto.getCourseTimes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        classGroup.setCurrentClassTimes(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupDao.insert(classGroup); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1196,32 +1210,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //3、将老师加入关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //课时长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + classGroup4MixDto.getStartClassTime() + ":00"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + classGroup4MixDto.getEndClassTime() + ":00")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .toMinutes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             classGroupTeacherMapper.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             classGroupTeacherMapper.setMusicGroupId(classGroup4MixDto.getMusicGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), "SINGLE", musicGroup.getSettlementType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal salary = new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherSalaryList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //对应基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    salary = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //阶梯课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (classCourseDuration >= teacherDefaultMusicGroupSalary.getDurationMin() && classCourseDuration <= teacherDefaultMusicGroupSalary.getDurationMin()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    salary = baseSalary; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            classGroupTeacherMapper.setSalary(salary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1233,13 +1225,21 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<CourseScheduleStudentPayment> courseScheduleStudentPaymentList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal expectPrice = new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int times = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        WhileNode: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         while (true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             int dayOfWeek = now.getDayOfWeek().getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (classGroup4MixDto.getDayOfWeek().equals(dayOfWeek)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Instant instant = now.atZone(ZoneId.systemDefault()).toInstant(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Date classDate = Date.from(instant); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String startClassTime = DateUtil.getDate(classDate) + " " + classGroup4MixDto.getStartClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String endClassTime = DateUtil.getDate(classDate) + " " + classGroup4MixDto.getEndClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (CourseTimeDto courseTimeDto : classGroup4MixDto.getCourseTimeDtoList()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //课时长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .toMinutes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Date classDate = DateConvertor.toDate(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String startClassTime = DateUtil.getDate(classDate) + " " + courseTimeDto.getStartClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String endClassTime = DateUtil.getDate(classDate) + " " + courseTimeDto.getEndClassTime() + ":00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 CourseSchedule courseSchedule = new CourseSchedule(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 courseSchedule.setSchoolId(schoolId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1259,11 +1259,28 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 times++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), "SINGLE", musicGroup.getSettlementType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal salary = new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherSalaryList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //对应基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            salary = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //阶梯课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (classCourseDuration >= teacherDefaultMusicGroupSalary.getDurationMin() && classCourseDuration <= teacherDefaultMusicGroupSalary.getDurationMin()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            salary = baseSalary; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setUserId(classGroupTeacherMapper.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    courseScheduleTeacherSalary.setExpectSalary(classGroupTeacherMapper.getSalary()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    courseScheduleTeacherSalary.setExpectSalary(salary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleTeacherSalary.setUpdateTime(date); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1279,12 +1296,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleStudentPayment.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseScheduleStudentPaymentList.add(courseScheduleStudentPayment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (classGroup4MixDto.getCourseTimes().equals(times)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break WhileNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             now = now.plusDays(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (classGroup4MixDto.getCourseTimes().equals(times)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //加入合奏班 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ClassGroupRelation classGroupRelation = new ClassGroupRelation(); 
			 |