|
@@ -3,11 +3,14 @@ package com.ym.mec.biz.service.impl;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
import com.ym.mec.biz.dal.entity.Organization;
|
|
import com.ym.mec.biz.dal.entity.Organization;
|
|
import com.ym.mec.biz.dal.enums.GroupType;
|
|
import com.ym.mec.biz.dal.enums.GroupType;
|
|
-import com.ym.mec.biz.service.ImGroupService;
|
|
|
|
import com.ym.mec.biz.service.ImUserFriendService;
|
|
import com.ym.mec.biz.service.ImUserFriendService;
|
|
|
|
+import com.ym.mec.im.entity.GroupMember;
|
|
|
|
+import com.ym.mec.im.entity.GroupModel;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
@@ -41,7 +44,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> implements EmployeeService {
|
|
public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> implements EmployeeService {
|
|
-
|
|
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private EmployeeDao employeeDao;
|
|
private EmployeeDao employeeDao;
|
|
@Autowired
|
|
@Autowired
|
|
@@ -258,10 +261,10 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
public void level(List<EmployeeLevelDto> employeeLevelDtos) {
|
|
public void level(List<EmployeeLevelDto> employeeLevelDtos) {
|
|
Integer levelUserId = employeeLevelDtos.get(0).getLevelUserId();
|
|
Integer levelUserId = employeeLevelDtos.get(0).getLevelUserId();
|
|
List<ImGroupModel> educationGroupModels = new ArrayList<>();
|
|
List<ImGroupModel> educationGroupModels = new ArrayList<>();
|
|
- List<ImGroupModel> teamGroupModels = new ArrayList<>();
|
|
|
|
- List<ImGroupModel> directorGroupModels = new ArrayList<>();
|
|
|
|
|
|
+// List<ImGroupModel> teamGroupModels = new ArrayList<>();
|
|
|
|
+// List<ImGroupModel> directorGroupModels = new ArrayList<>();
|
|
//获取用户需要加入的预报名群聊
|
|
//获取用户需要加入的预报名群聊
|
|
- List<ImGroupModel> applyGroupModels = new ArrayList<>();
|
|
|
|
|
|
+// List<ImGroupModel> applyGroupModels = new ArrayList<>();
|
|
//获取用户担任教务老师的所有乐团列表
|
|
//获取用户担任教务老师的所有乐团列表
|
|
List<String> musicGroupIds = employeeDao.queryMusicGroupIdByUserId(levelUserId);
|
|
List<String> musicGroupIds = employeeDao.queryMusicGroupIdByUserId(levelUserId);
|
|
//获取用户担任教务老师的所有网管课列表
|
|
//获取用户担任教务老师的所有网管课列表
|
|
@@ -271,6 +274,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
//获取用户需要加入的群组列表
|
|
//获取用户需要加入的群组列表
|
|
Map<String, List<EmployeeLevelDto>> collect = employeeLevelDtos.stream().collect(Collectors.groupingBy(e -> e.getRoleName()));
|
|
Map<String, List<EmployeeLevelDto>> collect = employeeLevelDtos.stream().collect(Collectors.groupingBy(e -> e.getRoleName()));
|
|
Set<String> roleNames = collect.keySet();
|
|
Set<String> roleNames = collect.keySet();
|
|
|
|
+ Set<Integer> userIds = new HashSet<>();
|
|
for (String roleName : roleNames) {
|
|
for (String roleName : roleNames) {
|
|
List<EmployeeLevelDto> levelDtos = collect.get(roleName);
|
|
List<EmployeeLevelDto> levelDtos = collect.get(roleName);
|
|
Map<Integer, List<EmployeeLevelDto>> organIdMap = levelDtos.stream().collect(Collectors.groupingBy(e -> e.getOrganId()));
|
|
Map<Integer, List<EmployeeLevelDto>> organIdMap = levelDtos.stream().collect(Collectors.groupingBy(e -> e.getOrganId()));
|
|
@@ -281,8 +285,9 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
if(employeeLevelDto.getLevelUserId() == employeeLevelDto.getTransferUserId()){
|
|
if(employeeLevelDto.getLevelUserId() == employeeLevelDto.getTransferUserId()){
|
|
throw new BizException("交接人校验失败,请重新填写");
|
|
throw new BizException("交接人校验失败,请重新填写");
|
|
}
|
|
}
|
|
|
|
+ userIds.add(employeeLevelDto.getTransferUserId());
|
|
//获取关联的预报名的群聊
|
|
//获取关联的预报名的群聊
|
|
- applyGroupModels.addAll(classGroupDao.queryApplyGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId));
|
|
|
|
|
|
+ educationGroupModels.addAll(classGroupDao.queryApplyGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId));
|
|
switch (roleName){
|
|
switch (roleName){
|
|
case "education":
|
|
case "education":
|
|
//替换当前分部合作单位关联的乐团主管
|
|
//替换当前分部合作单位关联的乐团主管
|
|
@@ -292,31 +297,44 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
break;
|
|
break;
|
|
case "teamTeacher":
|
|
case "teamTeacher":
|
|
//运营主管所需加入的群组
|
|
//运营主管所需加入的群组
|
|
- teamGroupModels.addAll(classGroupDao.queryTeamTeacherGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId));
|
|
|
|
|
|
+ educationGroupModels.addAll(classGroupDao.queryTeamTeacherGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId));
|
|
break;
|
|
break;
|
|
case "director":
|
|
case "director":
|
|
//乐队指导所需加入的群组
|
|
//乐队指导所需加入的群组
|
|
- directorGroupModels.addAll(classGroupDao.queryDirectorGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId));
|
|
|
|
|
|
+ educationGroupModels.addAll(classGroupDao.queryDirectorGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId));
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- //预报名群
|
|
|
|
- if(applyGroupModels.size() > 0){
|
|
|
|
|
|
+ Date date = new Date();
|
|
|
|
+// educationGroupModels.addAll(applyGroupModels);
|
|
|
|
+// educationGroupModels.addAll(educationGroupModels);
|
|
|
|
+// educationGroupModels.addAll(teamGroupModels);
|
|
|
|
+ if(educationGroupModels.size() > 0){
|
|
|
|
+ Map<Integer, String> realNameMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(userIds)));
|
|
//❤️用户加群
|
|
//❤️用户加群
|
|
- for (ImGroupModel imGroupModel : applyGroupModels) {
|
|
|
|
- Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
|
|
|
|
-
|
|
|
|
- List<ImGroupMember> memberList = imGroupModel.getMemberList();
|
|
|
|
- for(ImGroupMember member : memberList){
|
|
|
|
- userRoleMap.put(Integer.parseInt(member.getId()), imGroupModel.getUserRole());
|
|
|
|
- }
|
|
|
|
- imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap);
|
|
|
|
|
|
+ List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
|
+ List<GroupModel> groupModelList = new ArrayList<>();
|
|
|
|
+ for (ImGroupModel imGroupModel : educationGroupModels) {
|
|
|
|
+ com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
|
|
|
|
+ imGroupMember.setCreateTime(date);
|
|
|
|
+ imGroupMember.setImGroupId(Long.parseLong(imGroupModel.getId()));
|
|
|
|
+ imGroupMember.setIsAdmin(false);
|
|
|
|
+ imGroupMember.setRoleType(imGroupModel.getUserRole());
|
|
|
|
+ imGroupMember.setUpdateTime(date);
|
|
|
|
+ imGroupMember.setUserId(Integer.parseInt(imGroupModel.getMemberList().get(0).getId()));
|
|
|
|
+ imGroupMember.setNickname(realNameMap.get(imGroupMember.getUserId()));
|
|
|
|
+ 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);
|
|
}
|
|
}
|
|
|
|
+ imGroupMemberService.batchInsert(imGroupMemberList);
|
|
|
|
+ imFeignService.groupBatchJoin(groupModelList);
|
|
}
|
|
}
|
|
- if(educationGroupModels.size() > 0){
|
|
|
|
|
|
+ /*if(educationGroupModels.size() > 0){
|
|
//❤️用户加群
|
|
//❤️用户加群
|
|
for (ImGroupModel imGroupModel : educationGroupModels) {
|
|
for (ImGroupModel imGroupModel : educationGroupModels) {
|
|
Map<Integer,String> userRoleMap = new HashMap<>();
|
|
Map<Integer,String> userRoleMap = new HashMap<>();
|
|
@@ -332,7 +350,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
//❤️用户加群
|
|
//❤️用户加群
|
|
for (ImGroupModel imGroupModel : teamGroupModels) {
|
|
for (ImGroupModel imGroupModel : teamGroupModels) {
|
|
Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
|
|
Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
|
|
-
|
|
|
|
|
|
+
|
|
List<ImGroupMember> memberList = imGroupModel.getMemberList();
|
|
List<ImGroupMember> memberList = imGroupModel.getMemberList();
|
|
for(ImGroupMember member : memberList){
|
|
for(ImGroupMember member : memberList){
|
|
userRoleMap.put(Integer.parseInt(member.getId()), "运营主管");
|
|
userRoleMap.put(Integer.parseInt(member.getId()), "运营主管");
|
|
@@ -344,31 +362,42 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
//❤️用户加群
|
|
//❤️用户加群
|
|
for (ImGroupModel imGroupModel : directorGroupModels) {
|
|
for (ImGroupModel imGroupModel : directorGroupModels) {
|
|
Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
|
|
Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
|
|
-
|
|
|
|
|
|
+
|
|
List<ImGroupMember> memberList = imGroupModel.getMemberList();
|
|
List<ImGroupMember> memberList = imGroupModel.getMemberList();
|
|
for(ImGroupMember member : memberList){
|
|
for(ImGroupMember member : memberList){
|
|
userRoleMap.put(Integer.parseInt(member.getId()), "乐队指导");
|
|
userRoleMap.put(Integer.parseInt(member.getId()), "乐队指导");
|
|
}
|
|
}
|
|
imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap);
|
|
imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap);
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
//原有员工退群
|
|
//原有员工退群
|
|
List<ImGroupModel> groupModels = classGroupDao.queryTeacherQuitGroups(levelUserId);
|
|
List<ImGroupModel> groupModels = classGroupDao.queryTeacherQuitGroups(levelUserId);
|
|
- if(groupModels.size() > 0){
|
|
|
|
|
|
+ /*if(groupModels.size() > 0){
|
|
|
|
+
|
|
List<Long> imGroupIdList = new ArrayList<Long>();
|
|
List<Long> imGroupIdList = new ArrayList<Long>();
|
|
for (ImGroupModel imGroupModel : groupModels) {
|
|
for (ImGroupModel imGroupModel : groupModels) {
|
|
imGroupIdList.add(Long.parseLong(imGroupModel.getId()));
|
|
imGroupIdList.add(Long.parseLong(imGroupModel.getId()));
|
|
}
|
|
}
|
|
imGroupMemberService.quit(imGroupIdList, levelUserId);
|
|
imGroupMemberService.quit(imGroupIdList, levelUserId);
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
//原有员工退预报名群
|
|
//原有员工退预报名群
|
|
- List<ImGroupModel> imGroupModels = classGroupDao.queryApplyGroups(levelUserId, levelUserId, null);
|
|
|
|
- if(imGroupModels.size() > 0){
|
|
|
|
- List<Long> imGroupIdList = new ArrayList<Long>();
|
|
|
|
- for (ImGroupModel imGroupModel : imGroupModels) {
|
|
|
|
- imGroupIdList.add(Long.parseLong(imGroupModel.getId()));
|
|
|
|
|
|
+ groupModels.addAll(classGroupDao.queryQuitApplyGroups(levelUserId));
|
|
|
|
+// groupModels.addAll(imGroupModels);
|
|
|
|
+ if(groupModels.size() > 0){
|
|
|
|
+ List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
|
+ List<GroupModel> groupModelList = new ArrayList<>();
|
|
|
|
+ for (ImGroupModel imGroupModel : groupModels) {
|
|
|
|
+ com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
|
|
|
|
+ imGroupMember.setImGroupId(Long.parseLong(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);
|
|
}
|
|
}
|
|
- imGroupMemberService.quit(imGroupIdList, levelUserId);
|
|
|
|
|
|
+ imGroupMemberService.batchDeleteByGroupIdAndUserId(imGroupMemberList);
|
|
|
|
+ imFeignService.groupBatchQuit(groupModelList);
|
|
}
|
|
}
|
|
//更换教务老师等数据
|
|
//更换教务老师等数据
|
|
employeeDao.employeeLevel(employeeLevelDtos);
|
|
employeeDao.employeeLevel(employeeLevelDtos);
|
|
@@ -391,6 +420,8 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.VIP);
|
|
imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.VIP);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //更新群成员数量
|
|
|
|
+ imGroupDao.updateMemberNum();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|