|
@@ -6,6 +6,7 @@ import java.util.stream.Collectors;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
+import com.ym.mec.biz.dal.enums.EFriendRoleType;
|
|
|
import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
import com.ym.mec.biz.dal.enums.school.ESchoolStaffType;
|
|
|
import com.ym.mec.biz.dal.mapper.SchoolStaffMapper;
|
|
@@ -212,10 +213,24 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
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.getName(), staffUserId, userIds);
|
|
|
+ userFriends(imUserFriends, musicGroup, staffUserId, userIds,roleTypeMap);
|
|
|
}
|
|
|
}
|
|
|
// 更新学校端好友列表
|
|
@@ -356,10 +371,16 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
.collect(Collectors.toSet());
|
|
|
usernameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(userIds)));
|
|
|
|
|
|
+ // ID toMap userType
|
|
|
+ Map<Integer, String> roleTypeMap = schoolStaffs.stream()
|
|
|
+ .collect(Collectors.toMap(o -> o.getUserId().intValue(), o -> EFriendRoleType.getByName(o.getUserType().getCode()).name(),(k1,k2) -> k2));
|
|
|
// 设置好友关系
|
|
|
for (Integer userId : userIds) {
|
|
|
this.addImUserFriend(userIds, null, usernameMap, null, userId, imUserFriends);
|
|
|
}
|
|
|
+ for (ImUserFriend imUserFriend : imUserFriends) {
|
|
|
+ imUserFriend.setRoleType(roleTypeMap.get(imUserFriend.getFriendId()));
|
|
|
+ }
|
|
|
}
|
|
|
return imUserFriends;
|
|
|
}
|
|
@@ -380,23 +401,52 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void userFriends(List<ImUserFriend> imUserFriends, String musicGroupName, Long userId, Set<Integer> userIds) {
|
|
|
+ private void userFriends(List<ImUserFriend> imUserFriends, MusicGroup musicGroup, Long userId, Set<Integer> userIds,Map<Integer, String> roleTypeMap) {
|
|
|
Map<Integer, String> usernameMap;
|
|
|
if (CollectionUtils.isNotEmpty(userIds)) {
|
|
|
usernameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(userIds)));
|
|
|
|
|
|
+ //获取当前学员声部
|
|
|
+ Map<Integer,String> studentSubjectName = new HashMap<>();
|
|
|
+ Map<Integer, String> teacherSubjectNameMap = new HashMap<>();
|
|
|
+ List<Integer> studentIds = new ArrayList<>();
|
|
|
+ List<Integer> teacherIds = new ArrayList<>();
|
|
|
+ for (Integer id : userIds) {
|
|
|
+ if( EFriendRoleType.STUDENT.name().equals(roleTypeMap.get(id))){
|
|
|
+ studentIds.add(id);
|
|
|
+ }else if (EFriendRoleType.ORCHESTRA_TEACHER.name().equals(roleTypeMap.get(id))){
|
|
|
+ teacherIds.add(id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(studentIds.size() > 0){
|
|
|
+ studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
|
|
|
+ }
|
|
|
+
|
|
|
+ if(teacherIds.size() > 0){
|
|
|
+ teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(teacherIds)));
|
|
|
+ }
|
|
|
+ studentSubjectName.putAll(teacherSubjectNameMap);
|
|
|
// 设置好友关系
|
|
|
- this.addImUserFriend(userIds,null,usernameMap, musicGroupName, userId.intValue(), imUserFriends);
|
|
|
+ this.addImUserFriend(userIds,studentSubjectName,usernameMap, musicGroup.getName(), userId.intValue(), imUserFriends);
|
|
|
|
|
|
for (Integer user : userIds) {
|
|
|
// 设置好友关系
|
|
|
this.addImUserFriend(new HashSet<>(Lists.newArrayList(
|
|
|
- userId.intValue())),null,usernameMap, musicGroupName,user, imUserFriends);
|
|
|
+ userId.intValue())),null,usernameMap, musicGroup.getName(),user, imUserFriends,roleTypeMap);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void addImUserFriend(Set<Integer> friendUserIds,Map<Integer,String> tagsMap,
|
|
|
+ Map<Integer,String> nameMap,String memo,Integer userId,List<ImUserFriend> imUserFriends,Map<Integer,String> roleTypeMap) {
|
|
|
+ addImUserFriend(friendUserIds,tagsMap,nameMap,memo,userId,imUserFriends);
|
|
|
+ for (ImUserFriend imUserFriend : imUserFriends) {
|
|
|
+ imUserFriend.setRoleType(roleTypeMap.get(imUserFriend.getFriendId()));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void addImUserFriend(Set<Integer> friendUserIds,Map<Integer,String> tagsMap,
|
|
|
Map<Integer,String> nameMap,String memo,Integer userId,List<ImUserFriend> imUserFriends){
|
|
|
if(friendUserIds != null && friendUserIds.size() > 0){
|
|
|
for (Integer friendId : friendUserIds) {
|