Explorar o código

Merge remote-tracking branch 'origin/online1' into online1

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
Joburgess %!s(int64=4) %!d(string=hai) anos
pai
achega
a076ded28f

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SellOrderDao.java

@@ -196,8 +196,16 @@ public interface SellOrderDao extends BaseDAO<Integer, SellOrder> {
 
     /**
      * 获取订单的各类型费用
+     *
      * @param orderId
      * @return
      */
     StudentPaymentOrderExportDto getFeeByType(@Param("orderId") Long orderId);
+
+    /**
+     * 获取打包辅件中乐保
+     * @param orderId
+     * @return
+     */
+    BigDecimal getChildRepair(@Param("orderId") Long orderId);
 }

+ 136 - 131
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -274,14 +274,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         // 加入IM群组
         if (userIdList.size() > 0) {
             addImGroup(classGroup, userIdList, teacherIdList);
-        }else {
+        } else {
             MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
-            Map<Integer,String> userRoleMap = new HashMap<>();
+            Map<Integer, String> userRoleMap = new HashMap<>();
             userRoleMap.put(musicGroup.getEducationalTeacherId(), "乐团主管");
             userRoleMap.put(musicGroup.getTeamTeacherId(), "运营主管");
             userRoleMap.put(musicGroup.getDirectorUserId(), "乐队指导");
-            if(teacherIdList != null && teacherIdList.size() > 0){
-                for(Integer teacherId : teacherIdList){
+            if (teacherIdList != null && teacherIdList.size() > 0) {
+                for (Integer teacherId : teacherIdList) {
                     userRoleMap.put(teacherId, "指导老师");
                 }
             }
@@ -806,11 +806,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<CourseListDto> musicCourse = classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds, ","), userId);
 
         List<CourseSchedule> musicGroupCourses = new ArrayList<>();
-        if(!CollectionUtils.isEmpty(musicGroupIds)){
+        if (!CollectionUtils.isEmpty(musicGroupIds)) {
             musicGroupCourses = courseScheduleDao.findCourseByGroupIds(musicGroupIds, MUSIC);
         }
         Map<String, Map<TeachModeEnum, Long>> musicGroupTeachModeNumMap = new HashMap<>();
-        if(!CollectionUtils.isEmpty(musicGroupCourses)){
+        if (!CollectionUtils.isEmpty(musicGroupCourses)) {
             musicGroupTeachModeNumMap = musicGroupCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getMusicGroupId, Collectors.groupingBy(CourseSchedule::getTeachMode, Collectors.counting())));
         }
 
@@ -824,8 +824,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Set<String> practiceGroupId = practiceCourse.stream().map(e -> e.getPracticeId()).collect(Collectors.toSet());
 
         Map<Long, PracticeGroupType> practiceGroupTypeMap = new HashMap<>();
-        if(!CollectionUtils.isEmpty(practiceGroupId)){
-            List<PracticeCourseDto> practiceGroups = practiceGroupDao.getPracticeGroupByIds(practiceGroupId.stream().map(id->Long.valueOf(id)).collect(Collectors.toList()));
+        if (!CollectionUtils.isEmpty(practiceGroupId)) {
+            List<PracticeCourseDto> practiceGroups = practiceGroupDao.getPracticeGroupByIds(practiceGroupId.stream().map(id -> Long.valueOf(id)).collect(Collectors.toList()));
             practiceGroupTypeMap = practiceGroups.stream().collect(Collectors.toMap(PracticeCourseDto::getId, PracticeCourseDto::getType));
         }
 
@@ -906,13 +906,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                         e.setStudyReportUrl(baseUrl + "/#/reportDetailNew?id=" + courseScheduleEvaluate.getId() + "&classGroupId=" + e.getClassGroupId());
                     }
                 }
-                if(Objects.nonNull(e.getPracticeId())&&practiceGroupTypeMap.containsKey(Long.valueOf(e.getPracticeId()))){
-                    if(PracticeGroupType.CARE_PACKAGE.equals(practiceGroupTypeMap.get(Long.valueOf(e.getPracticeId()))))
+                if (Objects.nonNull(e.getPracticeId()) && practiceGroupTypeMap.containsKey(Long.valueOf(e.getPracticeId()))) {
+                    if (PracticeGroupType.CARE_PACKAGE.equals(practiceGroupTypeMap.get(Long.valueOf(e.getPracticeId()))))
                         e.setPracticeType(2);
-                    else if(PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroupTypeMap.get(Long.valueOf(e.getPracticeId()))))
+                    else if (PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroupTypeMap.get(Long.valueOf(e.getPracticeId()))))
                         e.setPracticeType(3);
                 }
