|  | @@ -134,320 +134,402 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | -	public void classGroupAddStudent(Integer classGroupId, List<Integer> studentIds) {
 | 
	
		
			
				|  |  | -		Set<Integer> teacherIds = new HashSet<>();
 | 
	
		
			
				|  |  | -		Set<Integer> educations = new HashSet<>();
 | 
	
		
			
				|  |  | +	public void refreshCourseImUserFriend(Long courseId) {
 | 
	
		
			
				|  |  | +		CourseSchedule courseSchedule = courseScheduleDao.get(courseId);
 | 
	
		
			
				|  |  | +		//获取班级关联的老师列表
 | 
	
		
			
				|  |  | +		Set<Integer> teacherIds = classGroupTeacherMapperDao.queryTeacherIdsByClassGroupId(courseSchedule.getClassGroupId(),null,null);
 | 
	
		
			
				|  |  | +		//获取班级关联的学员列表
 | 
	
		
			
				|  |  | +		Set<Integer> studentIds = classGroupStudentMapperDao.queryStudentIdsByClassGroupId(courseSchedule.getClassGroupId(),null,null);
 | 
	
		
			
				|  |  | +		ClassGroup classGroup = classGroupDao.get(courseSchedule.getClassGroupId());
 | 
	
		
			
				|  |  | +		GroupType groupType = classGroup.getGroupType();
 | 
	
		
			
				|  |  | +		saveImUserFriends(studentIds,teacherIds,groupType,classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +	public void refreshClassImUserFriend(Integer classGroupId) {
 | 
	
		
			
				|  |  | +		//获取班级关联的老师列表
 | 
	
		
			
				|  |  | +		Set<Integer> teacherIds = classGroupTeacherMapperDao.queryTeacherIdsByClassGroupId(classGroupId,null,null);
 | 
	
		
			
				|  |  | +		//获取班级关联的学员列表
 | 
	
		
			
				|  |  | +		Set<Integer> studentIds = classGroupStudentMapperDao.queryStudentIdsByClassGroupId(classGroupId,null,null);
 | 
	
		
			
				|  |  |  		ClassGroup classGroup = classGroupDao.get(classGroupId);
 | 
	
		
			
				|  |  | -		List<ImUserFriend> imUserFriends = new ArrayList<>();
 | 
	
		
			
				|  |  | -		//获取班级关联的老师
 | 
	
		
			
				|  |  | -		List<ClassGroupTeacherMapper> classGroupTeacherMappers = classGroupTeacherMapperDao.findByClassGroup(classGroupId);
 | 
	
		
			
				|  |  | -		teacherIds.addAll(classGroupTeacherMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | -		//学员关联的课程上的老师
 | 
	
		
			
				|  |  | -		teacherIds.addAll(courseScheduleTeacherSalaryDao.queryTeacherByTeaching(classGroupId,null));
 | 
	
		
			
				|  |  | -		teacherIds.addAll(studentIds);
 | 
	
		
			
				|  |  | +		GroupType groupType = classGroup.getGroupType();
 | 
	
		
			
				|  |  | +		saveImUserFriends(studentIds,teacherIds,groupType,classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +	public void refreshGroupImUserFriend(String musicGroupId,GroupType groupType) {
 | 
	
		
			
				|  |  | +		//获取班级关联的老师列表
 | 
	
		
			
				|  |  | +		Set<Integer> teacherIds = classGroupTeacherMapperDao.queryTeacherIdsByClassGroupId(null,musicGroupId,groupType);
 | 
	
		
			
				|  |  | +		//获取班级关联的学员列表
 | 
	
		
			
				|  |  | +		Set<Integer> studentIds = classGroupStudentMapperDao.queryStudentIdsByClassGroupId(null,musicGroupId,groupType);
 | 
	
		
			
				|  |  | +		saveImUserFriends(studentIds,teacherIds,groupType,musicGroupId);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	private void saveImUserFriends(Set<Integer> studentIds,Set<Integer> teacherIds,GroupType groupType,String musicGroupId){
 | 
	
		
			
				|  |  | +		List<ImUserFriend> imUserFriends = new ArrayList<>();
 | 
	
		
			
				|  |  | +		Set<Integer> educationIds = new HashSet<>();
 | 
	
		
			
				|  |  |  		MusicGroup musicGroup = new MusicGroup();
 | 
	
		
			
				|  |  | +		//获取当前学员声部
 | 
	
		
			
				|  |  |  		Map<Integer,String> studentSubjectName = new HashMap<>();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		GroupType groupType = classGroup.getGroupType();
 | 
	
		
			
				|  |  | +		Map<Integer, String> teacherSubjectNameMap = new HashMap<>();
 | 
	
		
			
				|  |  | +		if(teacherIds.size() > 0){
 | 
	
		
			
				|  |  | +			teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(teacherIds)));
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  		if(groupType == MUSIC){
 | 
	
		
			
				|  |  |  			//学员关联乐团管理人员通讯录
 | 
	
		
			
				|  |  | -			musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | -			teacherIds.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | -			teacherIds.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			teacherIds.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | -			educations.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | -			//获取当前学员声部
 | 
	
		
			
				|  |  | -			studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
 | 
	
		
			
				|  |  | +			musicGroup = musicGroupDao.get(musicGroupId);
 | 
	
		
			
				|  |  | +			educationIds.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | +			educationIds.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +			educationIds.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | +			if(studentIds.size() > 0){
 | 
	
		
			
				|  |  | +				studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  		}else if(groupType == VIP){
 | 
	
		
			
				|  |  | -			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 | 
	
		
			
				|  |  | -			teacherIds.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(musicGroupId));
 | 
	
		
			
				|  |  | +			educationIds.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  |  		}else if(groupType == PRACTICE){
 | 
	
		
			
				|  |  | -			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 | 
	
		
			
				|  |  | -			teacherIds.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(musicGroupId));
 | 
	
		
			
				|  |  | +			educationIds.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		educations.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | +		studentIds.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  |  		teacherIds.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | -		//获取通讯录昵称
 | 
	
		
			
				|  |  | -		Map<Integer, String> nameIdMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(teacherIds)));
 | 
	
		
			
				|  |  | -		//获取老师声部
 | 
	
		
			
				|  |  | -		Map<Integer, String> teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(teacherIds)));
 | 
	
		
			
				|  |  | +		educationIds.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | +		Map<Integer, String> usernameMap = new HashMap<>();
 | 
	
		
			
				|  |  | +		if(studentIds.size() > 0){
 | 
	
		
			
				|  |  | +			usernameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		Map<Integer, String> teacherRealNameMap = new HashMap<>();
 | 
	
		
			
				|  |  | +		if(teacherIds.size() > 0){
 | 
	
		
			
				|  |  | +			usernameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(teacherIds)));
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		Map<Integer, String> educationRealNameMap = new HashMap<>();
 | 
	
		
			
				|  |  | +		if(educationIds.size() > 0){
 | 
	
		
			
				|  |  | +			usernameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(educationIds)));
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		//老师关联教务、学员
 | 
	
		
			
				|  |  |  		for (Integer teacherId : teacherIds) {
 | 
	
		
			
				|  |  | +			//老师关联学员
 | 
	
		
			
				|  |  |  			for (Integer studentId : studentIds) {
 | 
	
		
			
				|  |  |  				if(teacherId == studentId){
 | 
	
		
			
				|  |  |  					continue;
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  				//学员、教务关联的老师
 | 
	
		
			
				|  |  |  				ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | -				imUserFriend.setUserId(studentId);
 | 
	
		
			
				|  |  | -				imUserFriend.setFriendId(teacherId);
 | 
	
		
			
				|  |  | -				imUserFriend.setFriendNickname(nameIdMap.get(teacherId));
 | 
	
		
			
				|  |  | +				imUserFriend.setUserId(teacherId);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendId(studentId);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendNickname(usernameMap.get(studentId));
 | 
	
		
			
				|  |  |  				imUserFriend.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -				imUserFriend.setTags(teacherSubjectNameMap.get(teacherId));
 | 
	
		
			
				|  |  | +				imUserFriend.setTags(studentSubjectName.get(studentId));
 | 
	
		
			
				|  |  | +				imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			//老师关联教务
 | 
	
		
			
				|  |  | +			for (Integer educationId : educationIds) {
 | 
	
		
			
				|  |  | +				if(teacherId == educationId){
 | 
	
		
			
				|  |  | +					continue;
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | +				imUserFriend.setUserId(teacherId);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendId(educationId);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendNickname(educationRealNameMap.get(educationId));
 | 
	
		
			
				|  |  |  				imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  | -				//老师关联的学生、教务
 | 
	
		
			
				|  |  | -				ImUserFriend imUserFriend1 = new ImUserFriend();
 | 
	
		
			
				|  |  | -				imUserFriend1.setUserId(teacherId);
 | 
	
		
			
				|  |  | -				imUserFriend1.setFriendId(studentId);
 | 
	
		
			
				|  |  | -				imUserFriend1.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | -				imUserFriend1.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -				imUserFriend1.setTags(studentSubjectName.get(studentId));
 | 
	
		
			
				|  |  | -				imUserFriends.add(imUserFriend1);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		for (Integer education : educations) {
 | 
	
		
			
				|  |  | +		//教务关联的老师、学员
 | 
	
		
			
				|  |  | +		for (Integer educationId : educationIds) {
 | 
	
		
			
				|  |  | +			//教务关联学员
 | 
	
		
			
				|  |  |  			for (Integer studentId : studentIds) {
 | 
	
		
			
				|  |  | -				if(education == studentId){
 | 
	
		
			
				|  |  | +				if(educationId == studentId){
 | 
	
		
			
				|  |  |  					continue;
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  | -				//学员关联教务
 | 
	
		
			
				|  |  |  				ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | -				imUserFriend.setUserId(studentId);
 | 
	
		
			
				|  |  | -				imUserFriend.setFriendId(education);
 | 
	
		
			
				|  |  | -				imUserFriend.setFriendNickname(nameIdMap.get(education));
 | 
	
		
			
				|  |  | +				imUserFriend.setUserId(educationId);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendId(studentId);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendNickname(usernameMap.get(studentId));
 | 
	
		
			
				|  |  |  				imUserFriend.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -				imUserFriend.setTags(teacherSubjectNameMap.get(education));
 | 
	
		
			
				|  |  | +				imUserFriend.setTags(studentSubjectName.get(studentId));
 | 
	
		
			
				|  |  |  				imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  | -				//教务关联学员
 | 
	
		
			
				|  |  | -				ImUserFriend imUserFriend1 = new ImUserFriend();
 | 
	
		
			
				|  |  | -				imUserFriend1.setUserId(education);
 | 
	
		
			
				|  |  | -				imUserFriend1.setFriendId(studentId);
 | 
	
		
			
				|  |  | -				imUserFriend1.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | -				imUserFriend1.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -				imUserFriend1.setTags(studentSubjectName.get(studentId));
 | 
	
		
			
				|  |  | -				imUserFriends.add(imUserFriend1);
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		if(imUserFriends.size() > 0){
 | 
	
		
			
				|  |  | -			batchInsert(imUserFriends);
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	@Override
 | 
	
		
			
				|  |  | -	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | -	public void classGroupChangeTeacher(Integer classGroupId, Integer teacherId) {
 | 
	
		
			
				|  |  | -		Set<Integer> studentIds = new HashSet<>();
 | 
	
		
			
				|  |  | -		Set<Integer> educations = new HashSet<>();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		ClassGroup classGroup = classGroupDao.get(classGroupId);
 | 
	
		
			
				|  |  | -		List<ImUserFriend> imUserFriends = new ArrayList<>();
 | 
	
		
			
				|  |  | -		//获取班级关联的学员
 | 
	
		
			
				|  |  | -		List<ClassGroupStudentMapper> studentMappers = classGroupStudentMapperDao.findAllByClassGroup(classGroupId.longValue());
 | 
	
		
			
				|  |  | -		studentIds.addAll(studentMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		MusicGroup musicGroup = new MusicGroup();
 | 
	
		
			
				|  |  | -		Map<Integer,String> studentSubjectName = new HashMap<>();
 | 
	
		
			
				|  |  | -		studentIds.add(teacherId);
 | 
	
		
			
				|  |  | -		//获取老师声部
 | 
	
		
			
				|  |  | -		Map<Integer, String> teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		GroupType groupType = classGroup.getGroupType();
 | 
	
		
			
				|  |  | -		if(groupType == MUSIC){
 | 
	
		
			
				|  |  | -			//获取当前学员声部
 | 
	
		
			
				|  |  | -			studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
 | 
	
		
			
				|  |  | -			//关联乐团管理人员通讯录
 | 
	
		
			
				|  |  | -			musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | -			studentIds.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | -			studentIds.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			studentIds.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | -			educations.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | -		}else if(groupType == VIP){
 | 
	
		
			
				|  |  | -			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 | 
	
		
			
				|  |  | -			studentIds.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -		}else if(groupType == PRACTICE){
 | 
	
		
			
				|  |  | -			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 | 
	
		
			
				|  |  | -			studentIds.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		educations.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | -		studentIds.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | -		//获取通讯录昵称
 | 
	
		
			
				|  |  | -		Map<Integer, String> nameIdMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | -		for (Integer studentId : studentIds) {
 | 
	
		
			
				|  |  | -			if(teacherId == studentId){
 | 
	
		
			
				|  |  | -				continue;
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | -			//老师关联的学员、教务
 | 
	
		
			
				|  |  | -			ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | -			imUserFriend.setUserId(teacherId);
 | 
	
		
			
				|  |  | -			imUserFriend.setFriendId(studentId);
 | 
	
		
			
				|  |  | -			imUserFriend.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | -			imUserFriend.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -			imUserFriend.setTags(teacherSubjectNameMap.get(studentId));
 | 
	
		
			
				|  |  | -			imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  | -			//学员、教务关联的老师
 | 
	
		
			
				|  |  | -			ImUserFriend imUserFriend1 = new ImUserFriend();
 | 
	
		
			
				|  |  | -			imUserFriend1.setUserId(studentId);
 | 
	
		
			
				|  |  | -			imUserFriend1.setFriendId(teacherId);
 | 
	
		
			
				|  |  | -			imUserFriend1.setFriendNickname(nameIdMap.get(teacherId));
 | 
	
		
			
				|  |  | -			imUserFriend1.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -			imUserFriend1.setTags(studentSubjectName.get(teacherId));
 | 
	
		
			
				|  |  | -			imUserFriends.add(imUserFriend1);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -			for (Integer education : educations) {
 | 
	
		
			
				|  |  | -				if(studentId == education){
 | 
	
		
			
				|  |  | +			//教务关联老师
 | 
	
		
			
				|  |  | +			for (Integer teacher : teacherIds) {
 | 
	
		
			
				|  |  | +				if(educationId == teacher){
 | 
	
		
			
				|  |  |  					continue;
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  | -				//教务关联的学员
 | 
	
		
			
				|  |  | -				ImUserFriend imUserFriend2 = new ImUserFriend();
 | 
	
		
			
				|  |  | -				imUserFriend2.setUserId(education);
 | 
	
		
			
				|  |  | -				imUserFriend2.setFriendId(studentId);
 | 
	
		
			
				|  |  | -				imUserFriend2.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | -				imUserFriend2.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -				imUserFriend2.setTags(studentSubjectName.get(studentId));
 | 
	
		
			
				|  |  | -				imUserFriends.add(imUserFriend2);
 | 
	
		
			
				|  |  | -				//学员关联的教务
 | 
	
		
			
				|  |  | -				ImUserFriend imUserFriend3 = new ImUserFriend();
 | 
	
		
			
				|  |  | -				imUserFriend3.setUserId(studentId);
 | 
	
		
			
				|  |  | -				imUserFriend3.setFriendId(education);
 | 
	
		
			
				|  |  | -				imUserFriend3.setFriendNickname(nameIdMap.get(education));
 | 
	
		
			
				|  |  | -				imUserFriend3.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -				imUserFriend3.setTags(teacherSubjectNameMap.get(education));
 | 
	
		
			
				|  |  | -				imUserFriends.add(imUserFriend3);
 | 
	
		
			
				|  |  | +				ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | +				imUserFriend.setUserId(educationId);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendId(teacher);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendNickname(teacherRealNameMap.get(teacher));
 | 
	
		
			
				|  |  | +				imUserFriend.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | +				imUserFriend.setTags(teacherSubjectNameMap.get(teacher));
 | 
	
		
			
				|  |  | +				imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		if(imUserFriends.size() > 0){
 | 
	
		
			
				|  |  | -			batchInsert(imUserFriends);
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	@Override
 | 
	
		
			
				|  |  | -	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | -	public void groupChangeEducation(String groupId, Integer educationId, GroupType groupType) {
 | 
	
		
			
				|  |  | -		Set<Integer> studentIds = new HashSet<>();
 | 
	
		
			
				|  |  | -		List<ImUserFriend> imUserFriends = new ArrayList<>();
 | 
	
		
			
				|  |  | -		//获取班级关联的学员
 | 
	
		
			
				|  |  | -		List<ClassGroupStudentInfoDto> studentMappers = classGroupStudentMapperDao.findByGroupOrClassGroup(groupId, groupType, null);
 | 
	
		
			
				|  |  | -		studentIds.addAll(studentMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | -		//获取班级关联的老师
 | 
	
		
			
				|  |  | -		List<ClassGroupTeacherMapper> classGroupTeacherMappers = classGroupTeacherMapperDao.findAllByMusicGroup(groupId,groupType,null);
 | 
	
		
			
				|  |  | -		studentIds.addAll(classGroupTeacherMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | -		//获取课程关联的老师
 | 
	
		
			
				|  |  | -		List<CourseScheduleTeacherSalary> teacherSalaries = courseScheduleTeacherSalaryDao.findByGroup(groupId, groupType.getCode());
 | 
	
		
			
				|  |  | -		studentIds.addAll(teacherSalaries.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | -		studentIds.add(educationId);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		//获取通讯录昵称
 | 
	
		
			
				|  |  | -		Map<Integer, String> nameIdMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | -		//获取老师声部
 | 
	
		
			
				|  |  | -		Map<Integer, String> teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | +		//学员关联的老师、教务
 | 
	
		
			
				|  |  |  		for (Integer studentId : studentIds) {
 | 
	
		
			
				|  |  | -			if(educationId == studentId){
 | 
	
		
			
				|  |  | -				continue;
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -			//教务关联的老师、学员
 | 
	
		
			
				|  |  | -			ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | -			imUserFriend.setUserId(educationId);
 | 
	
		
			
				|  |  | -			imUserFriend.setFriendId(studentId);
 | 
	
		
			
				|  |  | -			imUserFriend.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | -			imUserFriend.setTags(teacherSubjectNameMap.get(studentId));
 | 
	
		
			
				|  |  | -			imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  | -			//学员老师关联教务
 | 
	
		
			
				|  |  | -			ImUserFriend imUserFriend1 = new ImUserFriend();
 | 
	
		
			
				|  |  | -			imUserFriend1.setUserId(studentId);
 | 
	
		
			
				|  |  | -			imUserFriend1.setFriendId(educationId);
 | 
	
		
			
				|  |  | -			imUserFriend1.setFriendNickname(nameIdMap.get(educationId));
 | 
	
		
			
				|  |  | -			imUserFriends.add(imUserFriend1);
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		if(imUserFriends.size() > 0){
 | 
	
		
			
				|  |  | -			batchInsert(imUserFriends);
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	@Override
 | 
	
		
			
				|  |  | -	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | -	public void courseScheduleChangeTeacher(Long courseScheduleId, Integer teacherId) {
 | 
	
		
			
				|  |  | -		Set<Integer> studentIds = new HashSet<>();
 | 
	
		
			
				|  |  | -		Set<Integer> educations = new HashSet<>();
 | 
	
		
			
				|  |  | -		List<ImUserFriend> imUserFriends = new ArrayList<>();
 | 
	
		
			
				|  |  | -		CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId);
 | 
	
		
			
				|  |  | -		//获取课程上关联的学员
 | 
	
		
			
				|  |  | -		List<CourseScheduleStudentPayment> studentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseScheduleId);
 | 
	
		
			
				|  |  | -		studentIds.addAll(studentPayments.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | -		studentIds.add(teacherId);
 | 
	
		
			
				|  |  | -		//学员声部列表
 | 
	
		
			
				|  |  | -		Map<Integer,String> studentSubjectName = new HashMap<>();
 | 
	
		
			
				|  |  | -		MusicGroup musicGroup = new MusicGroup();
 | 
	
		
			
				|  |  | -		GroupType groupType = courseSchedule.getGroupType();
 | 
	
		
			
				|  |  | -		if(groupType == MUSIC){
 | 
	
		
			
				|  |  | -			musicGroupDao.get(courseSchedule.getMusicGroupId());
 | 
	
		
			
				|  |  | -			//获取学员声部列表
 | 
	
		
			
				|  |  | -			studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
 | 
	
		
			
				|  |  | -			//关联乐团管理人员通讯录
 | 
	
		
			
				|  |  | -			musicGroup = musicGroupDao.get(courseSchedule.getMusicGroupId());
 | 
	
		
			
				|  |  | -			studentIds.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | -			studentIds.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			studentIds.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | -			educations.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | -		}else if(groupType == VIP){
 | 
	
		
			
				|  |  | -			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
 | 
	
		
			
				|  |  | -			educations.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			studentIds.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -		}else if(groupType == PRACTICE){
 | 
	
		
			
				|  |  | -			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
 | 
	
		
			
				|  |  | -			studentIds.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -			educations.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		educations.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | -		studentIds.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | -		//获取通讯录昵称
 | 
	
		
			
				|  |  | -		Map<Integer, String> nameIdMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | -		//获取老师声部
 | 
	
		
			
				|  |  | -		Map<Integer, String> teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | -		for (Integer studentId : studentIds) {
 | 
	
		
			
				|  |  | -			if(teacherId == studentId){
 | 
	
		
			
				|  |  | -				continue;
 | 
	
		
			
				|  |  | +			//学员关联的老师
 | 
	
		
			
				|  |  | +			for (Integer teacher : teacherIds) {
 | 
	
		
			
				|  |  | +				if(teacher == studentId){
 | 
	
		
			
				|  |  | +					continue;
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | +				imUserFriend.setUserId(studentId);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendId(teacher);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendNickname(teacherRealNameMap.get(teacher));
 | 
	
		
			
				|  |  | +				imUserFriend.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | +				imUserFriend.setTags(teacherSubjectNameMap.get(teacher));
 | 
	
		
			
				|  |  | +				imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | -			//老师关联的学员和教务
 | 
	
		
			
				|  |  | -			ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | -			imUserFriend.setUserId(teacherId);
 | 
	
		
			
				|  |  | -			imUserFriend.setFriendId(studentId);
 | 
	
		
			
				|  |  | -			imUserFriend.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | -			imUserFriend.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -			imUserFriend.setTags(studentSubjectName.get(studentId));
 | 
	
		
			
				|  |  | -			imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  | -			//学员关联的老师、教务关联老师
 | 
	
		
			
				|  |  | -			ImUserFriend imUserFriend1 = new ImUserFriend();
 | 
	
		
			
				|  |  | -			imUserFriend1.setUserId(studentId);
 | 
	
		
			
				|  |  | -			imUserFriend1.setFriendId(teacherId);
 | 
	
		
			
				|  |  | -			imUserFriend1.setFriendNickname(nameIdMap.get(teacherId));
 | 
	
		
			
				|  |  | -			imUserFriend1.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -			imUserFriend1.setTags(teacherSubjectNameMap.get(teacherId));
 | 
	
		
			
				|  |  | -			imUserFriends.add(imUserFriend1);
 | 
	
		
			
				|  |  | -			for (Integer education : educations) {
 | 
	
		
			
				|  |  | -				if(studentId == education){
 | 
	
		
			
				|  |  | +			//学员关联的教务
 | 
	
		
			
				|  |  | +			for (Integer education : educationIds) {
 | 
	
		
			
				|  |  | +				if(education == studentId){
 | 
	
		
			
				|  |  |  					continue;
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  | -				//学员关联教务
 | 
	
		
			
				|  |  | -				ImUserFriend imUserFriend2 = new ImUserFriend();
 | 
	
		
			
				|  |  | -				imUserFriend2.setUserId(studentId);
 | 
	
		
			
				|  |  | -				imUserFriend2.setFriendId(education);
 | 
	
		
			
				|  |  | -				imUserFriend2.setFriendNickname(nameIdMap.get(education));
 | 
	
		
			
				|  |  | -				imUserFriend2.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -				imUserFriend2.setTags(teacherSubjectNameMap.get(education));
 | 
	
		
			
				|  |  | -				imUserFriends.add(imUserFriend2);
 | 
	
		
			
				|  |  | -				//教务关联学员
 | 
	
		
			
				|  |  | -				ImUserFriend imUserFriend3 = new ImUserFriend();
 | 
	
		
			
				|  |  | -				imUserFriend3.setUserId(education);
 | 
	
		
			
				|  |  | -				imUserFriend3.setFriendId(studentId);
 | 
	
		
			
				|  |  | -				imUserFriend3.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | -				imUserFriend3.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | -				imUserFriend3.setTags(studentSubjectName.get(studentId));
 | 
	
		
			
				|  |  | -				imUserFriends.add(imUserFriend3);
 | 
	
		
			
				|  |  | +				ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | +				imUserFriend.setUserId(studentId);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendId(education);
 | 
	
		
			
				|  |  | +				imUserFriend.setFriendNickname(educationRealNameMap.get(education));
 | 
	
		
			
				|  |  | +				imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		if(imUserFriends.size() > 0){
 | 
	
		
			
				|  |  |  			batchInsert(imUserFriends);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//	@Override
 | 
	
		
			
				|  |  | +//	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +//	public void classGroupAddStudent(Integer classGroupId, Set<Integer> studentIds) {
 | 
	
		
			
				|  |  | +//		ClassGroup classGroup = classGroupDao.get(classGroupId);
 | 
	
		
			
				|  |  | +//		//获取关联的老师
 | 
	
		
			
				|  |  | +//		Set<Integer> teacherIds = classGroupTeacherMapperDao.queryTeacherIdsByClassGroupId(classGroupId);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//		GroupType groupType = classGroup.getGroupType();
 | 
	
		
			
				|  |  | +//		saveImUserFriends(studentIds,teacherIds,groupType,classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//	}
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//	@Override
 | 
	
		
			
				|  |  | +//	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +//	public void classGroupChangeTeacher(Integer classGroupId, Integer teacherId) {
 | 
	
		
			
				|  |  | +//		Set<Integer> studentIds = new HashSet<>();
 | 
	
		
			
				|  |  | +//		Set<Integer> educations = new HashSet<>();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//		ClassGroup classGroup = classGroupDao.get(classGroupId);
 | 
	
		
			
				|  |  | +//		List<ImUserFriend> imUserFriends = new ArrayList<>();
 | 
	
		
			
				|  |  | +//		//获取班级关联的学员
 | 
	
		
			
				|  |  | +//		List<ClassGroupStudentMapper> studentMappers = classGroupStudentMapperDao.findAllByClassGroup(classGroupId.longValue());
 | 
	
		
			
				|  |  | +//		studentIds.addAll(studentMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//		MusicGroup musicGroup = new MusicGroup();
 | 
	
		
			
				|  |  | +//		Map<Integer,String> studentSubjectName = new HashMap<>();
 | 
	
		
			
				|  |  | +//		studentIds.add(teacherId);
 | 
	
		
			
				|  |  | +//		//获取老师声部
 | 
	
		
			
				|  |  | +//		Map<Integer, String> teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//		GroupType groupType = classGroup.getGroupType();
 | 
	
		
			
				|  |  | +//		if(groupType == MUSIC){
 | 
	
		
			
				|  |  | +//			//获取当前学员声部
 | 
	
		
			
				|  |  | +//			studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
 | 
	
		
			
				|  |  | +//			//关联乐团管理人员通讯录
 | 
	
		
			
				|  |  | +//			musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | +//			studentIds.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | +//			studentIds.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//			studentIds.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | +//			educations.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | +//			educations.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//			educations.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | +//		}else if(groupType == VIP){
 | 
	
		
			
				|  |  | +//			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 | 
	
		
			
				|  |  | +//			studentIds.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//			educations.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//		}else if(groupType == PRACTICE){
 | 
	
		
			
				|  |  | +//			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 | 
	
		
			
				|  |  | +//			studentIds.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//			educations.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		educations.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | +//		studentIds.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | +//		//获取通讯录昵称
 | 
	
		
			
				|  |  | +//		Map<Integer, String> nameIdMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | +//		for (Integer studentId : studentIds) {
 | 
	
		
			
				|  |  | +//			if(teacherId == studentId){
 | 
	
		
			
				|  |  | +//				continue;
 | 
	
		
			
				|  |  | +//			}
 | 
	
		
			
				|  |  | +//			//老师关联的学员、教务
 | 
	
		
			
				|  |  | +//			ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | +//			imUserFriend.setUserId(teacherId);
 | 
	
		
			
				|  |  | +//			imUserFriend.setFriendId(studentId);
 | 
	
		
			
				|  |  | +//			imUserFriend.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | +//			imUserFriend.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | +//			imUserFriend.setTags(teacherSubjectNameMap.get(studentId));
 | 
	
		
			
				|  |  | +//			imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  | +//			//学员、教务关联的老师
 | 
	
		
			
				|  |  | +//			ImUserFriend imUserFriend1 = new ImUserFriend();
 | 
	
		
			
				|  |  | +//			imUserFriend1.setUserId(studentId);
 | 
	
		
			
				|  |  | +//			imUserFriend1.setFriendId(teacherId);
 | 
	
		
			
				|  |  | +//			imUserFriend1.setFriendNickname(nameIdMap.get(teacherId));
 | 
	
		
			
				|  |  | +//			imUserFriend1.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | +//			imUserFriend1.setTags(studentSubjectName.get(teacherId));
 | 
	
		
			
				|  |  | +//			imUserFriends.add(imUserFriend1);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//			for (Integer education : educations) {
 | 
	
		
			
				|  |  | +//				if(studentId == education){
 | 
	
		
			
				|  |  | +//					continue;
 | 
	
		
			
				|  |  | +//				}
 | 
	
		
			
				|  |  | +//				//教务关联的学员
 | 
	
		
			
				|  |  | +//				ImUserFriend imUserFriend2 = new ImUserFriend();
 | 
	
		
			
				|  |  | +//				imUserFriend2.setUserId(education);
 | 
	
		
			
				|  |  | +//				imUserFriend2.setFriendId(studentId);
 | 
	
		
			
				|  |  | +//				imUserFriend2.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | +//				imUserFriend2.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | +//				imUserFriend2.setTags(studentSubjectName.get(studentId));
 | 
	
		
			
				|  |  | +//				imUserFriends.add(imUserFriend2);
 | 
	
		
			
				|  |  | +//				//学员关联的教务
 | 
	
		
			
				|  |  | +//				ImUserFriend imUserFriend3 = new ImUserFriend();
 | 
	
		
			
				|  |  | +//				imUserFriend3.setUserId(studentId);
 | 
	
		
			
				|  |  | +//				imUserFriend3.setFriendId(education);
 | 
	
		
			
				|  |  | +//				imUserFriend3.setFriendNickname(nameIdMap.get(education));
 | 
	
		
			
				|  |  | +//				imUserFriend3.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | +//				imUserFriend3.setTags(teacherSubjectNameMap.get(education));
 | 
	
		
			
				|  |  | +//				imUserFriends.add(imUserFriend3);
 | 
	
		
			
				|  |  | +//			}
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		if(imUserFriends.size() > 0){
 | 
	
		
			
				|  |  | +//			batchInsert(imUserFriends);
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//	}
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//	@Override
 | 
	
		
			
				|  |  | +//	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +//	public void groupChangeEducation(String groupId, Integer educationId, GroupType groupType) {
 | 
	
		
			
				|  |  | +//		Set<Integer> studentIds = new HashSet<>();
 | 
	
		
			
				|  |  | +//		List<ImUserFriend> imUserFriends = new ArrayList<>();
 | 
	
		
			
				|  |  | +//		//获取班级关联的学员
 | 
	
		
			
				|  |  | +//		List<ClassGroupStudentInfoDto> studentMappers = classGroupStudentMapperDao.findByGroupOrClassGroup(groupId, groupType, null);
 | 
	
		
			
				|  |  | +//		studentIds.addAll(studentMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | +//		//获取班级关联的老师
 | 
	
		
			
				|  |  | +//		List<ClassGroupTeacherMapper> classGroupTeacherMappers = classGroupTeacherMapperDao.findAllByMusicGroup(groupId,groupType,null);
 | 
	
		
			
				|  |  | +//		studentIds.addAll(classGroupTeacherMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | +//		//获取课程关联的老师
 | 
	
		
			
				|  |  | +//		List<CourseScheduleTeacherSalary> teacherSalaries = courseScheduleTeacherSalaryDao.findByGroup(groupId, groupType.getCode());
 | 
	
		
			
				|  |  | +//		studentIds.addAll(teacherSalaries.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | +//		studentIds.add(educationId);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//		//获取通讯录昵称
 | 
	
		
			
				|  |  | +//		Map<Integer, String> nameIdMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | +//		//获取老师声部
 | 
	
		
			
				|  |  | +//		Map<Integer, String> teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | +//		for (Integer studentId : studentIds) {
 | 
	
		
			
				|  |  | +//			if(educationId == studentId){
 | 
	
		
			
				|  |  | +//				continue;
 | 
	
		
			
				|  |  | +//			}
 | 
	
		
			
				|  |  | +//			//教务关联的老师、学员
 | 
	
		
			
				|  |  | +//			ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | +//			imUserFriend.setUserId(educationId);
 | 
	
		
			
				|  |  | +//			imUserFriend.setFriendId(studentId);
 | 
	
		
			
				|  |  | +//			imUserFriend.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | +//			imUserFriend.setTags(teacherSubjectNameMap.get(studentId));
 | 
	
		
			
				|  |  | +//			imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  | +//			//学员老师关联教务
 | 
	
		
			
				|  |  | +//			ImUserFriend imUserFriend1 = new ImUserFriend();
 | 
	
		
			
				|  |  | +//			imUserFriend1.setUserId(studentId);
 | 
	
		
			
				|  |  | +//			imUserFriend1.setFriendId(educationId);
 | 
	
		
			
				|  |  | +//			imUserFriend1.setFriendNickname(nameIdMap.get(educationId));
 | 
	
		
			
				|  |  | +//			imUserFriends.add(imUserFriend1);
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		if(imUserFriends.size() > 0){
 | 
	
		
			
				|  |  | +//			batchInsert(imUserFriends);
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//	}
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//	@Override
 | 
	
		
			
				|  |  | +//	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +//	public void courseScheduleChangeTeacher(Long courseScheduleId, Integer teacherId) {
 | 
	
		
			
				|  |  | +//		Set<Integer> studentIds = new HashSet<>();
 | 
	
		
			
				|  |  | +//		Set<Integer> educations = new HashSet<>();
 | 
	
		
			
				|  |  | +//		List<ImUserFriend> imUserFriends = new ArrayList<>();
 | 
	
		
			
				|  |  | +//		CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId);
 | 
	
		
			
				|  |  | +//		//获取课程上关联的学员
 | 
	
		
			
				|  |  | +//		List<CourseScheduleStudentPayment> studentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseScheduleId);
 | 
	
		
			
				|  |  | +//		studentIds.addAll(studentPayments.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 | 
	
		
			
				|  |  | +//		studentIds.add(teacherId);
 | 
	
		
			
				|  |  | +//		//学员声部列表
 | 
	
		
			
				|  |  | +//		Map<Integer,String> studentSubjectName = new HashMap<>();
 | 
	
		
			
				|  |  | +//		MusicGroup musicGroup = new MusicGroup();
 | 
	
		
			
				|  |  | +//		GroupType groupType = courseSchedule.getGroupType();
 | 
	
		
			
				|  |  | +//		if(groupType == MUSIC){
 | 
	
		
			
				|  |  | +//			musicGroupDao.get(courseSchedule.getMusicGroupId());
 | 
	
		
			
				|  |  | +//			//获取学员声部列表
 | 
	
		
			
				|  |  | +//			studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
 | 
	
		
			
				|  |  | +//			//关联乐团管理人员通讯录
 | 
	
		
			
				|  |  | +//			musicGroup = musicGroupDao.get(courseSchedule.getMusicGroupId());
 | 
	
		
			
				|  |  | +//			studentIds.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | +//			studentIds.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//			studentIds.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | +//			educations.add(musicGroup.getDirectorUserId());
 | 
	
		
			
				|  |  | +//			educations.add(musicGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//			educations.add(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  | +//		}else if(groupType == VIP){
 | 
	
		
			
				|  |  | +//			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
 | 
	
		
			
				|  |  | +//			educations.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//			studentIds.add(vipGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//		}else if(groupType == PRACTICE){
 | 
	
		
			
				|  |  | +//			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
 | 
	
		
			
				|  |  | +//			studentIds.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//			educations.add(practiceGroup.getEducationalTeacherId());
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		educations.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | +//		studentIds.removeAll(Collections.singleton(null));
 | 
	
		
			
				|  |  | +//		//获取通讯录昵称
 | 
	
		
			
				|  |  | +//		Map<Integer, String> nameIdMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | +//		//获取老师声部
 | 
	
		
			
				|  |  | +//		Map<Integer, String> teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(studentIds)));
 | 
	
		
			
				|  |  | +//		for (Integer studentId : studentIds) {
 | 
	
		
			
				|  |  | +//			if(teacherId == studentId){
 | 
	
		
			
				|  |  | +//				continue;
 | 
	
		
			
				|  |  | +//			}
 | 
	
		
			
				|  |  | +//			//老师关联的学员和教务
 | 
	
		
			
				|  |  | +//			ImUserFriend imUserFriend = new ImUserFriend();
 | 
	
		
			
				|  |  | +//			imUserFriend.setUserId(teacherId);
 | 
	
		
			
				|  |  | +//			imUserFriend.setFriendId(studentId);
 | 
	
		
			
				|  |  | +//			imUserFriend.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | +//			imUserFriend.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | +//			imUserFriend.setTags(studentSubjectName.get(studentId));
 | 
	
		
			
				|  |  | +//			imUserFriends.add(imUserFriend);
 | 
	
		
			
				|  |  | +//			//学员关联的老师、教务关联老师
 | 
	
		
			
				|  |  | +//			ImUserFriend imUserFriend1 = new ImUserFriend();
 | 
	
		
			
				|  |  | +//			imUserFriend1.setUserId(studentId);
 | 
	
		
			
				|  |  | +//			imUserFriend1.setFriendId(teacherId);
 | 
	
		
			
				|  |  | +//			imUserFriend1.setFriendNickname(nameIdMap.get(teacherId));
 | 
	
		
			
				|  |  | +//			imUserFriend1.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | +//			imUserFriend1.setTags(teacherSubjectNameMap.get(teacherId));
 | 
	
		
			
				|  |  | +//			imUserFriends.add(imUserFriend1);
 | 
	
		
			
				|  |  | +//			for (Integer education : educations) {
 | 
	
		
			
				|  |  | +//				if(studentId == education){
 | 
	
		
			
				|  |  | +//					continue;
 | 
	
		
			
				|  |  | +//				}
 | 
	
		
			
				|  |  | +//				//学员关联教务
 | 
	
		
			
				|  |  | +//				ImUserFriend imUserFriend2 = new ImUserFriend();
 | 
	
		
			
				|  |  | +//				imUserFriend2.setUserId(studentId);
 | 
	
		
			
				|  |  | +//				imUserFriend2.setFriendId(education);
 | 
	
		
			
				|  |  | +//				imUserFriend2.setFriendNickname(nameIdMap.get(education));
 | 
	
		
			
				|  |  | +//				imUserFriend2.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | +//				imUserFriend2.setTags(teacherSubjectNameMap.get(education));
 | 
	
		
			
				|  |  | +//				imUserFriends.add(imUserFriend2);
 | 
	
		
			
				|  |  | +//				//教务关联学员
 | 
	
		
			
				|  |  | +//				ImUserFriend imUserFriend3 = new ImUserFriend();
 | 
	
		
			
				|  |  | +//				imUserFriend3.setUserId(education);
 | 
	
		
			
				|  |  | +//				imUserFriend3.setFriendId(studentId);
 | 
	
		
			
				|  |  | +//				imUserFriend3.setFriendNickname(nameIdMap.get(studentId));
 | 
	
		
			
				|  |  | +//				imUserFriend3.setMemo(musicGroup.getName());
 | 
	
		
			
				|  |  | +//				imUserFriend3.setTags(studentSubjectName.get(studentId));
 | 
	
		
			
				|  |  | +//				imUserFriends.add(imUserFriend3);
 | 
	
		
			
				|  |  | +//			}
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		if(imUserFriends.size() > 0){
 | 
	
		
			
				|  |  | +//			batchInsert(imUserFriends);
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }
 |