|
@@ -4,6 +4,7 @@ import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import com.google.common.collect.Sets;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.EFriendRoleType;
|
|
@@ -195,6 +196,17 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
});
|
|
|
|
|
|
|
|
|
+ if(imUserFriends.size() > 0){
|
|
|
+ batchInsert(imUserFriends);
|
|
|
+ }
|
|
|
+ //更新用户朋友昵称是空的历史数据(线上没有发现这种问题)
|
|
|
+ imUserFriendDao.updateNullNickName();
|
|
|
+// },executor);
|
|
|
+// executor.shutdown();
|
|
|
+ }
|
|
|
+
|
|
|
+ private SchoolStaff getSchoolOrchestraLeaderByMusicGroupId(String musicGroupId){
|
|
|
+
|
|
|
MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
// 更新学校端乐团主管的群好友列表
|
|
|
if (musicGroup != null && musicGroup.getCooperationOrganId() != null) {
|
|
@@ -202,50 +214,10 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
List<SchoolStaff> schoolStaffs = schoolStaffMapper.getByCoopIdAndType(musicGroup.getCooperationOrganId(), ESchoolStaffType.ORCHESTRA_LEADER);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(schoolStaffs)) {
|
|
|
- SchoolStaff schoolStaff = schoolStaffs.get(0);
|
|
|
- // 群组ID集合
|
|
|
- List<String> imGroupIds = new ArrayList<>();
|
|
|
-// imGroupIds.add(musicGroupId);
|
|
|
- if (CollectionUtils.isNotEmpty(classGroups)) {
|
|
|
- imGroupIds.addAll(classGroups.stream().map(o -> o.getId().toString()).collect(Collectors.toList()));
|
|
|
-
|
|
|
- // 获取乐团群的人员列表
|
|
|
- List<ImGroupMember> memberList = imGroupMemberDao.getByGroupId(imGroupIds);
|
|
|
- if (CollectionUtils.isNotEmpty(memberList)) {
|
|
|
- Long staffUserId = schoolStaff.getUserId();
|
|
|
- // 设置角色
|
|
|
- memberList = memberList.stream().map(o -> {
|
|
|
- if (StringUtils.isBlank(o.getRoleType())) {
|
|
|
- o.setRoleType(EFriendRoleType.STUDENT.name());
|
|
|
- } else {
|
|
|
- o.setRoleType(EFriendRoleType.getByName(o.getRoleType()).name());
|
|
|
- }
|
|
|
- return o;
|
|
|
- }).collect(Collectors.toList());
|
|
|
-
|
|
|
- // ID toMap roleType
|
|
|
- Map<Integer, String> roleTypeMap = memberList.stream().collect(Collectors.toMap(ImGroupMember::getUserId, ImGroupMember::getRoleType, (k1, k2) -> k2));
|
|
|
-
|
|
|
-
|
|
|
- Set<Integer> userIds = memberList.stream().map(ImGroupMember::getUserId)
|
|
|
- .collect(Collectors.toSet());
|
|
|
- userFriends(imUserFriends, musicGroup, staffUserId, userIds, roleTypeMap);
|
|
|
- }
|
|
|
- }
|
|
|
+ return schoolStaffs.get(0);
|
|
|
}
|
|
|
- // 更新学校端好友列表
|
|
|
- imUserFriends.addAll(schoolStaffFriend(musicGroup.getCooperationOrganId()));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if(imUserFriends.size() > 0){
|
|
|
- batchInsert(imUserFriends);
|
|
|
}
|
|
|
- //更新用户朋友昵称是空的历史数据(线上没有发现这种问题)
|
|
|
- imUserFriendDao.updateNullNickName();
|
|
|
-// },executor);
|
|
|
-// executor.shutdown();
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -273,18 +245,23 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
public List<ImUserFriend> saveImUserFriends(Set<Integer> studentIds,Set<Integer> teacherIds,GroupType groupType,String musicGroupId){
|
|
|
List<ImUserFriend> imUserFriends = new ArrayList<>();
|
|
|
Set<Integer> educationIds = new HashSet<>();
|
|
|
+ Set<Integer> schoolStaffIds = new HashSet<>();
|
|
|
+ SchoolStaff schoolStaff = null;
|
|
|
Integer repairUserId = null;
|
|
|
String repairUserName = null;
|
|
|
+ Integer musicGroupLeader = null;
|
|
|
MusicGroup musicGroup = new MusicGroup();
|
|
|
//获取当前学员声部
|
|
|
Map<Integer,String> studentSubjectName = new HashMap<>();
|
|
|
Map<Integer, String> teacherSubjectNameMap = new HashMap<>();
|
|
|
+ Map<Integer, String> schoolStaffRealNameMap = new HashMap<>();
|
|
|
if(teacherIds.size() > 0){
|
|
|
teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(teacherIds)));
|
|
|
}
|
|
|
if(groupType == MUSIC){
|
|
|
//学员关联乐团管理人员通讯录
|
|
|
musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
+ musicGroupLeader= musicGroup.getDirectorUserId();
|
|
|
educationIds.add(musicGroup.getDirectorUserId());
|
|
|
educationIds.add(musicGroup.getEducationalTeacherId());
|
|
|
educationIds.add(musicGroup.getTeamTeacherId());
|
|
@@ -295,6 +272,12 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
if(studentIds.size() > 0){
|
|
|
studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
|
|
|
}
|
|
|
+
|
|
|
+ //学校乐团领队关联 乐团管理人员、教务、学员
|
|
|
+ schoolStaff = getSchoolOrchestraLeaderByMusicGroupId(musicGroupId);
|
|
|
+ if (schoolStaff != null) {
|
|
|
+ schoolStaffIds.add(schoolStaff.getUserId().intValue());
|
|
|
+ }
|
|
|
}else if(groupType == VIP){
|
|
|
VipGroup vipGroup = vipGroupDao.get(Long.parseLong(musicGroupId));
|
|
|
educationIds.add(vipGroup.getEducationalTeacherId());
|
|
@@ -317,12 +300,18 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
if(educationIds.size() > 0){
|
|
|
educationRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(educationIds)));
|
|
|
}
|
|
|
+ if (schoolStaffIds.size() > 0) {
|
|
|
+ schoolStaffRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(schoolStaffIds)));
|
|
|
+
|
|
|
+ }
|
|
|
//老师关联教务、学员
|
|
|
for (Integer teacherId : teacherIds) {
|
|
|
//老师关联学员
|
|
|
this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName(),teacherId,imUserFriends);
|
|
|
//老师关联教务
|
|
|
this.addImUserFriend(educationIds,null,educationRealNameMap,null,teacherId,imUserFriends);
|
|
|
+ //老师关联学校乐团领队
|
|
|
+ this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,teacherId,imUserFriends);
|
|
|
}
|
|
|
//教务关联的老师、学员
|
|
|
for (Integer educationId : educationIds) {
|
|
@@ -330,6 +319,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName(),educationId,imUserFriends);
|
|
|
//教务关联老师
|
|
|
this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName(),educationId,imUserFriends);
|
|
|
+ //老师关联学校乐团领队
|
|
|
+ this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,educationId,imUserFriends);
|
|
|
}
|
|
|
//学员关联的老师、教务、维修技师
|
|
|
for (Integer studentId : studentIds) {
|
|
@@ -337,9 +328,11 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName(),studentId,imUserFriends);
|
|
|
//学员关联的教务
|
|
|
this.addImUserFriend(educationIds,null,educationRealNameMap,null,studentId,imUserFriends);
|
|
|
+ //老师关联学校乐团领队
|
|
|
+ this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,studentId,imUserFriends);
|
|
|
//学员关联维修技师
|
|
|
if(repairUserId != null){
|
|
|
- if(repairUserId == studentId){
|
|
|
+ if(repairUserId.equals(studentId)){
|
|
|
continue;
|
|
|
}
|
|
|
ImUserFriend imUserFriend = new ImUserFriend();
|
|
@@ -351,6 +344,29 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
imUserFriends.add(imUserFriend);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if(schoolStaff != null){
|
|
|
+ //学校乐团领队关联乐团管理人员
|
|
|
+ this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName()
|
|
|
+ ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.ORCHESTRA_TEACHER.name());
|
|
|
+ //学校乐团领队关联教务
|
|
|
+ this.addImUserFriend(Sets.newHashSet(musicGroupLeader),null,educationRealNameMap,null
|
|
|
+ ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.ORCHESTRA_MANAGER.name());
|
|
|
+ //学校乐团领队关联学员
|
|
|
+ this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName()
|
|
|
+ ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.STUDENT.name());
|
|
|
+ //学员关联维修技师
|
|
|
+ if(repairUserId != null){
|
|
|
+ ImUserFriend imUserFriend = new ImUserFriend();
|
|
|
+ imUserFriend.setUserId(schoolStaff.getUserId().intValue());
|
|
|
+ imUserFriend.setFriendId(repairUserId);
|
|
|
+ imUserFriend.setFriendNickname(repairUserName);
|
|
|
+ imUserFriend.setMemo(musicGroup.getName());
|
|
|
+ imUserFriend.setTags("维修技师");
|
|
|
+ imUserFriend.setRoleType(EFriendRoleType.MAINTENANCE_TECHNICIAN.name());
|
|
|
+ imUserFriends.add(imUserFriend);
|
|
|
+ }
|
|
|
+ }
|
|
|
//维修技师关联学员
|
|
|
if(repairUserId != null){
|
|
|
this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName(),repairUserId,imUserFriends);
|
|
@@ -446,8 +462,13 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
public void addImUserFriend(Set<Integer> friendUserIds,Map<Integer,String> tagsMap,
|
|
|
Map<Integer,String> nameMap,String memo,Integer userId,List<ImUserFriend> imUserFriends){
|
|
|
+ addImUserFriend(friendUserIds,tagsMap,nameMap,memo,userId,imUserFriends,"");
|
|
|
+ }
|
|
|
+ public void addImUserFriend(Set<Integer> friendUserIds,Map<Integer,String> tagsMap,
|
|
|
+ Map<Integer,String> nameMap,String memo,Integer userId,List<ImUserFriend> imUserFriends,String roleType){
|
|
|
if(friendUserIds != null && friendUserIds.size() > 0){
|
|
|
for (Integer friendId : friendUserIds) {
|
|
|
if(userId == friendId){
|
|
@@ -458,6 +479,7 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
imUserFriend.setFriendId(friendId);
|
|
|
imUserFriend.setFriendNickname(nameMap.get(friendId));
|
|
|
imUserFriend.setMemo(memo);
|
|
|
+ imUserFriend.setRoleType(roleType);
|
|
|
if(tagsMap != null){
|
|
|
imUserFriend.setTags(tagsMap.get(friendId));
|
|
|
}
|