Browse Source

fix 班级人数

周箭河 5 years ago
parent
commit
c86efb4156

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherMapperService.java

@@ -17,6 +17,7 @@ public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassG
      */
     int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
 
+    int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList,boolean checkCourser);
 
     /**
      * 查询班级老师

+ 40 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -69,6 +69,42 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         List<ClassGroupTeacherMapper> oldClassGroupTeacherMapper = classGroupTeacherMapperDao.getClassGroupTeacherMapper(classGroupTeacherMapperList, GroupType.MUSIC);
 
+        for (ClassGroup classGroup : classGroups) {
+            imGroupMemberList.clear();
+            //原设置的老师删除群组
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : oldClassGroupTeacherMapper) {
+                if (!classGroup.getId().equals(classGroupTeacherMapper.getClassGroupId())) continue;
+                imGroupMemberList.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
+            }
+            if (imGroupMemberList.size() > 0) {
+                ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+                imFeignService.groupQuit(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+            }
+            // 新设置的老师加入群组
+            imGroupMemberList.clear();
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+                if (!classGroup.getId().equals(classGroupTeacherMapper.getClassGroupId())) continue;
+                classGroupTeacherMapper.setMusicGroupId(classGroup.getMusicGroupId());
+                classGroupTeacherMapper.setGroupType(classGroup.getGroupType());
+                imGroupMemberList.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
+            }
+            ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+            imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+        }
+        classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);
+
+        return classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
+    }
+
+    @Override
+    public int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList, boolean checkCourser) {
+        String classGroupIds = classGroupTeacherMapperList.stream().map(classGroupTeacherMapper -> classGroupTeacherMapper.getClassGroupId().toString()).collect(Collectors.joining(","));
+        //老师加入群组
+        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+        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) {
@@ -98,11 +134,11 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);
 
         //老师不相同删除老师未开始的课程
-        if (oldTeacher.size() != newTeacher.size() || !newTeacher.containsAll(oldTeacher)){
+        if (checkCourser && (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);
+            if (musicGroupCourseSchedules != null && musicGroupCourseSchedules.size() > 0) {
+                courseScheduleService.batchDeleteMusicGroupNotStartCourse(musicGroupId, GroupType.MUSIC);
             }
         }
 
@@ -428,7 +464,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         return courseScheduleTeacherSalary;
     }
 
-    public List<ClassGroupTeacherMapper> getClassGroupTeachers(Integer classGroupId){
+    public List<ClassGroupTeacherMapper> getClassGroupTeachers(Integer classGroupId) {
         return classGroupTeacherMapperDao.findClassGroupTeachers(classGroupId.toString());
     }
 }

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -154,7 +154,7 @@ public class ClassGroupController extends BaseController {
         if (classGroupTeacherMapperList.size() <= 0) {
             return failed("参数不合法");
         }
-        return succeed(classGroupTeacherMapperService.classGroupTeachersInsert(classGroupTeacherMapperList));
+        return succeed(classGroupTeacherMapperService.classGroupTeachersInsert(classGroupTeacherMapperList,true));
     }
 
     @ApiOperation(value = "获取乐团班级老师")