|
@@ -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) {
|