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