Преглед изворни кода

Merge remote-tracking branch 'origin/master'

Joburgess пре 5 година
родитељ
комит
2a9b3b257e

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1794,6 +1794,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         String classGroupIds = classGroups.stream().map(classGroup -> classGroup.getId().toString()).collect(Collectors.joining(","));
 
         List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperDao.findClassGroupTeachers(classGroupIds);
+        Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countStudyNum(classGroupIds))), HashMap.class);
+
         for (ClassGroupTeachersDto classGroup : classGroups) {
             List<ClassGroupTeacherMapper> classGroupTeacherMappers = new ArrayList<>();
             for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
@@ -1801,6 +1803,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 classGroupTeacherMappers.add(classGroupTeacher);
             }
             classGroup.setClassGroupTeacherMapperList(classGroupTeacherMappers);
+            classGroup.setStudentNum(studyNums.get(classGroup.getId()));
         }
         return classGroups;
     }

+ 14 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -61,27 +61,23 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) {
-        String musicGroupId = classGroupTeacherMapperList.get(0).getMusicGroupId();
 
-        //删除老师未开始的课程
-        List<CourseSchedule> musicGroupCourseSchedules = courseScheduleDao.findMusicGroupCourseSchedules(musicGroupId, GroupType.MUSIC.getCode(), CourseStatusEnum.NOT_START.getCode());
-        if(musicGroupCourseSchedules != null && musicGroupCourseSchedules.size() >0){
-            courseScheduleService.batchDeleteMusicGroupNotStartCourse(musicGroupId,GroupType.MUSIC);
-        }
+        String classGroupIds = classGroupTeacherMapperList.stream().map(classGroupTeacherMapper -> classGroupTeacherMapper.getClassGroupId().toString()).collect(Collectors.joining(","));
         //老师加入群组
         List<ImGroupMember> imGroupMemberList = new ArrayList<>();
-        String classGroupIds = classGroupTeacherMapperList.stream().map(classGroupTeacherMapper -> classGroupTeacherMapper.getClassGroupId().toString()).collect(Collectors.joining(","));
-
         List<ClassGroup> classGroups = classGroupService.findClassGroupByIds(classGroupIds);
 
         List<ClassGroupTeacherMapper> oldClassGroupTeacherMapper = classGroupTeacherMapperDao.getClassGroupTeacherMapper(classGroupTeacherMapperList, GroupType.MUSIC);
 
+        Set<String> oldTeacher = new HashSet<>();
+        Set<String> newTeacher = new HashSet<>();
         for (ClassGroup classGroup : classGroups) {
             imGroupMemberList.clear();
             //原设置的老师删除群组
             for (ClassGroupTeacherMapper classGroupTeacherMapper : oldClassGroupTeacherMapper) {
                 if (!classGroup.getId().equals(classGroupTeacherMapper.getClassGroupId())) continue;
                 imGroupMemberList.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
+                oldTeacher.add(classGroupTeacherMapper.getClassGroupId() + classGroupTeacherMapper.getTeacherRole().getCode() + classGroupTeacherMapper.getUserId());
             }
             if (imGroupMemberList.size() > 0) {
                 ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
@@ -94,12 +90,22 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                 classGroupTeacherMapper.setMusicGroupId(classGroup.getMusicGroupId());
                 classGroupTeacherMapper.setGroupType(classGroup.getGroupType());
                 imGroupMemberList.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
+                newTeacher.add(classGroupTeacherMapper.getClassGroupId() + classGroupTeacherMapper.getTeacherRole().getCode() + classGroupTeacherMapper.getUserId());
             }
             ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
             imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
         }
         classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);
 
+        //老师不相同删除老师未开始的课程
+        if (oldTeacher.size() != newTeacher.size() || !newTeacher.containsAll(oldTeacher)){
+            String musicGroupId = classGroupTeacherMapperList.get(0).getMusicGroupId();
+            List<CourseSchedule> musicGroupCourseSchedules = courseScheduleDao.findMusicGroupCourseSchedules(musicGroupId, GroupType.MUSIC.getCode(), CourseStatusEnum.NOT_START.getCode());
+            if(musicGroupCourseSchedules != null && musicGroupCourseSchedules.size() >0){
+                courseScheduleService.batchDeleteMusicGroupNotStartCourse(musicGroupId,GroupType.MUSIC);
+            }
+        }
+
         return classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
     }