zouxuan il y a 1 an
Parent
commit
460bbba1d9

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

@@ -50,6 +50,7 @@ import org.springframework.security.authentication.LockedException;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.concurrent.*;
@@ -469,7 +470,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
             for (Integer organId : organIds) {
                 List<EmployeeLevelDto> levelDtoList = organIdMap.get(organId);
                 for (EmployeeLevelDto employeeLevelDto : levelDtoList) {
-                    if (employeeLevelDto.getLevelUserId() == employeeLevelDto.getTransferUserId()) {
+                    if (Objects.equals(employeeLevelDto.getLevelUserId(), employeeLevelDto.getTransferUserId())) {
                         throw new BizException("交接人校验失败,请重新填写");
                     }
                     userIds.add(employeeLevelDto.getTransferUserId());
@@ -567,15 +568,11 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
                             } catch (Exception e) {
                                 log.error("腾讯云IM用户加群失败,groupId:{}, members={}", entry.getKey(), JSON.toJSONString(entry.getValue()), e);
                             }
-                            // 腾讯云用户加群
-                            imGroupCoreService.groupMemberJoin(entry.getKey(), entry.getValue());
-                        } catch (Exception e) {
-                            log.error("腾讯云IM用户加群失败,groupId:{}, members={}", entry.getKey(), JSON.toJSONString(entry.getValue()), e);
                         }
                     }
                 }
-            }
-        });
+            });
+        }
         //原有员工退群
         CompletableFuture.runAsync(() -> {
             List<ImGroupModel> groupModels = classGroupDao.queryTeacherQuitGroups(levelUserId);
@@ -595,30 +592,30 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
                     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);
+                    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)) {
+                    // 腾讯云
+                    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));
+                        Map<String, List<GroupMemberWrapper.ImGroupMember>> groupMembers = imGroupMembers.stream()
+                                .collect(Collectors.groupingBy(GroupMemberWrapper.ImGroupMember::getGroupId));
 
-                    for (Map.Entry<String, List<GroupMemberWrapper.ImGroupMember>> entry : groupMembers.entrySet()) {
+                        for (Map.Entry<String, List<GroupMemberWrapper.ImGroupMember>> entry : groupMembers.entrySet()) {
 
                             try {
                                 // 用户退群
@@ -637,45 +634,37 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
         employeeDao.updateUserDemissionDate(levelUserId);
         //冻结用户
         employeeDao.updateUserLock(levelUserId, 1);
-        ExecutorService executor = Executors.newCachedThreadPool();
-        CompletableFuture<Boolean> refreshUserFriend = CompletableFuture.supplyAsync(() -> {
+        //用户退出登陆
+        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);
-            boolean refreshFlag = false;
-            if (musicGroupIds.size() > 0) {
+            if (CollectionUtils.isNotEmpty(musicGroupIds)) {
                 for (String musicGroupId : musicGroupIds) {
                     imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.MUSIC);
                 }
-                refreshFlag = true;
             }
-            if (practiceGroupIds.size() > 0) {
+            if (CollectionUtils.isNotEmpty(practiceGroupIds)) {
                 for (String musicGroupId : practiceGroupIds) {
                     imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.PRACTICE);
                 }
-                refreshFlag = true;
             }
-            if (vipGroupIds.size() > 0) {
+            if (CollectionUtils.isNotEmpty(vipGroupIds)) {
                 for (String musicGroupId : vipGroupIds) {
                     imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.VIP);
                 }
-                refreshFlag = true;
             }
-            return refreshFlag;
-        }, executor);
-        Boolean join = refreshUserFriend.join();
-        if (join) {
-            refreshUserFriend.thenRun(() -> {
+            if (CollectionUtils.isNotEmpty(musicGroupIds) || CollectionUtils.isNotEmpty(practiceGroupIds) || CollectionUtils.isNotEmpty(vipGroupIds)) {
                 //更新群成员数量
                 imGroupDao.updateMemberNum();
                 //删除重复的群成员
                 imGroupMemberService.delRepeat();
-            });
-        }
-        executor.shutdown();
+            }
+        }, exportExecutorService);
     }
     @Override
     public List<Integer> queryUserRole(Integer sysUserId) {