瀏覽代碼

Merge remote-tracking branch 'origin/feature/0427-school' into feature/0427-school

zouxuan 2 年之前
父節點
當前提交
c4075dddc4

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

@@ -28,9 +28,10 @@ public interface ImGroupDao extends BaseDAO<String, ImGroup> {
      * 查询群成员列表
      *
      * @param imGroupId
+     * @param search
      * @return
      */
-    List<ImGroupMemberDto> queryMemberById(String imGroupId);
+    List<ImGroupMemberDto> queryMemberById(@Param("imGroupId") String imGroupId, @Param("search") String search);
 
     ImGroupMemberDto queryMember(@Param("imGroupId") String imGroupId, @Param("userId") Integer userId);
 

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupService.java

@@ -58,6 +58,7 @@ public interface ImGroupService extends BaseService<String, ImGroup> {
 	 * @return
 	 */
 	List<ImGroupMemberDto> queryMemberById(String imGroupId);
+	List<ImGroupMemberDto> queryMemberById(String imGroupId,String search);
 
 	/**
 	 * 查询指定用户在群众的信息

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -188,7 +188,13 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 
     @Override
     public List<ImGroupMemberDto> queryMemberById(String imGroupId) {
-        List<ImGroupMemberDto> imGroupMemberDtos = imGroupDao.queryMemberById(imGroupId);
+        return  queryMemberById(imGroupId,null);
+    }
+
+
+    @Override
+    public List<ImGroupMemberDto> queryMemberById(String imGroupId,String search) {
+        List<ImGroupMemberDto> imGroupMemberDtos = imGroupDao.queryMemberById(imGroupId,search);
 
         for (ImGroupMemberDto imGroupMemberDto : imGroupMemberDtos) {
             imGroupMemberDto.setType(EFriendRoleType.getByName(imGroupMemberDto.getRoleType()).name());

+ 66 - 31
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -195,6 +195,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             imUserFriends.addAll(saveImUserFriends(studentIds,teacherIds,groupType,musicGroupId));
         });
 
+        setSchoolStaffImFriend(musicGroupId, imUserFriends);
+
 
         if(imUserFriends.size() > 0){
             batchInsert(imUserFriends);
@@ -205,6 +207,61 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 //		executor.shutdown();
     }
 
+    private void setSchoolStaffImFriend(String musicGroupId, List<ImUserFriend> imUserFriends) {
+        // 更新
+        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+
+        if (musicGroup != null) {
+            Map<Integer,String> studentSubjectName = new HashMap<>();
+            //获取乐团关联的学员列表
+            Set<Integer> studentIds = new HashSet<>(studentRegistrationDao.queryNormalUserList(musicGroupId));
+            if(studentIds.size() > 0){
+                studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
+            }
+            Map<Integer, String> usernameMap = new HashMap<>();
+            if(studentIds.size() > 0){
+                usernameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(studentIds)));
+            }
+            Set<Integer> educationIds = new HashSet<>();
+            educationIds.add(musicGroup.getTeamTeacherId());
+
+            //学校乐团领队关联 乐团管理人员、教务、学员
+
+            Set<Integer> schoolStaffIds = new HashSet<>();
+            SchoolStaff schoolStaff = getSchoolOrchestraLeaderByMusicGroupId(musicGroupId);
+            if (schoolStaff != null) {
+                schoolStaffIds.add(schoolStaff.getUserId().intValue());
+            }
+            Map<Integer, String> schoolStaffRealNameMap = new HashMap<>();
+            if (schoolStaffIds.size() > 0) {
+                schoolStaffRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(schoolStaffIds)));
+            }
+            Map<Integer, String> educationRealNameMap;
+            educationRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(educationIds)));
+            //学校乐团领队关联教务
+            for (Integer schoolStaffId : schoolStaffIds) {
+                this.addImUserFriend(educationIds,null,educationRealNameMap,null
+                        ,schoolStaffId, imUserFriends,EFriendRoleType.ORCHESTRA_MANAGER.name());
+                //学校乐团领队关联学员
+                this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName()
+                        ,schoolStaffId, imUserFriends,EFriendRoleType.STUDENT.name());
+
+            }
+
+            //教务关联的老师、学员
+            for (Integer educationId : educationIds) {
+                //老师关联学校乐团领队
+                this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,educationId, imUserFriends);
+            }
+            //学员关联的老师、教务、维修技师
+            for (Integer studentId : studentIds) {
+                //老师关联学校乐团领队
+                this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,studentId, imUserFriends);
+            }
+
+        }
+    }
+
     private SchoolStaff getSchoolOrchestraLeaderByMusicGroupId(String musicGroupId){
 
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
@@ -245,11 +302,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
     public List<ImUserFriend> saveImUserFriends(Set<Integer> studentIds,Set<Integer> teacherIds,GroupType groupType,String musicGroupId){
         List<ImUserFriend> imUserFriends = new ArrayList<>();
         Set<Integer> educationIds = new HashSet<>();
-        Set<Integer> schoolStaffIds = new HashSet<>();
-        SchoolStaff schoolStaff = null;
         Integer repairUserId = null;
         String repairUserName = null;
-        Integer musicGroupLeader = null;
         MusicGroup musicGroup = new MusicGroup();
         //获取当前学员声部
         Map<Integer,String> studentSubjectName = new HashMap<>();
@@ -261,7 +315,6 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
         if(groupType == MUSIC){
             //学员关联乐团管理人员通讯录
             musicGroup = musicGroupDao.get(musicGroupId);
-            musicGroupLeader= musicGroup.getDirectorUserId();
             educationIds.add(musicGroup.getDirectorUserId());
             educationIds.add(musicGroup.getEducationalTeacherId());
             educationIds.add(musicGroup.getTeamTeacherId());
@@ -273,11 +326,6 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
                 studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
             }
 
-            //学校乐团领队关联 乐团管理人员、教务、学员
-            schoolStaff = getSchoolOrchestraLeaderByMusicGroupId(musicGroupId);
-            if (schoolStaff != null) {
-                schoolStaffIds.add(schoolStaff.getUserId().intValue());
-            }
         }else if(groupType == VIP){
             VipGroup vipGroup = vipGroupDao.get(Long.parseLong(musicGroupId));
             educationIds.add(vipGroup.getEducationalTeacherId());
@@ -300,6 +348,14 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
         if(educationIds.size() > 0){
             educationRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(educationIds)));
         }
+
+        //学校乐团领队关联 乐团管理人员、教务、学员
+
+        Set<Integer> schoolStaffIds = new HashSet<>();
+        SchoolStaff schoolStaff = getSchoolOrchestraLeaderByMusicGroupId(musicGroupId);
+        if (schoolStaff != null) {
+            schoolStaffIds.add(schoolStaff.getUserId().intValue());
+        }
         if (schoolStaffIds.size() > 0) {
              schoolStaffRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(schoolStaffIds)));
 
@@ -319,8 +375,6 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName(),educationId,imUserFriends);
             //教务关联老师
             this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName(),educationId,imUserFriends);
-            //老师关联学校乐团领队
-            this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,educationId,imUserFriends);
         }
         //学员关联的老师、教务、维修技师
         for (Integer studentId : studentIds) {
@@ -328,8 +382,6 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName(),studentId,imUserFriends);
             //学员关联的教务
             this.addImUserFriend(educationIds,null,educationRealNameMap,null,studentId,imUserFriends);
-            //老师关联学校乐团领队
-            this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,studentId,imUserFriends);
             //学员关联维修技师
             if(repairUserId != null){
                 if(repairUserId.equals(studentId)){
@@ -348,24 +400,7 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
         if(schoolStaff != null){
             //学校乐团领队关联乐团管理人员
             this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName()
-                    ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.ORCHESTRA_TEACHER.name());
-            //学校乐团领队关联教务
-            this.addImUserFriend(Sets.newHashSet(musicGroupLeader),null,educationRealNameMap,null
-                    ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.ORCHESTRA_MANAGER.name());
-            //学校乐团领队关联学员
-            this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName()
-                    ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.STUDENT.name());
-            //学员关联维修技师
-            if(repairUserId != null){
-                ImUserFriend imUserFriend = new ImUserFriend();
-                imUserFriend.setUserId(schoolStaff.getUserId().intValue());
-                imUserFriend.setFriendId(repairUserId);
-                imUserFriend.setFriendNickname(repairUserName);
-                imUserFriend.setMemo(musicGroup.getName());
-                imUserFriend.setTags("维修技师");
-                imUserFriend.setRoleType(EFriendRoleType.MAINTENANCE_TECHNICIAN.name());
-                imUserFriends.add(imUserFriend);
-            }
+                    ,schoolStaff.getUserId().intValue(),imUserFriends,EFriendRoleType.ORCHESTRA_TEACHER.name());
         }
         //维修技师关联学员
         if(repairUserId != null){

+ 7 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SchoolStaffServiceImpl.java

@@ -267,12 +267,12 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
         imUserFriendService.refreshSchoolStaffFriend(schoolStaff.getSchoolId().intValue());
 
         // 异步添加乐团领队到其他乐团群
-         CompletableFuture.runAsync(() -> {
+//         CompletableFuture.runAsync(() -> {
 
              if (schoolStaff.getUserType().equals(ESchoolStaffType.ORCHESTRA_LEADER)) {
                  addMusicGroup(schoolStaff, user);
              }
-         });
+//         });
 
         // 删除缓存锁
         redissonClient.getBucket(submitLockKey).delete();
@@ -318,7 +318,7 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
 
     private void addMusicGroup(SchoolStaffWrapper.SchoolStaff schoolStaff, SysUser user) {
 
-        CompletableFuture.runAsync( () -> {
+//        CompletableFuture.runAsync( () -> {
             // 乐团领队添加到所有班级群
             List<MusicGroup> musicGroups = cooperationOrganService.musicGroupPage(schoolStaff.getSchoolId().intValue());
             if (CollectionUtils.isEmpty(musicGroups)) {
@@ -346,7 +346,7 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
 
             imGroupService.addImGroup(imGroupIds, user.getId().longValue(), schoolStaff.getUserType().getDescribe());
 
-        });
+//        });
 
 
     }
@@ -488,7 +488,7 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
     public SchoolStaff queryByUserId(Long userId) {
 
         // 员工信息
-        List<SchoolStaff> staffs = lambdaQuery().eq(SchoolStaff::getUserId, userId).list();
+        List<SchoolStaff> staffs = lambdaQuery().eq(SchoolStaff::getUserId, userId).ne(SchoolStaff::getStatus,"-1").list();
         if (CollectionUtils.isEmpty(staffs)) {
             return null;
         }
@@ -736,6 +736,8 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
         if (schoolStaffUpdate.getUserType() != null && !schoolStaff.getUserType().equals(schoolStaffUpdate.getUserType())) {
 
 
+            schoolStaff.setUserType(schoolStaffUpdate.getUserType());
+            this.updateById(schoolStaff);
             if (schoolStaffUpdate.getUserType().equals(ESchoolStaffType.ORCHESTRA_LEADER)) {
                 addMusicGroup(SchoolStaffWrapper.SchoolStaff.builder()
                         .schoolId(schoolStaff.getSchoolId())
@@ -752,8 +754,6 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
                         , sysUser);
             }
 
-            schoolStaff.setUserType(schoolStaffUpdate.getUserType());
-            this.updateById(schoolStaff);
         }
 
 

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

@@ -172,6 +172,9 @@
 		LEFT JOIN student st ON st.user_id_ = u.id_
 		LEFT JOIN `subject` s ON s.id_ = st.subject_id_list_
 		WHERE igm.im_group_id_ = #{imGroupId}
+        <if test="search != null and search != ''">
+            AND (u.username_ like concat('%',#{search},'%') or u.real_name_ like concat('%',#{search},'%'))
+        </if>
 	</select>
 	
 	<select id="queryMember" resultMap="ImGroupMemberDto" parameterType="map">

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/ImGroupMemberMapper.xml

@@ -33,6 +33,7 @@
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ImGroupMember" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO im_group_member (im_group_id_,user_id_,nickname_,is_admin_,role_type_,create_time_,update_time_,tenant_id_,type_)
 		VALUES(#{imGroupId},#{userId},#{nickname},#{isAdmin},#{roleType},NOW(),NOW(),#{tenantId},#{type})
+        ON DUPLICATE KEY UPDATE nickname_ = VALUES(nickname_), is_admin_ = VALUES(is_admin_), role_type_ = VALUES(role_type_), type_ = VALUES(type_)
 	</insert>
 	
 	<insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.ImGroupMember" useGeneratedKeys="true" keyColumn="id" keyProperty="id">

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

@@ -281,7 +281,7 @@
             LEFT JOIN music_group_subject_plan mgsp on s.id_ = mgsp.subject_id_
             LEFT JOIN music_group mg on mg.id_ = mgsp.music_group_id_
         WHERE
-            s.del_flag_ = 0
+            s.del_flag_ = 0 and mg.status_ = 'PROGRESS'
             <if test="musicGroupId != null and musicGroupId != ''">
                 AND mg.id_ = #{musicGroupId}
             </if>

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ImGroupController.java

@@ -88,8 +88,8 @@ public class ImGroupController extends BaseController {
 
 	@ApiOperation("查询群成员列表")
 	@GetMapping(value = "/queryGroupMemberList")
-	public HttpResponseResult<List<ImGroupMemberDto>> queryGroupMemberList(String imGroupId) {
-		return succeed(imGroupService.queryMemberById(imGroupId));
+	public HttpResponseResult<List<ImGroupMemberDto>> queryGroupMemberList(String imGroupId,String search) {
+		return succeed(imGroupService.queryMemberById(imGroupId,search));
 	}
 
 	@ApiOperation("查询群学生列表")