-            }else if (ClassGroupTypeEnum.VIP == e.getType()) {
+            } else if (ClassGroupTypeEnum.VIP == e.getType()) {
                 e.setStudentNames(vipStuNames.get(e.getVipId()));
                 //1:线上;2:线下;3:线上+线下
                 if (e.getOnlineClassesNum() > 0 && e.getOffLineClassesNum() <= 0) {
@@ -924,15 +924,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 } else {
                     e.setClassMode(0);
                 }
-            }else{
+            } else {
                 Long onlineCourseNum = 0L;
                 Long offlineCourseNum = 0L;
-                if(musicGroupTeachModeNumMap.containsKey(e.getMusicId())){
+                if (musicGroupTeachModeNumMap.containsKey(e.getMusicId())) {
                     Map<TeachModeEnum, Long> teachModeCourseNumMap = musicGroupTeachModeNumMap.get(e.getMusicId());
-                    if(teachModeCourseNumMap.containsKey(TeachModeEnum.ONLINE)){
+                    if (teachModeCourseNumMap.containsKey(TeachModeEnum.ONLINE)) {
                         onlineCourseNum = teachModeCourseNumMap.get(TeachModeEnum.ONLINE);
                     }
-                    if(teachModeCourseNumMap.containsKey(TeachModeEnum.OFFLINE)){
+                    if (teachModeCourseNumMap.containsKey(TeachModeEnum.OFFLINE)) {
                         offlineCourseNum = teachModeCourseNumMap.get(TeachModeEnum.OFFLINE);
                     }
                 }
@@ -1119,24 +1119,24 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     }
 
                     BigDecimal salary = null;
-                    if(classGroup.getType().equals(HIGH_ONLINE)){
+                    if (classGroup.getType().equals(HIGH_ONLINE)) {
                         salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
-                    }else if(classGroup.getType().equals(HIGH)){
+                    } else if (classGroup.getType().equals(HIGH)) {
                         MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
-                        if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
+                        if (Objects.isNull(teacherDefaultMusicGroupSalaryHigh)) {
                             throw new BizException("请设置老师课酬");
                         }
                         salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
                         if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
                             salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
                         }
-                        if(Objects.isNull(salary)){
+                        if (Objects.isNull(salary)) {
                             throw new BizException("请设置老师课酬");
                         }
                         salary = salary.multiply(new BigDecimal(studentNum));
                     }
-                    if(Objects.isNull(salary)){
+                    if (Objects.isNull(salary)) {
                         throw new BizException("请设置老师课酬");
                     }
 
@@ -1204,8 +1204,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<Integer> classGroupIds = classGroupList.stream().map(ClassGroup::getId).collect(Collectors.toList());
         List<CourseScheduleStudentPayment> ccs = courseScheduleStudentPaymentDao.getWithClassGroupIds(classGroupIds, studentId);
         Set<Long> existCourseIds = new HashSet<>();
-        if(!CollectionUtils.isEmpty(ccs)){
-            existCourseIds = ccs.stream().map(CourseScheduleStudentPayment::getCourseScheduleId).collect(Collectors.toSet());;
+        if (!CollectionUtils.isEmpty(ccs)) {
+            existCourseIds = ccs.stream().map(CourseScheduleStudentPayment::getCourseScheduleId).collect(Collectors.toSet());
+            ;
         }
 
         Map<CourseScheduleType, BigDecimal> totalPriceMap = new HashMap<CourseSchedule.CourseScheduleType, BigDecimal>();
@@ -1234,7 +1235,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             // 3、学生加入级未开始课程
             List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
             for (CourseSchedule courseSchedule : courseScheduleList) {
-                if(existCourseIds.contains(courseSchedule.getId())){
+                if (existCourseIds.contains(courseSchedule.getId())) {
                     throw new BizException("该学员已在此班级{}课程中", courseSchedule.getId());
                 }
 
@@ -1310,7 +1311,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 }
             }
             courseScheduleStudentPaymentService.batchInsert(courseScheduleStudentPayments);
-            studentDao.updateStudentServiceTag(studentId,null,YesOrNoEnum.YES.getCode());
+            studentDao.updateStudentServiceTag(studentId, null, YesOrNoEnum.YES.getCode());
         }
 
         //4、调整未上课课酬
@@ -1436,7 +1437,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public List<TeacherClassGroupDto> findTeacherClassGroups(String type,String status, String groupName) {
+    public List<TeacherClassGroupDto> findTeacherClassGroups(String type, String status, String groupName) {
         SysUser user = sysUserFeignService.queryUserInfo();
         if (Objects.isNull(user)) {
             throw new BizException("请登录");
@@ -1449,13 +1450,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<TeacherClassGroupDto> teacherMusicClassGroup;
         switch (type) {
             case "VIP":
-                teacherMusicClassGroup = classGroupDao.findTeacherVipClassGroup(user.getId().longValue(),status,groupName);
+                teacherMusicClassGroup = classGroupDao.findTeacherVipClassGroup(user.getId().longValue(), status, groupName);
                 break;
             case "MUSIC_GROUP":
-                teacherMusicClassGroup = classGroupDao.findTeacherMusicClassGroup(user.getId().longValue(),groupName);
+                teacherMusicClassGroup = classGroupDao.findTeacherMusicClassGroup(user.getId().longValue(), groupName);
                 break;
             case "PRACTICE":
-                teacherMusicClassGroup = classGroupDao.findTeacherPracticeClassGroup(user.getId().longValue(),status, groupName);
+                teacherMusicClassGroup = classGroupDao.findTeacherPracticeClassGroup(user.getId().longValue(), status, groupName);
                 break;
             default:
                 throw new BizException("课程类型错误");
@@ -1708,7 +1709,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     .filter(studentAttendanceViewDto -> studentAttendanceViewDto.getGroupType().equals("MUSIC"))
                     .collect(Collectors.toList());
 
-            if (!CollectionUtils.isEmpty(tempIds)&&schedule.getGroupType() == MUSIC) {
+            if (!CollectionUtils.isEmpty(tempIds) && schedule.getGroupType() == MUSIC) {
                 List<Map<Integer, String>> studentSubjectNameMaps = subjectDao.findStudentSubjectNameMaps(tempIds);
                 Map<Integer, String> studentSubjectNameMap = MapUtil.convertIntegerMap(studentSubjectNameMaps);
                 List<Map<Integer, Long>> studentSubjectIdMaps = subjectDao.findStudentSubjectIdMaps(tempIds);
@@ -1717,12 +1718,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     studentAttendanceViewDto.setSubjectName(studentSubjectNameMap.get(studentAttendanceViewDto.getStudentId().intValue()));
                     studentAttendanceViewDto.setSubjectId(studentSubjectIdMap.get(studentAttendanceViewDto.getStudentId().intValue()));
                 });
-            }else if(schedule.getGroupType() != MUSIC){
+            } else if (schedule.getGroupType() != MUSIC) {
                 ClassGroup classGroup = classGroupDao.get(schedule.getClassGroupId());
                 Subject subject = subjectDao.get(Integer.valueOf(classGroup.getSubjectIdList()));
                 truantStudent.forEach(studentAttendanceViewDto -> {
                     studentAttendanceViewDto.setSubjectName(subject.getName());
-                    studentAttendanceViewDto.setSubjectId(Objects.nonNull(subject.getId())?subject.getId().longValue():0);
+                    studentAttendanceViewDto.setSubjectId(Objects.nonNull(subject.getId()) ? subject.getId().longValue() : 0);
                 });
             }
         }
@@ -1767,7 +1768,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (musicGroup == null) {
             throw new BizException("乐团不存在");
         }
-        if(classGroup4MixDtos.get(0).getOnlyCreateClassGroup() == null){
+        if (classGroup4MixDtos.get(0).getOnlyCreateClassGroup() == null) {
             classGroup4MixDtos.get(0).setOnlyCreateClassGroup(false);
         }
         if (!classGroup4MixDtos.get(0).getOnlyCreateClassGroup() && classGroup4MixDtos.get(0).getCourseTimes().compareTo(0) <= 0) {
@@ -2278,7 +2279,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
 
         Boolean confirmGenerate = false;
-        if(Objects.nonNull(classGroup4MixDtos.get(0).getConfirmGenerate())){
+        if (Objects.nonNull(classGroup4MixDtos.get(0).getConfirmGenerate())) {
             confirmGenerate = classGroup4MixDtos.get(0).getConfirmGenerate();
         }
 
@@ -2290,7 +2291,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<ClassGroupTeacherMapper> byClassGroup = classGroupTeacherMapperDao.findByClassGroup(classGroupId);
         List<ClassGroupTeacherMapper> newTeacherMapperList = classGroup4MixDtos.get(0).getClassGroupTeacherMapperList();
         MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
-        if(musicGroup.getStatus() == PROGRESS){
+        if (musicGroup.getStatus() == PROGRESS) {
             if (byClassGroup != null && byClassGroup.size() > 0) {
                 ClassGroupTeacherMapper groupTeacherMapper = byClassGroup.stream().filter(classGroupTeacherMapper -> classGroupTeacherMapper.getTeacherRole() == TeachTypeEnum.BISHOP).findFirst().get();
                 if (groupTeacherMapper != null) {
@@ -2397,7 +2398,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
             int totalCourseTimes = 0;
             int generateCourseTimes = 0;
-            if(!CollectionUtils.isEmpty(classGroup4MixDto.getCourseTimeDtoList())){
+            if (!CollectionUtils.isEmpty(classGroup4MixDto.getCourseTimeDtoList())) {
                 totalCourseTimes = classGroup4MixDto.getCourseTimeDtoList().stream().mapToInt(CourseTimeDto::getExpectCourseNum).reduce(0, Integer::sum);
             }
 
@@ -2414,7 +2415,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     if (courseTimeDto.getDayOfWeek() < 1 || courseTimeDto.getDayOfWeek() > 7) {
                         throw new BizException("排课循环周期错误,请核查");
                     }
-                    if(Objects.isNull(courseTimeDto.getStartDate())||Objects.isNull(courseTimeDto.getEndDate())){
+                    if (Objects.isNull(courseTimeDto.getStartDate()) || Objects.isNull(courseTimeDto.getEndDate())) {
                         throw new BizException("排课循环周期错误,请核查");
                     }
 
@@ -2427,13 +2428,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
                     Date classDate = DateConvertor.toDate(now);
 
-                    if(courseTimeDto.getStartDate().compareTo(classDate)>0
-                            ||courseTimeDto.getEndDate().compareTo(classDate)<0
-                            ||courseTimeDto.getExpectCourseNum()<=courseTimeDto.getCourseNum()){
-                        if(courseTimeDto.getEndDate().compareTo(classDate)<0&&courseTimeDto.getExpectCourseNum()>courseTimeDto.getCourseNum()){
+                    if (courseTimeDto.getStartDate().compareTo(classDate) > 0
+                            || courseTimeDto.getEndDate().compareTo(classDate) < 0
+                            || courseTimeDto.getExpectCourseNum() <= courseTimeDto.getCourseNum()) {
+                        if (courseTimeDto.getEndDate().compareTo(classDate) < 0 && courseTimeDto.getExpectCourseNum() > courseTimeDto.getCourseNum()) {
                             throw new BizException("在指定的排课时间段内({}-{})无法完成预计课时数的排课", DateUtil.dateToString(courseTimeDto.getStartDate(), "yyyy.MM.dd"), DateUtil.dateToString(courseTimeDto.getEndDate(), "yyyy.MM.dd"));
                         }
-                        if(totalCourseTimes<=generateCourseTimes){
+                        if (totalCourseTimes <= generateCourseTimes) {
                             break WhileNode;
                         }
                         continue;
@@ -2450,10 +2451,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 //                        break WhileNode;
 //                    }
 
-                    courseTimeDto.setCourseNum(courseTimeDto.getCourseNum()+1);
-                    generateCourseTimes+=1;
+                    courseTimeDto.setCourseNum(courseTimeDto.getCourseNum() + 1);
+                    generateCourseTimes += 1;
 
-                    if(totalCourseTimes<generateCourseTimes){
+                    if (totalCourseTimes < generateCourseTimes) {
                         break WhileNode;
                     }
 
@@ -2466,7 +2467,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     courseSchedule.setStatus(CourseStatusEnum.NOT_START);
                     courseSchedule.setClassDate(classDate);
                     courseSchedule.setStartClassTime(DateUtil.stringToDate(startClassTime));
-                    if(date.compareTo(courseSchedule.getStartClassTime())>0){
+                    if (date.compareTo(courseSchedule.getStartClassTime()) > 0) {
                         throw new BizException("课程开始时间不得早于当前时间");
                     }
                     courseSchedule.setEndClassTime(DateUtil.stringToDate(endClassTime));
@@ -2500,9 +2501,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                         courseScheduleTeacherSalary.setUpdateTime(date);
                         courseScheduleTeacherSalaryService.createMusicGroupCourseTeacherSalary(musicGroup, courseSchedule, courseScheduleTeacherSalary);
                         courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
-                        if(confirmGenerate&&!classGroup4MixDto.getAllowZeroSalary()&&BigDecimal.ZERO.compareTo(courseScheduleTeacherSalary.getExpectSalary())==0){
+                        if (confirmGenerate && !classGroup4MixDto.getAllowZeroSalary() && BigDecimal.ZERO.compareTo(courseScheduleTeacherSalary.getExpectSalary()) == 0) {
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            return BaseController.failed(HttpStatus.MULTI_STATUS,"当前课程课酬预计为0,是否继续");
+                            return BaseController.failed(HttpStatus.MULTI_STATUS, "当前课程课酬预计为0,是否继续");
                         }
                     }
                 }
@@ -2517,7 +2518,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         courseScheduleService.checkNewCourseSchedules(courseScheduleList, false, false);
 
-        if(!confirmGenerate){
+        if (!confirmGenerate) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             courseScheduleList.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
             return BaseController.failed(HttpStatus.PARTIAL_CONTENT, courseScheduleList, "");
@@ -2534,7 +2535,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             //学生结算表
             courseScheduleStudentPaymentService.createForMusicGroup(musicGroupId, courseScheduleList, studentIds);
         }
-        if(musicGroup.getStatus() == PROGRESS){
+        if (musicGroup.getStatus() == PROGRESS) {
             imUserFriendService.refreshClassImUserFriend(classGroupId);
         }
         return BaseController.succeed(classGroup);
@@ -2549,7 +2550,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (musicGroup == null) {
             throw new BizException("乐团不存在");
         }
-        if(classGroup4MixDtos.get(0).getOnlyCreateClassGroup() == null){
+        if (classGroup4MixDtos.get(0).getOnlyCreateClassGroup() == null) {
             classGroup4MixDtos.get(0).setOnlyCreateClassGroup(false);
         }
         if (!classGroup4MixDtos.get(0).getOnlyCreateClassGroup() && classGroup4MixDtos.get(0).getCourseTimes().compareTo(0) <= 0) {
@@ -3044,23 +3045,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Override
     public PageInfo<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo) {
-        if(queryInfo.getGroupType() == null){
+        if (queryInfo.getGroupType() == null) {
             queryInfo.setGroupType(MUSIC);
         }
         PageInfo<ClassGroupTeachersDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
-        params.put("groupType",queryInfo.getGroupType().getCode());
+        params.put("groupType", queryInfo.getGroupType().getCode());
 
         List<ClassGroupTeachersDto> dataList = null;
         int count = classGroupDao.countClassGroup(params);
 
-        if(Objects.nonNull(queryInfo.getLessThenThreeHighOnline())){
+        if (Objects.nonNull(queryInfo.getLessThenThreeHighOnline())) {
             List<Long> lessThenThreeClassGroupIds = classGroupStudentMapperDao.getLessThenThreeClassGroupIds(queryInfo.getOrganIdList());
             params.put("classGroupIds", lessThenThreeClassGroupIds);
-            if(CollectionUtils.isEmpty(lessThenThreeClassGroupIds)){
-                count=0;
-            }else{
+            if (CollectionUtils.isEmpty(lessThenThreeClassGroupIds)) {
+                count = 0;
+            } else {
                 count = classGroupDao.countClassGroup(params);
             }
         }
@@ -3109,22 +3110,22 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     public Boolean addImGroup(ClassGroup classGroup, List<Integer> userIds, List<Integer> teacherIdList) {
         MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
 
-        Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
+        Map<Integer, String> userRoleMap = new HashMap<Integer, String>();
         userRoleMap.put(musicGroup.getEducationalTeacherId(), "乐团主管");
         userRoleMap.put(musicGroup.getTeamTeacherId(), "运营主管");
         userRoleMap.put(musicGroup.getDirectorUserId(), "乐队指导");
         for (Integer userId : userIds) {
             if (userId == null) continue;
-            
+
             userRoleMap.put(userId, "");
         }
-        
-        if(teacherIdList != null && teacherIdList.size() > 0){
-        	for(Integer teacherId : teacherIdList){
-        		userRoleMap.put(teacherId, "指导老师");
-        	}
+
+        if (teacherIdList != null && teacherIdList.size() > 0) {
+            for (Integer teacherId : teacherIdList) {
+                userRoleMap.put(teacherId, "指导老师");
+            }
         }
-        
+
         imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), musicGroup.getName(), musicGroup.getName(), musicGroup.getName(), null, "MUSIC");
         imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
         imUserFriendService.refreshClassImUserFriend(classGroup.getId());
@@ -3515,14 +3516,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         MusicGroup musicGroup = musicGroupDao.findByClassGroupId(classGroupIds.get(0));
         //获取欠费学员列表
         List<Integer> noPaymentUserIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentUserIds(musicGroup.getId(), new ArrayList<>(studentIds));
-        if(noPaymentUserIds.size() > 0){
+        if (noPaymentUserIds.size() > 0) {
             throw new BizException("操作失败:有欠费的学员不允许创建缴费");
         }
         //获取缴费状态在审核中或者已拒绝的缴费项目的学员
-        String studentId = musicGroupPaymentCalenderDao.queryCalenderStudentIds(musicGroup.getId(),null);
-        if(StringUtils.isNotEmpty(studentId)){
+        String studentId = musicGroupPaymentCalenderDao.queryCalenderStudentIds(musicGroup.getId(), null);
+        if (StringUtils.isNotEmpty(studentId)) {
             for (Integer integer : studentIds) {
-                if(studentId.contains(integer.toString())){
+                if (studentId.contains(integer.toString())) {
                     throw new BizException("操作失败:所选学员有待审核或已拒绝的缴费项目");
                 }
             }
@@ -3618,7 +3619,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     for (Integer integer : integers) {
                         List<Integer> collect = Arrays.asList(classGroupStudent.get(integer).split(",")).stream().map(e -> Integer.parseInt(e)).collect(Collectors.toList());
                         //学员退出群聊
-                        imGroupMemberService.quit(integer.longValue(),collect);
+                        imGroupMemberService.quit(integer.longValue(), collect);
                         classGroupStudentMapperDao.deleteByClassGroupIdAndStudents(integer, classGroupStudent.get(integer));
                     }
                 }
@@ -3632,7 +3633,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 //删除教师课酬
                 courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(delCourseIds);
             }
-            imUserFriendService.refreshGroupImUserFriend(musicGroup.getId(),MUSIC);
+            batchUpdateTeacherSalary(classGroupIds);
+            imUserFriendService.refreshGroupImUserFriend(musicGroup.getId(), MUSIC);
             httpResponseResult.setMsg("学员班级调整完成");
         } else {
             //冻结班级
@@ -3733,6 +3735,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         maxClassGroupNum += otherSubjectRegNum / 6;
         maxClassGroupNum += (otherSubjectRegNum % 6) > 0 ? 1 : 0;
+        maxClassGroupNum += musicGroupStudents.size() / 30;
+        maxClassGroupNum += (musicGroupStudents.size() % 30) > 0 ? 1 : 0;
 
         HighClassGroupNumDto highClassGroupNumDto = new HighClassGroupNumDto();
         int nowClassGroupNum = classGroupDao.getMusicGroupHighClassNumBySubject(musicGroupId, type);
@@ -3744,32 +3748,32 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public List<MusicGroupPaymentCalenderStudentDetail> queryStudentPaymentCalenders(Integer masterClassGroupId,String classGroupStudentMap,List<Integer> studentIds) {
+    public List<MusicGroupPaymentCalenderStudentDetail> queryStudentPaymentCalenders(Integer masterClassGroupId, String classGroupStudentMap, List<Integer> studentIds) {
         //获取主班剩余课程时长
         Map<String, BigDecimal> masterMap = MapUtil.convertIntegerMap(courseScheduleDao.querySubCourseTimeMap(masterClassGroupId));
-        if(masterMap.size() <= 0){
+        if (masterMap.size() <= 0) {
             throw new BizException("所选主班没有剩余课程,请重新选择");
         }
         //获取学员列表
         Map<Integer, String> userNames = MapUtil.convertMybatisMap(teacherDao.queryUsernameByIds(studentIds));
-        Map<Integer, String> phoneMaps = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(studentIds,",")));
+        Map<Integer, String> phoneMaps = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(studentIds, ",")));
 
         Map<Integer, Integer> studentCLassMap = new HashMap<>();
         List<Map<Integer, BigDecimal>> surplusCourseFeeMapList = new ArrayList<>();
-        List<Map<String,String>> classGroupStudents = (List<Map<String,String>>)JSON.parse(classGroupStudentMap);
+        List<Map<String, String>> classGroupStudents = (List<Map<String, String>>) JSON.parse(classGroupStudentMap);
         //学员剩余课程价值
-        Map<Integer,BigDecimal> classGroupTotalPrice = new HashMap<>();
+        Map<Integer, BigDecimal> classGroupTotalPrice = new HashMap<>();
         //主班剩余课程价值
         Map<String, BigDecimal> masterTotalPriceMap = getMasterTotalPriceMap(masterClassGroupId);
         BigDecimal masterTotalPrice = getMasterTotalPrice(masterClassGroupId);
         for (Map<String, String> classGroupStudent : classGroupStudents) {
             for (String integer : classGroupStudent.keySet()) {
                 //获取学员剩余课程费用
-                surplusCourseFeeMapList.addAll(studentRegistrationDao.querySurplusCourseFeeByClassGroupId(Integer.parseInt(integer),classGroupStudent.get(integer)));
+                surplusCourseFeeMapList.addAll(studentRegistrationDao.querySurplusCourseFeeByClassGroupId(Integer.parseInt(integer), classGroupStudent.get(integer)));
                 String[] s = classGroupStudent.get(integer).split(",");
                 for (String s1 : s) {
-                    classGroupTotalPrice.put(Integer.parseInt(s1),courseScheduleStudentPaymentDao.querySubCoursePriceMap(Integer.parseInt(s1),Integer.parseInt(integer),null));
-                    studentCLassMap.put(Integer.parseInt(s1),Integer.parseInt(integer));
+                    classGroupTotalPrice.put(Integer.parseInt(s1), courseScheduleStudentPaymentDao.querySubCoursePriceMap(Integer.parseInt(s1), Integer.parseInt(integer), null));
+                    studentCLassMap.put(Integer.parseInt(s1), Integer.parseInt(integer));
                 }
             }
         }
@@ -3780,33 +3784,33 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         for (Integer studentId : studentCLassMap.keySet()) {
             //学员剩余课程价值
             BigDecimal totalPrice = classGroupTotalPrice.get(studentId);
-            if(totalPrice == null){
+            if (totalPrice == null) {
                 totalPrice = BigDecimal.ZERO;
             }
             //学员剩余课程余额
             BigDecimal bigDecimal = surplusCourseFeeMap.get(studentId);
-            if(bigDecimal == null){
+            if (bigDecimal == null) {
                 bigDecimal = BigDecimal.ZERO;
             }
             //学员可带走的价值
             BigDecimal subCourseAmount;
-            if(masterTotalPrice.doubleValue() >= totalPrice.doubleValue()){
+            if (masterTotalPrice.doubleValue() >= totalPrice.doubleValue()) {
                 subCourseAmount = totalPrice;
-            }else {
+            } else {
                 subCourseAmount = masterTotalPrice;
             }
-            if(subCourseAmount.doubleValue() >= bigDecimal.doubleValue()){
+            if (subCourseAmount.doubleValue() >= bigDecimal.doubleValue()) {
                 subCourseAmount = bigDecimal;
             }
             for (int i = 0; i < courseTypes.size(); i++) {
                 BigDecimal masterPrice = masterTotalPriceMap.get(courseTypes.get(i));
                 MusicGroupPaymentCalenderStudentDetail calenderDto = new MusicGroupPaymentCalenderStudentDetail();
                 calenderDto.setClassGroupId(studentCLassMap.get(studentId));
-                if(subCourseAmount.doubleValue() >= masterPrice.doubleValue()){
+                if (subCourseAmount.doubleValue() >= masterPrice.doubleValue()) {
                     calenderDto.setSubCourseAmount(masterPrice);
                     calenderDto.setCutAmount(masterPrice);
                     subCourseAmount = subCourseAmount.subtract(masterPrice);
-                }else {
+                } else {
                     calenderDto.setSubCourseAmount(subCourseAmount);
                     calenderDto.setCutAmount(subCourseAmount);
                     subCourseAmount = BigDecimal.ZERO;
@@ -3829,7 +3833,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     public BigDecimal getMasterTotalPrice(Integer masterClassGroupId) {
         //获取主班剩余时长
         Map<String, BigDecimal> masterMap = MapUtil.convertIntegerMap(courseScheduleDao.querySubCourseTimeMap(masterClassGroupId));
-        if(masterMap.size() == 0){
+        if (masterMap.size() == 0) {
             throw new BizException("操作失败:所选主班没有剩余时长");
         }
         //获取分布默认的课程类型单价
@@ -3844,7 +3848,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 throw new BizException("分部默认课程类型单价不存在,请设置");
             }
             BigDecimal courseTime = masterMap.get(s);
-            if(courseTime == null){
+            if (courseTime == null) {
                 courseTime = BigDecimal.ZERO;
             }
             //获取主班剩余课程价值,按分部默认单价计算
@@ -3855,13 +3859,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         return masterTotalPrice;
     }
 
-    public Map<String,BigDecimal> getMasterTotalPriceMap(Integer masterClassGroupId) {
+    public Map<String, BigDecimal> getMasterTotalPriceMap(Integer masterClassGroupId) {
         //获取主班剩余时长
         Map<String, BigDecimal> masterMap = MapUtil.convertIntegerMap(courseScheduleDao.querySubCourseTimeMap(masterClassGroupId));
-        if(masterMap.size() == 0){
+        if (masterMap.size() == 0) {
             throw new BizException("操作失败:所选主班没有剩余时长");
         }
-        Map<String,BigDecimal> resultMap = new HashMap<>();
+        Map<String, BigDecimal> resultMap = new HashMap<>();
         //获取分布默认的课程类型单价
         MusicGroup musicGroup = musicGroupDao.findByClassGroupId(masterClassGroupId);
         Map<String, BigDecimal> unitPriceMap = MapUtil.convertIntegerMap(organizationCourseUnitPriceSettingsDao.queryMapByOrganIdAndChargeTypeId(musicGroup.getChargeTypeId(), musicGroup.getOrganId()));
@@ -3873,12 +3877,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 throw new BizException("分部默认课程类型单价不存在,请设置");
             }
             BigDecimal courseTime = masterMap.get(s);
-            if(courseTime == null){
+            if (courseTime == null) {
                 courseTime = BigDecimal.ZERO;
             }
             //获取主班剩余课程价值,按分部默认单价计算
             BigDecimal totalPrice = unitPrice.multiply(courseTime).setScale(0, BigDecimal.ROUND_HALF_UP);
-            resultMap.put(s,totalPrice);
+            resultMap.put(s, totalPrice);
         }
         return resultMap;
     }
@@ -3890,25 +3894,24 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Override
     public void batchUpdateTeacherSalary(List<Integer> classGroupIds) {
-        if(classGroupIds.size() > 0){
+        if (classGroupIds.size() > 0) {
             //获取班级学员人数
             List<Map<Integer, Integer>> classGroupStudentNumMaps = classGroupStudentMapperDao.countClassGroupsStudentNum(classGroupIds, ClassGroupStudentStatusEnum.NORMAL);
             Map<Integer, Long> classGroupStudentNumMap = MapUtil.convertIntegerMap(classGroupStudentNumMaps);
             List<ClassGroup> byClassGroupIds = classGroupDao.findByClassGroupIds(classGroupIds, null);
             for (ClassGroup classGroup : byClassGroupIds) {
                 Long aLong = classGroupStudentNumMap.get(classGroup.getId());
-                classGroup.setStudentNum(aLong==null?0:aLong.intValue());
-                if(classGroup.getType() == HIGH_ONLINE || classGroup.getType() == HIGH){
-                    if(aLong != null && aLong > 0){
-                        List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
-                        if(courseScheduleList.size() > 0){
-                            //调整未上课课酬
-                            List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
-                            Date nowDate = new Date();
-                            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
-                            List<Long> courseScheduleIds = courseScheduleList.stream().map(CourseSchedule::getId).collect(Collectors.toList());
-                            courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
-                            for (CourseSchedule courseSchedule : courseScheduleList) {
+                classGroup.setStudentNum(aLong == null ? 0 : aLong.intValue());
+                if (aLong != null && aLong > 0) {
+                    List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
+                    if (courseScheduleList.size() > 0) {
+                        //调整未上课课酬
+                        List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
+                        Date nowDate = new Date();
+                        List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+                        for (CourseSchedule courseSchedule : courseScheduleList) {
+                            if (courseSchedule.getType() == CourseScheduleType.HIGH_ONLINE || courseSchedule.getType() == CourseScheduleType.HIGH) {
+                                courseScheduleTeacherSalaryDao.batchDeleteByCourseAndTeacher(courseSchedule.getId(), null);
                                 for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
                                     List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
                                     if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
@@ -3917,28 +3920,28 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
                                     TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
 
-                                    if (classGroup.getType().equals(HIGH_ONLINE) && aLong > 5l) {
+                                    if (courseSchedule.getType() == CourseScheduleType.HIGH_ONLINE && aLong > 5l) {
                                         aLong = 5l;
                                     }
                                     BigDecimal salary = null;
-                                    if(classGroup.getType().equals(HIGH_ONLINE)){
+                                    if (courseSchedule.getType() == CourseScheduleType.HIGH_ONLINE) {
                                         salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(aLong + "");
-                                    }else if(classGroup.getType().equals(HIGH)){
+                                    } else if (courseSchedule.getType() == CourseScheduleType.HIGH) {
                                         MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
                                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
-                                        if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
+                                        if (Objects.isNull(teacherDefaultMusicGroupSalaryHigh)) {
                                             throw new BizException("请设置老师课酬");
                                         }
                                         salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
                                         if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
                                             salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
                                         }
-                                        if(Objects.isNull(salary)){
+                                        if (Objects.isNull(salary)) {
                                             throw new BizException("请设置老师课酬");
                                         }
                                         salary = salary.multiply(new BigDecimal(aLong));
                                     }
-                                    if(Objects.isNull(salary)){
+                                    if (Objects.isNull(salary)) {
                                         throw new BizException("请设置老师课酬");
                                     }
                                     CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
@@ -3954,6 +3957,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                                     courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
                                 }
                             }
+                        }
+                        if (courseScheduleTeacherSalaryList.size() > 0) {
                             courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
                         }
                     }
@@ -3974,8 +3979,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //学员列表
         List<Integer> studentIds = mergeClassSplitClassAffirmDto.getStudentIds();
         //主班是否包含所选学员列表
-        Boolean hasStudent = classGroupStudentMapperDao.hasStudent(masterClassGroupId,studentIds);
-        if(hasStudent){
+        Boolean hasStudent = classGroupStudentMapperDao.hasStudent(masterClassGroupId, studentIds);
+        if (hasStudent) {
             throw new BizException("操作失败: 主班包含部分已选学员");
         }
         //学员列表
@@ -3989,10 +3994,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //创建缴费项目
         MusicGroup musicGroup = musicGroupDao.findByClassGroupId(masterClassGroupId);
         //获取缴费状态在审核中或者已拒绝的缴费项目的学员
-        String studentId = musicGroupPaymentCalenderDao.queryCalenderStudentIds(musicGroup.getId(),null);
-        if(StringUtils.isNotEmpty(studentId)){
+        String studentId = musicGroupPaymentCalenderDao.queryCalenderStudentIds(musicGroup.getId(), null);
+        if (StringUtils.isNotEmpty(studentId)) {
             for (Integer integer : studentIds) {
-                if(studentId.contains(integer.toString())){
+                if (studentId.contains(integer.toString())) {
                     throw new BizException("操作失败:所选学员有待审核或已拒绝的缴费项目");
                 }
             }
@@ -4003,9 +4008,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         paymentCalenderDto.setMusicGroupId(musicGroup.getId());
         boolean containsAll = musicGroupPaymentCalenderStudentDetails.containsAll(calenderStudentDetails);
-        if(!containsAll){
+        if (!containsAll) {
             paymentCalenderDto.setStatus(AUDITING);
-        }else {
+        } else {
             paymentCalenderDto.setStatus(NO);
         }
 
@@ -4013,14 +4018,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Map<Integer, List<MusicGroupPaymentCalenderStudentDetail>> collect = calenderStudentDetails.stream().collect(Collectors.groupingBy(e -> e.getUserId()));
         for (Map<Integer, String> classGroupStudent : classGroupStudents) {
             Integer classGroupId = classGroupStudent.keySet().iterator().next();
-            studentRegistrationService.insertStudent(classGroupStudent.get(classGroupId),musicGroupDao.findByClassGroupId(classGroupId).getId(),musicGroup.getId(),collect);
+            studentRegistrationService.insertStudent(classGroupStudent.get(classGroupId), musicGroupDao.findByClassGroupId(classGroupId).getId(), musicGroup.getId(), collect);
         }
         paymentCalenderDto.setPayUserType(MusicGroupPaymentCalender.PayUserType.STUDENT);
         paymentCalenderDto.setPaymentType(SPAN_GROUP_CLASS_ADJUST);
         //生成缴费项目
         paymentCalenderDto.setMasterTotalPrice(masterTotalPrice);
         paymentCalenderDto.setIsGiveMusicNetwork(false);
-        paymentCalenderDto.setStudentIds(StringUtils.join(studentIds,","));
+        paymentCalenderDto.setStudentIds(StringUtils.join(studentIds, ","));
         musicGroupPaymentCalenderService.create(paymentCalenderDto);
         //记录申请信息
         MusicGroupStudentClassAdjust musicGroupStudentClassAdjust = new MusicGroupStudentClassAdjust();
@@ -4061,10 +4066,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         httpResponseResult.setStatus(true);
         //没有需要审核的缴费项目
         if (paymentCalenderDto.getStatus() != AUDITING) {
-            List<Map> classGroupStudents1 = JSON.parseArray(musicGroupStudentClassAdjust.getClassGroupStudents(),Map.class);
-            spanGroupClassAdjustPass(masterClassGroupId,studentIds,courseIds,classGroupStudents1,allLockCourseIds,paymentCalenderDto.getBatchNo(),masterTotalPrice);
+            List<Map> classGroupStudents1 = JSON.parseArray(musicGroupStudentClassAdjust.getClassGroupStudents(), Map.class);
+            spanGroupClassAdjustPass(masterClassGroupId, studentIds, courseIds, classGroupStudents1, allLockCourseIds, paymentCalenderDto.getBatchNo(), masterTotalPrice);
             httpResponseResult.setMsg("操作成功:学员班级调整完成");
-        }else {
+        } else {
 //                冻结班级
             classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds, 1);
 //                冻结所选班级的课程
@@ -4081,7 +4086,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                                          List<Long> courseIds,
                                          List<Map> classGroupStudents,
                                          List<Long> allLockCourseIds,
-                                         String batchNo,BigDecimal masterTotalPrice){
+                                         String batchNo, BigDecimal masterTotalPrice) {
         //删除班级关联的学员
         List<Integer> classGroupIds = new ArrayList<>();
         if (classGroupStudents != null && classGroupStudents.size() > 0) {
@@ -4090,7 +4095,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 for (Integer integer : integers) {
                     List<Integer> collect = Arrays.asList(classGroupStudent.get(integer).split(",")).stream().map(e -> Integer.parseInt(e)).collect(Collectors.toList());
                     //学员退出群聊
-                    imGroupMemberService.quit(integer.longValue(),collect);
+                    imGroupMemberService.quit(integer.longValue(), collect);
                     classGroupIds.add(integer);
                     classGroupStudentMapperDao.deleteByClassGroupIdAndStudents(integer, classGroupStudent.get(integer));
                 }
@@ -4098,17 +4103,17 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
 
         //将学员加进班级未开始的课程,以及班级关联、加群
-        classGroupStudentMapperService.updateClassGroupStudents1(masterClassGroupId.longValue(),studentIds,allLockCourseIds,batchNo,masterTotalPrice);
+        classGroupStudentMapperService.updateClassGroupStudents1(masterClassGroupId.longValue(), studentIds, allLockCourseIds, batchNo, masterTotalPrice);
         //删除学员课程
-        if(courseIds.size() > 0){
+        if (courseIds.size() > 0) {
             courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, studentIds);
         }
         //解冻课程
-        courseScheduleDao.batchUpdateLockByCourseIds(allLockCourseIds,0);
+        courseScheduleDao.batchUpdateLockByCourseIds(allLockCourseIds, 0);
         //解冻班级
         classGroupIds.add(masterClassGroupId);
-        classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds,0);
-        if(courseIds.size() > 0){
+        classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds, 0);
+        if (courseIds.size() > 0) {
             //获取没有学员的课程
             List<Long> delCourseIds = courseScheduleDao.findNoStudentCourseIds(courseIds);
             if (delCourseIds != null && delCourseIds.size() > 0) {

+ 6 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -192,9 +192,10 @@ public class ExportServiceImpl implements ExportService {
                 }
             } else {
                 StudentPaymentOrderExportDto feeByType = sellOrderDao.getFeeByType(row.getId());
+                BigDecimal childRepairFee = sellOrderDao.getChildRepair(row.getId());
                 row.setMusicalFee(feeByType.getMusicalFee());
-                row.setTeachingFee(feeByType.getTeachingFee());
-                row.setMaintenanceProductFee(feeByType.getRepairFee());
+                row.setTeachingFee(feeByType.getTeachingFee().subtract(childRepairFee));
+                row.setMaintenanceProductFee(feeByType.getRepairFee().add(childRepairFee));
                 row.setOtherFee(feeByType.getOtherFee());
                 if (row.getGroupType().equals(GroupType.MUSIC)) {
                     StudentRegistration studentRegistration = studentRegistrationDao.findStudentByMusicGroupIdAndUserId(row.getMusicGroupId(), row.getUserId());
@@ -406,9 +407,10 @@ public class ExportServiceImpl implements ExportService {
                 }
             } else {
                 StudentPaymentOrderExportDto feeByType = sellOrderDao.getFeeByType(row.getId());
+                BigDecimal childRepairFee = sellOrderDao.getChildRepair(row.getId());
                 row.setMusicalFee(feeByType.getMusicalFee());
-                row.setTeachingFee(feeByType.getTeachingFee());
-                row.setMaintenanceProductFee(feeByType.getRepairFee());
+                row.setTeachingFee(feeByType.getTeachingFee().subtract(childRepairFee));
+                row.setMaintenanceProductFee(feeByType.getRepairFee().add(childRepairFee));
                 row.setOtherFee(feeByType.getOtherFee());
                 if (row.getGroupType().equals(GroupType.MUSIC)) {
                     StudentRegistration studentRegistration = studentRegistrationDao.findStudentByMusicGroupIdAndUserId(row.getMusicGroupId(), row.getUserId());

+ 10 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -2337,13 +2337,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             paymentDetail.setChannel(studentPaymentOrder.getPaymentChannel());
             sysUserCashAccountDetailService.insert(paymentDetail);
             MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-            if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
-                // 发送续费结果通知
-                sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, push, null, 0, "1", "STUDENT",
-                        studentRegistration.getName(), studentPaymentOrder.getActualAmount());
-                sysMessageService.batchSendMessage(MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, yimei, null, 0, "1", "",
-                        studentRegistration.getName(), studentPaymentOrder.getActualAmount());
-            }
+
             studentRegistrationService.updateUserSurplusCourseFee(userId, musicGroupId, studentPaymentOrder.getExpectAmount(), "乐团续费", userId);
 
             try {
@@ -2351,7 +2345,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             } catch (Exception e) {
                 logger.error("产品协议生成失败", e);
             }
-
+            if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
+                // 发送续费结果通知
+                sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, push, null, 0, "1", "STUDENT",
+                        studentRegistration.getName(), studentPaymentOrder.getActualAmount());
+                sysMessageService.batchSendMessage(MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, yimei, null, 0, "1", "",
+                        studentRegistration.getName(), studentPaymentOrder.getActualAmount());
+            }
             return true;
         } else {
             if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().doubleValue() > 0) {
@@ -2359,7 +2359,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                         "乐团续费失败");
             }
         }
-        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+        /*MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
             if (studentPaymentOrder.getStatus() == CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
                 String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
@@ -2369,7 +2369,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                         HttpUtil.getSortUrl(memo));
                 return false;
             }
-        }
+        }*/
         return false;
     }
 

+ 7 - 6
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -470,12 +470,13 @@
 
 	<update id="batchDeleteByCourseAndTeacher">
 		DELETE FROM course_schedule_teacher_salary
-		WHERE
-		course_schedule_id_ = #{courseScheduleId}
-		AND user_id_ IN
-		<foreach collection="userIds" item="userId" open="(" close=")" separator=",">
-			#{userId}
-		</foreach>
+		WHERE course_schedule_id_ = #{courseScheduleId}
+		<if test="userIds != null">
+		  AND user_id_ IN
+		  <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+			  #{userId}
+		  </foreach>
+		</if>
 	</update>
     <update id="batchUpdateTeacher">
 		UPDATE course_schedule_teacher_salary csts SET csts.user_id_ = #{teacherId},csts.update_time_ = NOW(),

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/SellOrderMapper.xml

@@ -602,4 +602,9 @@
                  LEFT JOIN goods g ON IF(so.parent_goods_id_ IS NOT NULL,g.id_ = so.parent_goods_id_,g.id_ = so.goods_id_)
         WHERE spo.id_ = #{orderId}
     </select>
+
+    <select id="getChildRepair" resultType="decimal">
+        SELECT IFNULL(SUM(actual_amount_),0) FROM sell_order WHERE order_id_ = #{orderId} AND goods_id_ = 76 AND parent_goods_id_ > 0
+    </select>
+
 </mapper>