Selaa lähdekoodia

管乐迷优化需求

zouxuan 1 vuosi sitten
vanhempi
commit
d3afcb071f

+ 86 - 86
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -571,99 +571,99 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
                     }
                 }
             });
-            //原有员工退群
-            CompletableFuture.runAsync(() -> {
-                List<ImGroupModel> groupModels = classGroupDao.queryTeacherQuitGroups(levelUserId);
-                //原有员工退预报名群
-                groupModels.addAll(classGroupDao.queryQuitApplyGroups(levelUserId));
-                //获取当前用户所在的衔接群
-                groupModels.addAll(imGroupDao.queryUserGroupList(levelUserId, levelUserId, "乐团主管", null));
-                if (CollectionUtils.isNotEmpty(groupModels)) {
-                    List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
-                    // 融支IM用户退群
-                    List<GroupModel> groupModelList = new ArrayList<>();
-                    // 腾讯云IM用户退群
-                    List<GroupMemberWrapper.ImGroupMember> imGroupMembers = Lists.newArrayList();
-                    for (ImGroupModel imGroupModel : groupModels) {
-                        com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
-                        imGroupMember.setImGroupId(imGroupModel.getId());
-                        imGroupMember.setUserId(Integer.parseInt(imGroupModel.getMemberList().get(0).getId()));
-                        imGroupMemberList.add(imGroupMember);
-
-                        GroupMember groupMember = new GroupMember(imGroupMember.getUserId().toString(), imGroupModel.getId());
-                        GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[]{groupMember}, imGroupModel.getName());
-                        groupModelList.add(groupModel);
-
-                        // 腾讯云
-                        imGroupMembers.add(GroupMemberWrapper.ImGroupMember.builder()
-                                .groupId(imGroupModel.getId())
-                                .userId(imGroupMember.getUserId().longValue())
-                                .imUserId(imGroupMember.getUserId().toString())
-                                .build());
-                    }
-                    imGroupMemberService.batchDeleteByGroupIdAndUserId(imGroupMemberList);
-                    // 用户批量退出群组
-                    if (RongCloudImPlugin.PLUGIN_NAME.equals(imPluginContext.defaultService())) {
-                        // 融云退群
-                        imFeignService.groupBatchQuit(groupModelList);
-                    } else {
-                        // 腾讯云退群
-                        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(imGroupMembers)) {
-
-                            Map<String, List<GroupMemberWrapper.ImGroupMember>> groupMembers = imGroupMembers.stream()
-                                    .collect(Collectors.groupingBy(GroupMemberWrapper.ImGroupMember::getGroupId));
-
-                            for (Map.Entry<String, List<GroupMemberWrapper.ImGroupMember>> entry : groupMembers.entrySet()) {
-
-                                try {
-                                    // 用户退群
-                                    imGroupCoreService.groupQuit(entry.getValue(), entry.getKey());
-                                } catch (Exception e) {
-                                    log.error("腾讯云IM用户退群失败,groupId:{}, members={}", entry.getKey(), JSON.toJSONString(entry.getValue()), e);
-                                }
+        }
+        //原有员工退群
+        CompletableFuture.runAsync(() -> {
+            List<ImGroupModel> groupModels = classGroupDao.queryTeacherQuitGroups(levelUserId);
+            //原有员工退预报名群
+            groupModels.addAll(classGroupDao.queryQuitApplyGroups(levelUserId));
+            //获取当前用户所在的衔接群
+            groupModels.addAll(imGroupDao.queryUserGroupList(levelUserId, levelUserId, "乐团主管", null));
+            if (CollectionUtils.isNotEmpty(groupModels)) {
+                List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
+                // 融支IM用户退群
+                List<GroupModel> groupModelList = new ArrayList<>();
+                // 腾讯云IM用户退群
+                List<GroupMemberWrapper.ImGroupMember> imGroupMembers = Lists.newArrayList();
+                for (ImGroupModel imGroupModel : groupModels) {
+                    com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
+                    imGroupMember.setImGroupId(imGroupModel.getId());
+                    imGroupMember.setUserId(Integer.parseInt(imGroupModel.getMemberList().get(0).getId()));
+                    imGroupMemberList.add(imGroupMember);
+
+                    GroupMember groupMember = new GroupMember(imGroupMember.getUserId().toString(), imGroupModel.getId());
+                    GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[]{groupMember}, imGroupModel.getName());
+                    groupModelList.add(groupModel);
+
+                    // 腾讯云
+                    imGroupMembers.add(GroupMemberWrapper.ImGroupMember.builder()
+                            .groupId(imGroupModel.getId())
+                            .userId(imGroupMember.getUserId().longValue())
+                            .imUserId(imGroupMember.getUserId().toString())
+                            .build());
+                }
+                imGroupMemberService.batchDeleteByGroupIdAndUserId(imGroupMemberList);
+                // 用户批量退出群组
+                if (RongCloudImPlugin.PLUGIN_NAME.equals(imPluginContext.defaultService())) {
+                    // 融云退群
+                    imFeignService.groupBatchQuit(groupModelList);
+                } else {
+                    // 腾讯云退群
+                    if (org.apache.commons.collections.CollectionUtils.isNotEmpty(imGroupMembers)) {
+
+                        Map<String, List<GroupMemberWrapper.ImGroupMember>> groupMembers = imGroupMembers.stream()
+                                .collect(Collectors.groupingBy(GroupMemberWrapper.ImGroupMember::getGroupId));
+
+                        for (Map.Entry<String, List<GroupMemberWrapper.ImGroupMember>> entry : groupMembers.entrySet()) {
+
+                            try {
+                                // 用户退群
+                                imGroupCoreService.groupQuit(entry.getValue(), entry.getKey());
+                            } catch (Exception e) {
+                                log.error("腾讯云IM用户退群失败,groupId:{}, members={}", entry.getKey(), JSON.toJSONString(entry.getValue()), e);
                             }
                         }
                     }
                 }
-            });
-            //更换教务老师等数据
-            employeeDao.employeeLevel(employeeLevelDtos);
-            //新增离职时间
-            employeeDao.updateUserDemissionDate(levelUserId);
-            //冻结用户
-            employeeDao.updateUserLock(levelUserId, 1);
-            //用户退出登陆
-            sysUserFeignService.exitByPhone("SYSTEM", teacherDao.getUser(levelUserId).getPhone());
-            CompletableFuture.runAsync(() -> {
-                //获取用户担任教务老师、维修技师的所有乐团列表
-                List<String> musicGroupIds = employeeDao.queryMusicGroupIdByUserId(levelUserId);
-                //获取用户担任教务老师的所有网管课列表
-                List<String> practiceGroupIds = employeeDao.queryPracticeGroupIdByUserId(levelUserId);
-                //获取用户担任教务老师的所有VIP课列表
-                List<String> vipGroupIds = employeeDao.queryVipGroupIdByUserId(levelUserId);
-                if (CollectionUtils.isNotEmpty(musicGroupIds)) {
-                    for (String musicGroupId : musicGroupIds) {
-                        imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.MUSIC);
-                    }
-                }
-                if (CollectionUtils.isNotEmpty(practiceGroupIds)) {
-                    for (String musicGroupId : practiceGroupIds) {
-                        imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.PRACTICE);
-                    }
+            }
+        });
+        //更换教务老师等数据
+        employeeDao.employeeLevel(employeeLevelDtos);
+        //新增离职时间
+        employeeDao.updateUserDemissionDate(levelUserId);
+        //冻结用户
+        employeeDao.updateUserLock(levelUserId, 1);
+        //用户退出登陆
+        sysUserFeignService.exitByPhone("SYSTEM", teacherDao.getUser(levelUserId).getPhone());
+        CompletableFuture.runAsync(() -> {
+            //获取用户担任教务老师、维修技师的所有乐团列表
+            List<String> musicGroupIds = employeeDao.queryMusicGroupIdByUserId(levelUserId);
+            //获取用户担任教务老师的所有网管课列表
+            List<String> practiceGroupIds = employeeDao.queryPracticeGroupIdByUserId(levelUserId);
+            //获取用户担任教务老师的所有VIP课列表
+            List<String> vipGroupIds = employeeDao.queryVipGroupIdByUserId(levelUserId);
+            if (CollectionUtils.isNotEmpty(musicGroupIds)) {
+                for (String musicGroupId : musicGroupIds) {
+                    imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.MUSIC);
                 }
-                if (CollectionUtils.isNotEmpty(vipGroupIds)) {
-                    for (String musicGroupId : vipGroupIds) {
-                        imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.VIP);
-                    }
+            }
+            if (CollectionUtils.isNotEmpty(practiceGroupIds)) {
+                for (String musicGroupId : practiceGroupIds) {
+                    imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.PRACTICE);
                 }
-                if (CollectionUtils.isNotEmpty(musicGroupIds) || CollectionUtils.isNotEmpty(practiceGroupIds) || CollectionUtils.isNotEmpty(vipGroupIds)) {
-                    //更新群成员数量
-                    imGroupDao.updateMemberNum();
-                    //删除重复的群成员
-                    imGroupMemberService.delRepeat();
+            }
+            if (CollectionUtils.isNotEmpty(vipGroupIds)) {
+                for (String musicGroupId : vipGroupIds) {
+                    imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.VIP);
                 }
-            }, exportExecutorService);
-        }
+            }
+            if (CollectionUtils.isNotEmpty(musicGroupIds) || CollectionUtils.isNotEmpty(practiceGroupIds) || CollectionUtils.isNotEmpty(vipGroupIds)) {
+                //更新群成员数量
+                imGroupDao.updateMemberNum();
+                //删除重复的群成员
+                imGroupMemberService.delRepeat();
+            }
+        }, exportExecutorService);
     }
 
     @Override