|  | @@ -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();
 |