浏览代码

修复琴房课,成员信息

Eric 2 年之前
父节点
当前提交
067b93ba81

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupMemberServiceImpl.java

@@ -87,6 +87,14 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
         //记录群成员
         List<ImGroupMember> imGroupMembers = baseMapper.initImGroupMember(imGroupId,userIds,roleType.getCode());
         if(CollectionUtils.isNotEmpty(imGroupMembers)){
+
+            for (ImGroupMember item : imGroupMembers) {
+
+                // 用户身份
+                item.setRoleType(roleType);
+                // 管理员村识
+                item.setIsAdmin(ImGroupMemberRoleType.TEACHER == roleType);
+            }
             baseMapper.insertBatch(imGroupMembers);
 
             //加入融云群

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java

@@ -136,7 +136,9 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         //保存老师学员关联的通讯录
         imUserFriendService.saveUserFriend(teacherId, studentIds);
         //处理本地群成员列表
+        // 添加老师
         List<GroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroupId, imGroup.getCreateBy(), true, ImGroupMemberRoleType.TEACHER);
+        // 添加学生
         groupMembers.addAll(imGroupMemberService.initGroupMembers(imGroupId, studentIds, ImGroupMemberRoleType.STUDENT));
         //创建融云群
         this.rtcCreate(courseGroup.getTeacherId(), imGroupId, imGroup.getName());

+ 7 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImUserFriendServiceImpl.java

@@ -84,10 +84,10 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
         Date now = new Date();
         //老师添加学员联系人
         List<ImUserFriend> imUserFriends = new ArrayList<>();
-        BasicUserInfo basicUserInfo = teacherDao.getBasicUserInfo(teacherId);
-        List<BasicUserInfo> basicUserInfoList = teacherDao.findBasicUserInfo(studentIds);
-        basicUserInfoList.add(basicUserInfo);
-        Map<Long, List<BasicUserInfo>> basicUserInfoMap = basicUserInfoList.stream().collect(Collectors.groupingBy(BasicUserInfo::getUserId));
+        BasicUserInfo teacherInfo = teacherDao.getBasicUserInfo(teacherId);
+        List<BasicUserInfo> studentInfos = teacherDao.findBasicUserInfo(studentIds);
+        studentInfos.add(teacherInfo);
+        Map<Long, List<BasicUserInfo>> basicUserInfoMap = studentInfos.stream().collect(Collectors.groupingBy(BasicUserInfo::getUserId));
         for(Long studentId : studentIds){
             //老师关联学员
             ImUserFriend teacherFriend = new ImUserFriend();
@@ -98,8 +98,9 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
                 BasicUserInfo info = basicUserInfos.get(0);
                 teacherFriend.setFriendAvatar(info.getAvatar());
                 teacherFriend.setFriendNickname(info.getUsername());
-                studentFriend.setFriendAvatar(basicUserInfo.getAvatar());
-                studentFriend.setFriendNickname(basicUserInfo.getUsername());
+
+                studentFriend.setFriendAvatar(teacherInfo.getAvatar());
+                studentFriend.setFriendNickname(teacherInfo.getUsername());
             }
             teacherFriend.setClientType(ClientEnum.TEACHER);
             teacherFriend.setFriendId(studentId);

+ 4 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -80,12 +80,15 @@
                CASE WHEN igm.id_ IS NULL THEN 0 ELSE 1 END existFlag,
                CASE WHEN igma.id_ IS NULL THEN 0 ELSE 1 END hasWaitAuditFlag
         FROM im_group ig
-                 LEFT JOIN im_group_member igm ON ig.id_ = igm.group_id_ AND igm.user_id_ = #{imGroupDto.userId}
+                 LEFT JOIN im_group_member igm ON (ig.id_ = igm.group_id_ AND igm.user_id_ = #{imGroupDto.userId})
                  LEFT JOIN im_group_member_audit igma ON igma.group_id_ = ig.id_ AND igma.audit_status_ = 'AUDITING' AND igma.user_id_ = igm.user_id_
         WHERE ig.create_by_ = #{imGroupDto.createUserId}
         <if test="imGroupDto.type != null and imGroupDto.type != ''">
             AND ig.type_ = #{imGroupDto.type}
         </if>
+        <if test="imGroupDto.roleType != null">
+            AND igm.role_type_ = #{imGroupDto.roleType}
+        </if>
         <if test="imGroupDto.search != null and imGroupDto.search != ''">
             AND (ig.id_ = #{imGroupDto.search} OR
             ig.name_ LIKE CONCAT('%',#{imGroupDto.search},'%') OR ig.introduce_ LIKE CONCAT('%',#{imGroupDto.search},'%'))

+ 5 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupController.java

@@ -81,9 +81,14 @@ public class ImGroupController extends BaseController {
     @ApiOperation("获取指定用户的群列表")
     @PostMapping(value = "/queryTeacherGroup")
     public HttpResponseResult<List<ImGroupResultDto>> queryTeacherGroup(@RequestBody ImGroupSearchDto imGroupSearchDto) throws Exception {
+
+        // 群类型
         if (StringUtils.isEmpty(imGroupSearchDto.getType())) {
             imGroupSearchDto.setType("FAN");
         }
+        // 用户群身份
+        imGroupSearchDto.setRoleType(ImGroupMemberRoleType.STUDENT);
+
         return succeed(imGroupService.queryTeacherFun(imGroupSearchDto));
     }