|  | @@ -195,6 +195,78 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | +    public void createMusicGroupTeacherMapper(List<CourseSchedule> courseSchedules, String musicGroupId) {
 | 
	
		
			
				|  |  | +        Date date=new Date();
 | 
	
		
			
				|  |  | +        MusicGroup musicGroup = musicGroupService.get(musicGroupId);
 | 
	
		
			
				|  |  | +        //老师默认的课酬
 | 
	
		
			
				|  |  | +        Map<String, TeacherDefaultMusicGroupSalary> teacherDefaultSalary = new HashMap<>();
 | 
	
		
			
				|  |  | +        for (CourseSchedule classGroupNoStartCourseSchedule : courseSchedules) {
 | 
	
		
			
				|  |  | +            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
 | 
	
		
			
				|  |  | +            //课时长度
 | 
	
		
			
				|  |  | +            int duration = DateUtil.minutesBetween(classGroupNoStartCourseSchedule.getStartClassTime(), classGroupNoStartCourseSchedule.getEndClassTime());
 | 
	
		
			
				|  |  | +            List<ClassGroupTeacherMapper> byClassGroup = classGroupTeacherMapperDao.findByClassGroup(classGroupNoStartCourseSchedule.getClassGroupId());
 | 
	
		
			
				|  |  | +            for (ClassGroupTeacherMapper classGroupTeacherMapper : byClassGroup) {
 | 
	
		
			
				|  |  | +                if (!classGroupTeacherMapper.getClassGroupId().equals(classGroupNoStartCourseSchedule.getClassGroupId())) {
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                BigDecimal salary;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary=teacherDefaultMusicGroupSalaryDao.findByTeacherAndCourseType(classGroupTeacherMapper.getUserId(),
 | 
	
		
			
				|  |  | +                        classGroupNoStartCourseSchedule.getType().getCode());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if (teacherDefaultMusicGroupSalary == null) {
 | 
	
		
			
				|  |  | +                    throw new BizException("请先设置老师课酬");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                //对应基准课酬
 | 
	
		
			
				|  |  | +                BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                //2.0课酬
 | 
	
		
			
				|  |  | +                if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
 | 
	
		
			
				|  |  | +                    //课程时长与结算单位时长占比
 | 
	
		
			
				|  |  | +                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(30), 6, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                //3.0课酬
 | 
	
		
			
				|  |  | +                if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
 | 
	
		
			
				|  |  | +                    //课程时长与结算单位时长占比
 | 
	
		
			
				|  |  | +                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(90), 6, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                //课堂课课酬
 | 
	
		
			
				|  |  | +                if (musicGroup.isClassroomLessons()) {
 | 
	
		
			
				|  |  | +                    //课程时长与结算单位时长占比
 | 
	
		
			
				|  |  | +                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(40), 6, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                //基础技能提高课
 | 
	
		
			
				|  |  | +                if (classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
 | 
	
		
			
				|  |  | +                    //课程时长与结算单位时长占比
 | 
	
		
			
				|  |  | +                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(45), 6, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                //课程与老师薪水表
 | 
	
		
			
				|  |  | +                CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
 | 
	
		
			
				|  |  | +                courseScheduleTeacherSalary.setCourseScheduleId(classGroupNoStartCourseSchedule.getId());
 | 
	
		
			
				|  |  | +                courseScheduleTeacherSalary.setGroupType(classGroupNoStartCourseSchedule.getGroupType());
 | 
	
		
			
				|  |  | +                courseScheduleTeacherSalary.setMusicGroupId(classGroupNoStartCourseSchedule.getMusicGroupId());
 | 
	
		
			
				|  |  | +                courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
 | 
	
		
			
				|  |  | +                courseScheduleTeacherSalary.setUserId(classGroupTeacherMapper.getUserId());
 | 
	
		
			
				|  |  | +                courseScheduleTeacherSalary.setExpectSalary(salary);
 | 
	
		
			
				|  |  | +                courseScheduleTeacherSalary.setCreateTime(date);
 | 
	
		
			
				|  |  | +                courseScheduleTeacherSalary.setUpdateTime(date);
 | 
	
		
			
				|  |  | +                courseScheduleTeacherSalary.setClassGroupId(classGroupTeacherMapper.getClassGroupId());
 | 
	
		
			
				|  |  | +                courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaryList);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void createCourseScheduleTeacherSalary(List<CourseSchedule> courseSchedules, Map<Long, CourseSchedule> oldCourseSchedules) {
 | 
	
		
			
				|  |  |          List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
 |