Przeglądaj źródła

学校乐团领队加入班级群

liujc 2 lat temu
rodzic
commit
d8f769e9c8

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

@@ -866,4 +866,6 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     void updateTeachingPointById(@Param("param") ClassGroup classGroup);
 
     List<BaseMapDto> queryClassGroup(@Param("coopId") Integer coopId);
+
+    List<ClassGroup> getClassGroupByMusicIds(@Param("musicGroupIds") List<String> musicGroupIds);
 }

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

@@ -57,5 +57,5 @@ public interface ImGroupMemberDao extends BaseDAO<Long, ImGroupMember> {
      */
     ImGroupMember queryOneByGroupIdAndNotUser(@Param("imGroupId") String imGroupId, @Param("userId") Long userId);
 
-    List<ImGroupMember> getByGroupId(@Param("musicGroupId") String musicGroupId);
+    List<ImGroupMember> getByGroupId(@Param("musicGroupIds") List<String> musicGroupId);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -612,4 +612,11 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
     * @date 2023/5/9 14:09
     */
     List<BaseMapDto> queryClassGroup(Integer coopId);
+
+    /**
+     * 根据乐团编号查询班级信息
+     *
+     * @param musicGroupIds 乐团ID
+     */
+    List<ClassGroup> getClassGroupByMusicIds(List<String> musicGroupIds);
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -3450,6 +3450,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
+    public List<ClassGroup> getClassGroupByMusicIds(List<String> musicGroupIds) {
+        return classGroupDao.getClassGroupByMusicIds(musicGroupIds);
+
+    }
+
+    @Override
     public PageInfo<MusicGroupCourseScheduleDto> queryMusicGroupCourseScheduleDetail(queryMusicGroupCourseScheduleQueryInfo queryInfo) {
         PageInfo<MusicGroupCourseScheduleDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();

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

@@ -415,14 +415,14 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
     /**
      * 加群
      *
-     * @param musicGroupIds 群组ID
+     * @param imGroupIds 群组ID
      * @param user          用户信息
      * @param userType
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void addImGroup(List<String> musicGroupIds, SysUser user, ESchoolStaffType userType) {
-        if (CollectionUtils.isEmpty(musicGroupIds)) {
+    public void addImGroup(List<String> imGroupIds, SysUser user, ESchoolStaffType userType) {
+        if (CollectionUtils.isEmpty(imGroupIds)) {
             return;
         }
 
@@ -430,13 +430,13 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 
         ImPluginService imPluginService =imPluginContext.getPluginService(serviceProvider);
 
-        List<ImGroup> groupList = imGroupDao.getByIds(musicGroupIds);
+        List<ImGroup> groupList = imGroupDao.getByIds(imGroupIds);
 
         // id 分组
         Map<String, ImGroup> map = groupList.stream().collect(Collectors.toMap(o -> o.getId(), Function.identity()));
 
 
-        for (String musicGroupId : musicGroupIds) {
+        for (String musicGroupId : imGroupIds) {
             ImGroup imGroup = map.get(musicGroupId);
             if (imGroup == null) {
                 continue;

+ 8 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -202,12 +202,18 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 
             if (CollectionUtils.isNotEmpty(schoolStaffs)) {
                 SchoolStaff schoolStaff = schoolStaffs.get(0);
+                // 群组ID集合
+                List<String> imGroupIds = new ArrayList<>();
+                imGroupIds.add(musicGroupId);
+                if (CollectionUtils.isNotEmpty(classGroups)) {
+                    imGroupIds.addAll(classGroups.stream().map(o -> o.getId().toString()).collect(Collectors.toList()));
+                }
                 // 获取乐团群的人员列表
-                List<ImGroupMember> memberList = imGroupMemberDao.getByGroupId(musicGroupId);
+                List<ImGroupMember> memberList = imGroupMemberDao.getByGroupId(imGroupIds);
                 if (CollectionUtils.isNotEmpty(memberList)) {
                     Long staffUserId = schoolStaff.getUserId();
 
-                    Set<Integer> userIds = memberList.stream().map(o -> o.getUserId())
+                    Set<Integer> userIds = memberList.stream().map(ImGroupMember::getUserId)
                             .collect(Collectors.toSet());
                     userFriends(imUserFriends, musicGroup.getName(), staffUserId, userIds);
                 }

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

@@ -83,6 +83,9 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
     @Autowired
     private ImUserFriendService imUserFriendService;
 
+    @Autowired
+    private ClassGroupService classGroupService;
+
     /**
      * 查询详情
      * @param id 详情ID
@@ -235,7 +238,17 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
 
         // id 集合
         List<String> musicGroupIds = musicGroups.stream().map(o -> o.getId()).collect(Collectors.toList());
-        imGroupService.addImGroup(musicGroupIds,user,schoolStaff.getUserType());
+
+        // 班级群
+        List<ClassGroup> classGroups = classGroupService.getClassGroupByMusicIds(musicGroupIds);
+
+        // ID集合
+        List<String> classGroupIds = classGroups.stream().map(o -> o.getId().toString()).collect(Collectors.toList());
+        List<String> imGroupIds = new ArrayList<>();
+        imGroupIds.addAll(classGroupIds);
+        imGroupIds.addAll(musicGroupIds);
+
+        imGroupService.addImGroup(imGroupIds,user,schoolStaff.getUserType());
 
 
         // 删除缓存锁

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -1676,4 +1676,13 @@
     <update id="updateTeachingPointById">
         update class_group set teaching_point_ = #{param.teachingPoint} where id_ = #{param.id}
     </update>
+
+    <select id="getClassGroupByMusicIds" resultMap="ClassGroup">
+        SELECT cg.* FROM class_group cg
+        WHERE cg.music_group_id_ IN
+        <foreach collection="musicGroupIds" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+        AND cg.del_flag_ = 0
+    </select>
 </mapper>

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

@@ -196,6 +196,9 @@
     </select>
 
 	<select id="getByGroupId" resultMap="ImGroupMember">
-        SELECT * FROM im_group_member WHERE im_group_id_ = #{musicGroupId}
+        SELECT * FROM im_group_member WHERE im_group_id_ in
+        <foreach collection="musicGroupIds" close=")" open="(" separator="," item="item">
+            #{item}
+        </foreach>
     </select>
 </mapper>