zouxuan 4 years ago
parent
commit
3e91a37ab6

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImUserFriendDao.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 import java.util.List;
 
+import com.ym.mec.biz.dal.dto.BasicUserDto;
 import org.apache.ibatis.annotations.Param;
 
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
@@ -21,4 +22,17 @@ public interface ImUserFriendDao extends BaseDAO<Long, ImUserFriend> {
 	List<ImUserFriendDto> queryFriendListByUserId(@Param("userId") Integer userId, @Param("search") String search);
 
 	ImUserFriendDto queryFriendDetail(@Param("userId") Integer userId, @Param("friendUserId") Integer friendUserId);
+
+	/**
+	 * 清除通讯录
+	 * @param teacherId
+	 */
+    void deleteByUserId(Integer teacherId);
+
+	/**
+	 * 批量新增
+	 * @param teachers
+	 * @param teacherId
+	 */
+	void batchInsert(@Param("teachers") List<BasicUserDto> teachers, @Param("teacherId") Integer teacherId);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -490,4 +490,6 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return
      */
     String queryTeacherNameByTeacherIds(@Param("teachingTeacherIds") String teachingTeacherIds);
+
+    List<Integer> queryAllIds();
 }

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java

@@ -73,6 +73,14 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
     List<BasicUserDto> queryGroupStudents(Integer id, String search);
 
     /**
+     * 获取教师通讯录
+     * @param id
+     * @param search
+     * @return
+     */
+    List<BasicUserDto> queryGroupStudents1(Integer id, String search);
+
+    /**
      * 获取教师通讯录学员列表
      * @param id
      * @param search
@@ -194,4 +202,10 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @return
      */
     List<TeacherDefaultSalaryDto> queryTeacherDefaultSalary(String organIdList);
+
+    /**
+     * 获取所有教师编号列表
+     * @return
+     */
+    List<Integer> queryAllIds();
 }

+ 72 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -69,6 +69,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
 	@Autowired
 	private StudentDao studentDao;
+	@Autowired
+	private ImUserFriendDao imUserFriendDao;
 
 
 	@Override
@@ -234,6 +236,71 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		return teachers.stream().distinct().collect(Collectors.toList());
 	}
 
+	public void queryGroupStudents1(Integer teacherId, String search) {
+		//获取关联的学员列表
+		Set<Integer> studentIds = teacherDao.queryCourseClassStudentIds(teacherId);
+		//获取关联的老师列表
+		studentIds.addAll(teacherDao.queryCourseClassTeacherIds(teacherId));
+		//获取关联的乐团的管理老师
+		List<String> musicLeaderIds = teacherDao.queryMusicLeaderIds(teacherId);
+		musicLeaderIds.removeAll(Collections.singleton(null));
+		if(musicLeaderIds.size() > 0){
+			Set<String> leaderIds = new HashSet<>();
+			musicLeaderIds.forEach(e->{
+				leaderIds.addAll(Arrays.asList(e.split(",")));
+			});
+			leaderIds.forEach(e->{
+				studentIds.add(Integer.valueOf(e));
+			});
+		}
+		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, ","));
+			Set<Integer> teacherIdSet = new HashSet<>();
+			if(musicGroupList != null && musicGroupList.size() > 0){
+				musicGroupList.forEach(e->{
+					teacherIdSet.add(e.getTeamTeacherId());
+					teacherIdSet.add(e.getEducationalTeacherId());
+					teacherIdSet.add(e.getDirectorUserId());
+				});
+			}
+			teacherIdSet.remove(teacherId);
+			teacherIdSet.removeAll(Collections.singleton(null));
+			if(teacherIdSet.size() > 0){
+				teachers = 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));
+				userDtos.forEach(e->{
+					e.setMusicGroupName(musicGroupNameMap.get(e.getMusicGroupId()));
+				});
+			}
+		}
+		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));
+		}
+		//删除现有的用户通讯录
+		imUserFriendDao.deleteByUserId(teacherId);
+		//批量新增
+		imUserFriendDao.batchInsert(teachers,teacherId);
+	}
+
     @Override
     public List<TeacherBasicDto> findTeachers(String organId) {
 		return teacherDao.findByFlowOrganRangeTeachers(organId);
@@ -562,4 +629,9 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		return teacherDao.queryTeacherDefaultSalary(organIdList);
 	}
 
