|
@@ -50,7 +50,6 @@ 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.*;
|
|
@@ -482,6 +481,8 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
|
|
|
cooperationOrganDao.batchUpdateEduId(employeeLevelDto.getTransferUserId(), levelUserId, organId);
|
|
|
//教务老师所需加入的群组
|
|
|
educationGroupModels.addAll(classGroupDao.queryEducationGroups(employeeLevelDto.getTransferUserId(), levelUserId, organId));
|
|
|
+ //获取当前用户所在的衔接群
|
|
|
+ educationGroupModels.addAll(imGroupDao.queryUserGroupList(employeeLevelDto.getTransferUserId(), levelUserId, "乐团主管", organId));
|
|
|
break;
|
|
|
case "teamTeacher":
|
|
|
//运营主管所需加入的群组
|
|
@@ -495,70 +496,76 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- Date date = new Date();
|
|
|
- if (educationGroupModels.size() > 0) {
|
|
|
- Map<Integer, String> realNameMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(userIds)));
|
|
|
- //❤️用户加群
|
|
|
- List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
- List<GroupModel> groupModelList = new ArrayList<>();
|
|
|
-
|
|
|
- List<ImGroupMemberWrapper.ImGroupMember> groupMembers = Lists.newArrayList();
|
|
|
- for (ImGroupModel imGroupModel : educationGroupModels) {
|
|
|
- String userId = imGroupModel.getMemberList().get(0).getId();
|
|
|
- com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
|
|
|
- imGroupMember.setCreateTime(date);
|
|
|
- imGroupMember.setImGroupId(imGroupModel.getId());
|
|
|
- imGroupMember.setIsAdmin(false);
|
|
|
- imGroupMember.setRoleType(imGroupModel.getUserRole());
|
|
|
- if(StringUtils.isNotEmpty(imGroupModel.getUserRole())){
|
|
|
- imGroupMember.setType(EFriendRoleType.getByName(imGroupModel.getUserRole()).name());
|
|
|
+ if (CollectionUtils.isNotEmpty(educationGroupModels)) {
|
|
|
+ CompletableFuture.runAsync(() -> {
|
|
|
+ Date date = new Date();
|
|
|
+ Map<Integer, String> realNameMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(userIds)));
|
|
|
+ //❤️用户加群
|
|
|
+ List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
+ List<GroupModel> groupModelList = new ArrayList<>();
|
|
|
+
|
|
|
+ List<ImGroupMemberWrapper.ImGroupMember> groupMembers = Lists.newArrayList();
|
|
|
+ for (ImGroupModel imGroupModel : educationGroupModels) {
|
|
|
+ String userId = imGroupModel.getMemberList().get(0).getId();
|
|
|
+ com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
|
|
|
+ imGroupMember.setCreateTime(date);
|
|
|
+ imGroupMember.setImGroupId(imGroupModel.getId());
|
|
|
+ imGroupMember.setIsAdmin(false);
|
|
|
+ imGroupMember.setRoleType(imGroupModel.getUserRole());
|
|
|
+ if (StringUtils.isNotEmpty(imGroupModel.getUserRole())) {
|
|
|
+ imGroupMember.setType(EFriendRoleType.getByName(imGroupModel.getUserRole()).name());
|
|
|
+ }
|
|
|
+ imGroupMember.setUpdateTime(date);
|
|
|
+ imGroupMember.setUserId(Integer.parseInt(userId));
|
|
|
+ imGroupMember.setNickname(realNameMap.get(imGroupMember.getUserId()));
|
|
|
+ imGroupMemberList.add(imGroupMember);
|
|
|
+ GroupMember groupMember = new GroupMember(userId, imGroupModel.getId());
|
|
|
+ GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[]{groupMember}, imGroupModel.getName());
|
|
|
+ groupModelList.add(groupModel);
|
|
|
+
|
|
|
+ // 腾讯云IM用户加群
|
|
|
+ groupMembers.add(ImGroupMemberWrapper.ImGroupMember.builder()
|
|
|
+ .groupId(imGroupModel.getId())
|
|
|
+ .roleType(imGroupModel.getUserRole())
|
|
|
+ .isAdmin(false)
|
|
|
+ .userId(Long.valueOf(userId))
|
|
|
+ .imUserId(userId)
|
|
|
+ .groupRoleType(imGroupMember.getGroupRoleType())
|
|
|
+ .nickname(realNameMap.get(imGroupMember.getUserId()))
|
|
|
+ .updateTime(DateTime.now().toDate())
|
|
|
+ .createTime(DateTime.now().toDate())
|
|
|
+ .build());
|
|
|
}
|
|
|
- imGroupMember.setUpdateTime(date);
|
|
|
- imGroupMember.setUserId(Integer.parseInt(userId));
|
|
|
- imGroupMember.setNickname(realNameMap.get(imGroupMember.getUserId()));
|
|
|
- imGroupMemberList.add(imGroupMember);
|
|
|
- GroupMember groupMember = new GroupMember(userId, imGroupModel.getId());
|
|
|
- GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[]{groupMember}, imGroupModel.getName());
|
|
|
- groupModelList.add(groupModel);
|
|
|
-
|
|
|
- // 腾讯云IM用户加群
|
|
|
- groupMembers.add(ImGroupMemberWrapper.ImGroupMember.builder()
|
|
|
- .groupId(imGroupModel.getId())
|
|
|
- .roleType(imGroupModel.getUserRole())
|
|
|
- .isAdmin(false)
|
|
|
- .userId(Long.valueOf(userId))
|
|
|
- .imUserId(userId)
|
|
|
- .groupRoleType(imGroupMember.getGroupRoleType())
|
|
|
- .nickname(realNameMap.get(imGroupMember.getUserId()))
|
|
|
- .updateTime(DateTime.now().toDate())
|
|
|
- .createTime(DateTime.now().toDate())
|
|
|
- .build());
|
|
|
- }
|
|
|
- imGroupMemberService.batchInsert(imGroupMemberList);
|
|
|
-
|
|
|
- if (RongCloudImPlugin.PLUGIN_NAME.equals(imPluginContext.defaultService())) {
|
|
|
- // 融云IM用户加群
|
|
|
- imFeignService.groupBatchJoin(groupModelList);
|
|
|
- } else {
|
|
|
- // 腾讯云IM用户加群
|
|
|
- if (org.apache.commons.collections.CollectionUtils.isNotEmpty(groupMembers)) {
|
|
|
- Map<String, List<ImGroupMemberWrapper.ImGroupMember>> imGroupMembers = groupMembers.stream()
|
|
|
- .collect(Collectors.groupingBy(ImGroupMemberWrapper.ImGroupMember::getGroupId));
|
|
|
-
|
|
|
- for (Map.Entry<String, List<ImGroupMemberWrapper.ImGroupMember>> entry : imGroupMembers.entrySet()) {
|
|
|
-
|
|
|
- try {
|
|
|
- // 设置用户默认头象
|
|
|
- for (ImGroupMemberWrapper.ImGroupMember member : entry.getValue()) {
|
|
|
+ imGroupMemberService.batchInsert(imGroupMemberList);
|
|
|
+
|
|
|
+ if (RongCloudImPlugin.PLUGIN_NAME.equals(imPluginContext.defaultService())) {
|
|
|
+ // 融云IM用户加群
|
|
|
+ imFeignService.groupBatchJoin(groupModelList);
|
|
|
+ } else {
|
|
|
+ // 腾讯云IM用户加群
|
|
|
+ if (org.apache.commons.collections.CollectionUtils.isNotEmpty(groupMembers)) {
|
|
|
+ Map<String, List<ImGroupMemberWrapper.ImGroupMember>> imGroupMembers = groupMembers.stream()
|
|
|
+ .collect(Collectors.groupingBy(ImGroupMemberWrapper.ImGroupMember::getGroupId));
|
|
|
+
|
|
|
+ for (Map.Entry<String, List<ImGroupMemberWrapper.ImGroupMember>> entry : imGroupMembers.entrySet()) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 设置用户默认头象
|
|
|
+ for (ImGroupMemberWrapper.ImGroupMember member : entry.getValue()) {
|
|
|
// member.setAvatar(avatarMap.getOrDefault(member.getUserId().intValue(), ""));
|
|
|
- SysUser user = teacherDao.getUser(member.getUserId().intValue());
|
|
|
- // 用户头像
|
|
|
- member.setAvatar(sysUserService.getImAvatar(user));
|
|
|
- if(StringUtils.isNotEmpty(member.getRoleType())){
|
|
|
- member.setNickname(StringUtils.isEmpty(user.getRealName())?user.getUsername():user.getRealName());
|
|
|
- }else {
|
|
|
- member.setNickname(StringUtils.isEmpty(user.getUsername())?user.getRealName():user.getUsername());
|
|
|
+ SysUser user = teacherDao.getUser(member.getUserId().intValue());
|
|
|
+ // 用户头像
|
|
|
+ member.setAvatar(sysUserService.getImAvatar(user));
|
|
|
+ if (StringUtils.isNotEmpty(member.getRoleType())) {
|
|
|
+ member.setNickname(StringUtils.isEmpty(user.getRealName()) ? user.getUsername() : user.getRealName());
|
|
|
+ } else {
|
|
|
+ member.setNickname(StringUtils.isEmpty(user.getUsername()) ? user.getRealName() : user.getUsername());
|
|
|
+ }
|
|
|
}
|
|
|
+ // 腾讯云用户加群
|
|
|
+ imGroupCoreService.groupMemberJoin(entry.getKey(), entry.getValue());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("腾讯云IM用户加群失败,groupId:{}, members={}", entry.getKey(), JSON.toJSONString(entry.getValue()), e);
|
|
|
}
|
|
|
// 腾讯云用户加群
|
|
|
imGroupCoreService.groupMemberJoin(entry.getKey(), entry.getValue());
|
|
@@ -570,20 +577,23 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
|
|
|
}
|
|
|
}
|
|
|
//原有员工退群
|
|
|
- List<ImGroupModel> groupModels = classGroupDao.queryTeacherQuitGroups(levelUserId);
|
|
|
- //原有员工退预报名群
|
|
|
- groupModels.addAll(classGroupDao.queryQuitApplyGroups(levelUserId));
|
|
|
- if (groupModels.size() > 0) {
|
|
|
- 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);
|
|
|
+ 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());
|
|
@@ -610,17 +620,17 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
|
|
|
|
|
|
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);
|
|
|
+ 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);
|
|
|
//新增离职时间
|