|
@@ -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
|
|
@Override
|