| 
					
				 | 
			
			
				@@ -708,181 +708,6 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .set(Student::getCustomerId, null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 客服好友移交给其他客服 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private List<TeacherWrapper.CustomerServiceSendMsg2User> transferFriend(Long userId, boolean saveGroupFriend) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<TeacherWrapper.CustomerServiceSendMsg2User> result = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 所有的好友 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<ImUserFriend> userFriendList = imUserFriendService.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(ImUserFriend::getUserId, userId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(ImUserFriend::getClientType, ClientEnum.TEACHER) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 其他客服 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<TeacherWrapper.TeacherFriend> customerServiceFriendNums = this.getBaseMapper().getCustomerServiceFriendNums(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        customerServiceFriendNums.removeIf(n -> n.getTeacherId().equals(userId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Long> customerIds = customerServiceFriendNums.stream().map(TeacherWrapper.TeacherFriend::getTeacherId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        userFriendList.removeIf(n -> customerIds.contains(n.getFriendId()) && ClientEnum.TEACHER.equals(n.getFriendType())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (userFriendList.isEmpty()) { // 没有好友 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<ImUserFriend> removeFriendList = userFriendList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (saveGroupFriend) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 群里的好友保留 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<String> groupIdList = imGroupMemberService.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(ImGroupMember::getUserId, userId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(ImGroupMember::getIsAdmin, true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(ImGroupMember::getGroupRoleType, EImGroupMemberRoleType.Owner) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .list() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .map(ImGroupMember::getGroupId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> savedTeacherIdList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> savedStudentIdList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (!groupIdList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                List<ImGroupMember> savedMemberList = imGroupMemberService.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .in(ImGroupMember::getGroupId, groupIdList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .eq(ImGroupMember::getIsAdmin, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .ne(ImGroupMember::getGroupRoleType, EImGroupMemberRoleType.Owner) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                savedTeacherIdList.addAll(savedMemberList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .filter(n -> ImGroupMemberRoleType.TEACHER.equals(n.getRoleType())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .map(ImGroupMember::getUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .collect(Collectors.toList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                savedStudentIdList.addAll(savedMemberList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .filter(n -> ImGroupMemberRoleType.STUDENT.equals(n.getRoleType())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .map(ImGroupMember::getUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .collect(Collectors.toList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 机构好友保留 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Teacher teacher = this.getById(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> tenantTeacherIds = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> tenantStudentIds = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (teacher.getTenantId() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                List<Long> teacherIdList = userFriendList.stream().filter(n -> ClientEnum.TEACHER.equals(n.getFriendType())).map(ImUserFriend::getFriendId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                List<Long> studentIdList = userFriendList.stream().filter(n -> ClientEnum.STUDENT.equals(n.getFriendType())).map(ImUserFriend::getFriendId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!teacherIdList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    List<Long> tenantTeacherIdsTemp = this.lambdaQuery().in(Teacher::getUserId, teacherIdList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .eq(Teacher::getTenantId, teacher.getTenantId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .list() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .stream().filter(n -> n.getTenantId() > 0).map(Teacher::getUserId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    tenantTeacherIds.addAll(tenantTeacherIdsTemp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!studentIdList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    List<Long> tenantStudentIdsTemp = studentService.lambdaQuery().in(Student::getUserId, studentIdList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .eq(Student::getTenantId, teacher.getTenantId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .list() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .stream().filter(n -> n.getTenantId() > 0).map(Student::getUserId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    tenantStudentIds.addAll(tenantStudentIdsTemp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 删除的好友 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            removeFriendList = userFriendList.stream().filter(n -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (ClientEnum.STUDENT.equals(n.getFriendType())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (tenantStudentIds.contains(n.getFriendId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return !savedStudentIdList.contains(n.getFriendId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (ClientEnum.TEACHER.equals(n.getFriendType())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (tenantTeacherIds.contains(n.getFriendId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return !savedTeacherIdList.contains(n.getFriendId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 删除好友 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        removeFriendList.stream().collect(Collectors.groupingBy(ImUserFriend::getFriendType)).forEach((client, friends) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> friendIds = friends.stream().map(ImUserFriend::getFriendId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imUserFriendService.lambdaUpdate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(ImUserFriend::getUserId, userId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(ImUserFriend::getClientType, ClientEnum.TEACHER) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .in(ImUserFriend::getFriendId, friendIds) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(ImUserFriend::getFriendType, client) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imUserFriendService.lambdaUpdate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(ImUserFriend::getFriendId, userId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(ImUserFriend::getFriendType, ClientEnum.TEACHER) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .in(ImUserFriend::getUserId, friendIds) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(ImUserFriend::getClientType, client) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (customerIds.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 去除好友里面存在其他客服关系的好友,只有没有客服好友的好友,才需要与客服建立好友关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<ImUserFriend> teacherFriends = userFriendList.stream().filter(n -> ClientEnum.TEACHER.equals(n.getFriendType())).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!teacherFriends.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String teacherFriendIds = teacherFriends.stream().map(n -> n.getFriendId().toString()).distinct().collect(Collectors.joining(",")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> existFriendIds = imUserFriendService.getDao().queryExistCustomerServiceFriend(teacherFriendIds, ClientEnum.TEACHER.getCode()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .map(ImUserFriend::getUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            userFriendList.removeIf(n -> ClientEnum.TEACHER.equals(n.getFriendType()) && existFriendIds.contains(n.getFriendId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<ImUserFriend> studentFriends = userFriendList.stream().filter(n -> ClientEnum.STUDENT.equals(n.getFriendType())).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!studentFriends.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String studentFriendIds = studentFriends.stream().map(n -> n.getFriendId().toString()).distinct().collect(Collectors.joining(",")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> existFriendIds = imUserFriendService.getDao().queryExistCustomerServiceFriend(studentFriendIds, ClientEnum.STUDENT.getCode()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .map(ImUserFriend::getUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            userFriendList.removeIf(n -> ClientEnum.STUDENT.equals(n.getFriendType()) && existFriendIds.contains(n.getFriendId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (userFriendList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 好友交接 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<Long, Set<Long>> teacherFriendMap = new LinkedHashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<Long, Set<Long>> studentFriendMap = new LinkedHashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (ImUserFriend imUserFriend : userFriendList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TeacherWrapper.TeacherFriend teacherFriend = customerServiceFriendNums.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (ClientEnum.TEACHER.equals(imUserFriend.getFriendType())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Set<Long> set = teacherFriendMap.getOrDefault(teacherFriend.getTeacherId(), new HashSet<>()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                set.add(imUserFriend.getFriendId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                teacherFriendMap.put(teacherFriend.getTeacherId(), set); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (ClientEnum.STUDENT.equals(imUserFriend.getFriendType())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Set<Long> set = studentFriendMap.getOrDefault(teacherFriend.getTeacherId(), new HashSet<>()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                set.add(imUserFriend.getFriendId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                studentFriendMap.put(teacherFriend.getTeacherId(), set); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            teacherFriend.setFriendNums(teacherFriend.getFriendNums() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Collections.sort(customerServiceFriendNums); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        teacherFriendMap.forEach((teacherId, teacherIds) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imUserFriendService.saveUserTeacherFriend(teacherId, teacherIds,EImUserFriendSourceForm.CUSTOMER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 发送消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TeacherWrapper.CustomerServiceSendMsg2User customerServiceSendMsg2User = new TeacherWrapper.CustomerServiceSendMsg2User(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            customerServiceSendMsg2User.setCustomerId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            customerServiceSendMsg2User.getTeacherIds().addAll(teacherIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result.add(customerServiceSendMsg2User); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            imUserFriendService.sendCustomerServiceAddFriendMessage(teacherId, customerTitle, customerMessage, new ArrayList<>(teacherIds), ClientEnum.TEACHER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        studentFriendMap.forEach((teacherId, studentIds) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imUserFriendService.saveUserFriend(teacherId, studentIds,EImUserFriendSourceForm.CUSTOMER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TeacherWrapper.CustomerServiceSendMsg2User customerServiceSendMsg2User = new TeacherWrapper.CustomerServiceSendMsg2User(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            customerServiceSendMsg2User.setCustomerId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            customerServiceSendMsg2User.getTeacherIds().addAll(studentIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result.add(customerServiceSendMsg2User); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            imUserFriendService.sendCustomerServiceAddFriendMessage(teacherId, customerTitle, customerMessage, new ArrayList<>(studentIds), ClientEnum.STUDENT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private List<TeacherWrapper.CustomerServiceSendMsg2User> transferFriendV2(Long userId, boolean saveGroupFriend){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<TeacherWrapper.CustomerServiceSendMsg2User> result = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 所有的好友 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -891,15 +716,6 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(ImUserFriend::getClientType, ClientEnum.TEACHER) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 其他客服 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<TeacherWrapper.TeacherFriend> customerServiceFriendNums = this.getBaseMapper().getCustomerServiceFriendNums(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        customerServiceFriendNums.removeIf(n -> n.getTeacherId().equals(userId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Long> customerIds = customerServiceFriendNums.stream().map(TeacherWrapper.TeacherFriend::getTeacherId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        userFriendList.removeIf(n -> customerIds.contains(n.getFriendId()) && ClientEnum.TEACHER.equals(n.getFriendType())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (userFriendList.isEmpty()) { // 没有好友 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 好友保留 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         userFriendList.stream().filter(n -> Boolean.FALSE.equals(saveGroupFriend) || EImUserFriendSourceForm.CUSTOMER.equals(n.getSourceForm())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .collect(Collectors.groupingBy(ImUserFriend::getFriendType)).forEach((client, friends) -> { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -919,6 +735,15 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             .remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 其他客服 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<TeacherWrapper.TeacherFriend> customerServiceFriendNums = this.getBaseMapper().getCustomerServiceFriendNums(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        customerServiceFriendNums.removeIf(n -> n.getTeacherId().equals(userId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> customerIds = customerServiceFriendNums.stream().map(TeacherWrapper.TeacherFriend::getTeacherId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userFriendList.removeIf(n -> customerIds.contains(n.getFriendId()) && ClientEnum.TEACHER.equals(n.getFriendType())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (userFriendList.isEmpty()) { // 没有好友 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (customerIds.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -927,7 +752,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 存在专属客服的好友不需要分配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<ImUserFriend> teacherFriends = userFriendList.stream().filter(n -> ClientEnum.TEACHER.equals(n.getFriendType())).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!teacherFriends.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String teacherFriendIds = teacherFriends.stream().map(n -> n.getFriendId().toString()).distinct().collect(Collectors.joining(",")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<Long> teacherFriendIds = teacherFriends.stream().map(ImUserFriend::getFriendId).distinct().collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<Long> existFriendIds = this.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .in(Teacher::getUserId, teacherFriendIds) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .list() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -940,7 +765,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<ImUserFriend> studentFriends = userFriendList.stream().filter(n -> ClientEnum.STUDENT.equals(n.getFriendType())).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!studentFriends.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String studentFriendIds = studentFriends.stream().map(n -> n.getFriendId().toString()).distinct().collect(Collectors.joining(",")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<Long> studentFriendIds = studentFriends.stream().map(ImUserFriend::getFriendId).distinct().collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<Long> existFriendIds = studentService.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .in(Student::getUserId, studentFriendIds) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .list() 
			 |