Kaynağa Gözat

提高班加入IM,改成批量模式

周箭河 5 yıl önce
ebeveyn
işleme
0911702fca

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ClassGroupImGroupDto.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import com.ym.mec.biz.dal.entity.ClassGroup;
+
+import java.util.List;
+
+public class ClassGroupImGroupDto {
+    private ClassGroup classGroup;
+    private List<Integer> userIds;
+
+    public ClassGroup getClassGroup() {
+        return classGroup;
+    }
+
+    public void setClassGroup(ClassGroup classGroup) {
+        this.classGroup = classGroup;
+    }
+    public List<Integer> getUserIds() {
+        return userIds;
+    }
+
+    public void setUserIds(List<Integer> userIds) {
+        this.userIds = userIds;
+    }
+}

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

@@ -296,13 +296,16 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 courseScheduleDao.deleteCourseSchedulesByClassGroupIds(courseScheduleIds);
             }
 
+            List<ImGroupModel> imGroupModelList = new ArrayList<>();
             for (ClassGroup classGroup : classGroups) {
-                imFeignService.groupDismiss(new ImGroupModel(classGroup.getId().toString(), null, classGroup.getName()));
+                imGroupModelList.add(new ImGroupModel(classGroup.getId().toString(), null, classGroup.getName()));
             }
+            imFeignService.groupBatchDismiss(imGroupModelList);
         }
 
         List<CourseSchedule> courseScheduleList = new ArrayList<>();
         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = new ArrayList<>();
+        List<ClassGroupImGroupDto> classGroupImGroupList = new ArrayList<>();
         Integer schoolId = musicGroup.getSchoolId();
         for (HighClassGroupDto highClassGroup : highClassGroupList) {
             if (highClassGroup.getDayOfWeek() < 1 || highClassGroup.getDayOfWeek() > 7) {
@@ -374,9 +377,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             List<Integer> userIdList = new ArrayList<>();
             userIdList.add(classGroupTeacherMapper.getUserId());
 
-            //加入Im群组
-            addImGroup(highClassGroup, userIdList);
+            ClassGroupImGroupDto classGroupImGroupDto = new ClassGroupImGroupDto();
+            classGroupImGroupDto.setClassGroup(highClassGroup);
+            classGroupImGroupDto.setUserIds(userIdList);
+            classGroupImGroupList.add(classGroupImGroupDto);
         }
+        //加入Im群组
+        batchAddImGroup(classGroupImGroupList);
         classGroupTeacherMapperService.classGroupTeachersInsert(classGroupTeacherMapperList);
         //检测新排课冲突
         courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
@@ -1765,4 +1772,33 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     public List<ClassGroup> findByClassGroupIds(List<Integer> classGroupIds) {
         return classGroupDao.findByClassGroupIds(classGroupIds);
     }
+
+    public Boolean batchAddImGroup(List<ClassGroupImGroupDto> classGroupImGroupList) {
+
+        MusicGroup musicGroup = musicGroupDao.get(classGroupImGroupList.get(0).getClassGroup().getMusicGroupId());
+
+        List<ImGroupModel> imGroupModelList = new ArrayList<>();
+        for (ClassGroupImGroupDto classGroupImGroupDto : classGroupImGroupList) {
+            List<Integer> userIdList = new ArrayList<>();
+            userIdList.add(musicGroup.getEducationalTeacherId());
+            userIdList.add(musicGroup.getTeamTeacherId());
+            userIdList.add(musicGroup.getOperatorUserId());
+            userIdList.add(musicGroup.getDirectorUserId());
+            if (classGroupImGroupDto.getUserIds() != null && classGroupImGroupDto.getUserIds().size()>0) {
+                userIdList.addAll(classGroupImGroupDto.getUserIds());
+            }
+
+            List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+            for (Integer userId : userIdList) {
+                if (userId == null) continue;
+                imGroupMemberList.add(new ImGroupMember(userId.toString()));
+            }
+            //创建IM群组
+            ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+            ImGroupModel imGroupModel = new ImGroupModel(classGroupImGroupDto.getClassGroup().getId().toString(), imGroupMembers, classGroupImGroupDto.getClassGroup().getName());
+            imGroupModelList.add(imGroupModel);
+        }
+        imFeignService.groupBatchCreate(imGroupModelList);
+        return true;
+    }
 }