浏览代码

Merge branch 'master' of http://git.dayaedu.com/yonge/mec into origin_master

zouxuan 4 年之前
父节点
当前提交
82b680a24c

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImUserFriendDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import java.util.List;
+import java.util.Set;
 
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import org.apache.ibatis.annotations.Param;
@@ -34,5 +35,5 @@ public interface ImUserFriendDao extends BaseDAO<Long, ImUserFriend> {
 	 * @param teachers
 	 * @param teacherId
 	 */
-	void batchInsert(@Param("teachers") List<BasicUserDto> teachers, @Param("teacherId") Integer teacherId);
+	void batchInsert(@Param("teachers") Set<BasicUserDto> teachers, @Param("teacherId") Integer teacherId);
 }

+ 51 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -52,6 +52,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	@Autowired
 	private MusicGroupDao musicGroupDao;
 	@Autowired
+	private StudentRegistrationDao studentRegistrationDao;
+	@Autowired
 	private DemoGroupDao demoGroupDao;
 	@Autowired
 	private OrganizationDao organizationDao;
@@ -238,6 +240,45 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 
 	@Transactional(rollbackFor = Exception.class)
 	public void queryGroupStudents1(Integer teacherId, String search) {
+		List<ImUserFriendDto> imUserFriendDtos = imUserFriendDao.queryFriendListByUserId(teacherId, search);
+		if(imUserFriendDtos.size() > 0){
+			return;
+		}
+		Set<BasicUserDto> basicUserDtos = new HashSet<>();
+		//学员关联的通讯录
+		//获取相关课程,班级老师列表
+		Set<Integer> teacherIds = teacherDao.findMusicTeacherIds(teacherId);
+		//获取学员所在乐团列表
+		List<String> musicGroupIds = studentRegistrationDao.queryStudentMusicGroup(teacherId);
+		if (musicGroupIds != null && musicGroupIds.size() > 0) {
+			List<MusicGroup> musicGroups = musicGroupDao.queryListByIds(StringUtils.join(musicGroupIds, ","));
+			musicGroups.forEach(e -> {
+				teacherIds.add(e.getDirectorUserId());
+				teacherIds.add(e.getEducationalTeacherId());
+				teacherIds.add(e.getTeamTeacherId());
+			});
+		}
+		//获取相关vip课老师列表
+		teacherIds.addAll(teacherDao.findVipTeacherIds(teacherId));
+		//获取陪练课老师列表
+		teacherIds.addAll(teacherDao.findPracticeTeacherIds(teacherId));
+		//获取对外课程老师列表
+		teacherIds.addAll(teacherDao.findCloseCourseTeacherIds(teacherId));
+		//获取陪练课课程教务老师
+		teacherIds.addAll(teacherDao.findPracticeEducationalTeacherId(teacherId));
+		//获取VIP课程教务老师
+		teacherIds.addAll(teacherDao.findVipEducationalTeacherId(teacherId));
+		//获取对外课程务老师
+		teacherIds.addAll(teacherDao.findCommEducationalTeacherId(teacherId));
+		//获取关联的指导老师
+		Student student = studentDao.get(teacherId);
+		if (student != null && student.getTeacherId() != null) {
+			teacherIds.add(student.getTeacherId());
+		}
+		if (teacherIds.size() > 0) {
+			basicUserDtos.addAll(teacherDao.queryTeacherBaseInfo(teacherIds, search));
+		}
+
 		//获取关联的学员列表
 		Set<Integer> studentIds = teacherDao.queryCourseClassStudentIds(teacherId);
 		//获取关联的老师列表
@@ -256,7 +297,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		}
 		studentIds.removeAll(Collections.singleton(null));
 		List<ImGroupModel> musicGroups =  musicGroupDao.queryTeacherGroups(teacherId,search);
-		List<BasicUserDto> teachers = new ArrayList<>();
+
 		if(musicGroups != null && musicGroups.size() > 0){
 			Set<String> musicGroupId = musicGroups.stream().map(ImGroupModel::getId).collect(Collectors.toSet());
 			List<MusicGroup> musicGroupList = musicGroupDao.queryListByIds(StringUtils.join(musicGroupId, ","));
@@ -271,15 +312,16 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 			teacherIdSet.remove(teacherId);
 			teacherIdSet.removeAll(Collections.singleton(null));
 			if(teacherIdSet.size() > 0){
-				teachers = teacherDao.queryMusicGroupStudents(StringUtils.join(teacherIdSet,","), search);
+				basicUserDtos.addAll(teacherDao.queryMusicGroupStudents(StringUtils.join(teacherIdSet,","), search));
 			}
 		}
+
 		List<BasicUserDto> userDtos = teacherDao.queryGroupStudents(teacherId, search);
 		if(userDtos != null && userDtos.size() > 0){
-			teachers.addAll(userDtos);
-			Set<String> musicGroupIds = userDtos.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
-			if(musicGroupIds != null && musicGroupIds.size() > 0){
-				Map<String, String> musicGroupNameMap = MapUtil.convertIntegerMap(musicGroupDao.queryMusicGroupNameMap(musicGroupIds));
+			basicUserDtos.addAll(userDtos);
+			Set<String> musicGroupIds1 = userDtos.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
+			if(musicGroupIds1 != null && musicGroupIds1.size() > 0){
+				Map<String, String> musicGroupNameMap = MapUtil.convertIntegerMap(musicGroupDao.queryMusicGroupNameMap(musicGroupIds1));
 				userDtos.forEach(e->{
 					e.setMusicGroupName(musicGroupNameMap.get(e.getMusicGroupId()));
 				});
@@ -287,20 +329,12 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		}
 		studentIds.removeAll(userDtos.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 		studentIds.remove(teacherId);
-		//获取课程关联的学生列表
-//		teachers.addAll(teacherDao.findCloseCourseStudentIds(teacherId, search));
-		//获取相关vip陪练教务的学员编号
-//		teachers.addAll(teacherDao.findVipEducationalStudentId(teacherId,search));
-//		teachers.addAll(teacherDao.findCommEducationalStudentId(teacherId,search));
-//		teachers.addAll(teacherDao.findPracticeEducationalStudentId(teacherId,search));
 		if(studentIds.size() > 0){
-			teachers.addAll(teacherDao.queryTeacherBaseInfo(studentIds,search));
+			basicUserDtos.addAll(teacherDao.queryTeacherBaseInfo(studentIds,search));
 		}
-		if(teachers.size() > 0){
-			//删除现有的用户通讯录
-			imUserFriendDao.deleteByUserId(teacherId);
+		if(basicUserDtos.size() > 0){
 			//批量新增
-			imUserFriendDao.batchInsert(teachers,teacherId);
+			imUserFriendDao.batchInsert(basicUserDtos,teacherId);
 		}
 	}