+	@Override
+	public List<Integer> queryAllIds() {
+		return teacherDao.queryAllIds();
+	}
+
 }

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -53,7 +53,8 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO im_group (id_,name_,introduce_,member_num_,memo_,tags_,img_,type_create_time_,update_time_) VALUES(#{id},#{name},#{introduce},#{memberNum},#{memo},#{tags},#{img},#{type},#{createTime},#{updateTime})
+		INSERT INTO im_group (id_,name_,introduce_,member_num_,memo_,tags_,img_,type_,create_time_,update_time_)
+		VALUES(#{id},#{name},#{introduce},#{memberNum},#{memo},#{tags},#{img},#{type},#{createTime},#{updateTime})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->

+ 15 - 9
mec-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml

@@ -36,14 +36,17 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ImUserFriend" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO im_user_friend (id_,user_id_,friend_id_,friend_nickname_,memo_,tags_,create_time_,update_time_) VALUES(#{id},#{userId},#{friendId},#{friendNickname},#{memo},#{tags},#{createTime},#{updateTime})
+		INSERT INTO im_user_friend (id_,user_id_,friend_id_,friend_nickname_,memo_,tags_,create_time_,update_time_)
+		VALUES(#{id},#{userId},#{friendId},#{friendNickname},#{memo},#{tags},#{createTime},#{updateTime})
 	</insert>
-	
+	<insert id="batchInsert">
+		INSERT INTO im_user_friend (user_id_,friend_id_,friend_nickname_,create_time_,update_time_)
+		VALUES
+		<foreach collection="teachers" item="item" separator=",">
+			(#{teacherId},#{item.userId},#{item.name},NOW(),NOW())
+		</foreach>
+	</insert>
+
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.ImUserFriend">
 		UPDATE im_user_friend <set>
@@ -78,8 +81,11 @@
 	<delete id="delete" >
 		DELETE FROM im_user_friend WHERE id_ = #{id} 
 	</delete>
-	
-	<!-- 分页查询 -->
+    <delete id="deleteByUserId">
+		DELETE FROM im_user_friend WHERE user_id_ = #{teacherId}
+	</delete>
+
+    <!-- 分页查询 -->
 	<select id="queryPage" resultMap="ImUserFriend" parameterType="map">
 		SELECT * FROM im_user_friend ORDER BY id_ <include refid="global.limit"/>
 	</select>

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -1244,4 +1244,7 @@
         SELECT GROUP_CONCAT(real_name_) FROM sys_user su
         WHERE FIND_IN_SET(su.id_,#{teachingTeacherIds})
     </select>
+    <select id="queryAllIds" resultType="java.lang.Integer">
+        SELECT id_ FROM sys_user
+    </select>
 </mapper>

+ 12 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java

@@ -12,7 +12,9 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 
 import java.util.Date;
+import java.util.List;
 
+import jdk.internal.dynalink.linker.LinkerServices;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -127,6 +129,16 @@ public class TeacherController extends BaseController {
         return succeed(teacherService.queryGroupStudents(sysUser.getId(),search));
     }
 
+    @ApiOperation(value = "同步教师通讯录")
+    @GetMapping("/syncTeacherImFriend")
+    public Object syncTeacherImFriend(){
+        List<Integer> teacherIds = teacherService.queryAllIds();
+        for (Integer teacherId : teacherIds) {
+            teacherService.queryGroupStudents1(teacherId,null);
+        }
+        return succeed();
+    }
+
     @ApiOperation(value = "获取当前教师通讯录学员列表")
     @GetMapping("/queryGroupStudentList")
     public Object queryGroupStudentList(String search){