소스 검색

调整群组成员添加学生时,IM注册身份标识

Eric 2 년 전
부모
커밋
f33be4214a

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

@@ -71,7 +71,13 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
         this.baseMapper.insert(imGroupMember);
         //加入融云群
         List<GroupMember> groupMemberList = new ArrayList<>();
-        groupMemberList.add(new GroupMember(userId.toString(),imGroupId,null));
+
+        String imUserId = String.valueOf(userId);
+        if (ImGroupMemberRoleType.STUDENT == roleType) {
+            imUserId = MessageFormat.format("{0}:{1}", imUserId, ClientEnum.STUDENT.name());
+        }
+
+        groupMemberList.add(new GroupMember(imUserId,imGroupId,null));
         return groupMemberList;
     }
 
@@ -82,8 +88,17 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
         List<ImGroupMember> imGroupMembers = baseMapper.initImGroupMember(imGroupId,userIds,roleType.getCode());
         if(CollectionUtils.isNotEmpty(imGroupMembers)){
             baseMapper.insertBatch(imGroupMembers);
+
             //加入融云群
-            Function<Long,GroupMember> func = (userId) -> new GroupMember(userId.toString(),imGroupId,null);
+            Function<Long,GroupMember> func = (userId) -> {
+
+                String imUserId = String.valueOf(userId);
+                if (ImGroupMemberRoleType.STUDENT == roleType) {
+                    imUserId = MessageFormat.format("{0}:{1}", imUserId, ClientEnum.STUDENT.name());
+                }
+
+                return  new GroupMember(imUserId,imGroupId,null);
+            };
             return userIds.stream().map(func).collect(Collectors.toList());
         }
         return new ArrayList<>();

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

@@ -212,10 +212,21 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         baseMapper.updateMemberNum(groupId);
 
         // 查询群成员用户身份
-        //imGroupMemberService.lambdaQuery()
+        ImGroupMember groupMember = imGroupMemberService.lambdaQuery()
+                .eq(ImGroupMember::getGroupId, groupId)
+                .eq(ImGroupMember::getUserId, userId)
+                .eq(ImGroupMember::getIsAdmin, false)
+                .one();
+
+        String imUserId = String.valueOf(userId);
+        if (Objects.nonNull(groupMember)
+                && ImGroupMemberRoleType.STUDENT == groupMember.getRoleType()) {
+
+            imUserId = MessageFormat.format("{0}:{1}", imUserId, ClientEnum.STUDENT.name());
+        }
 
         GroupModel groupModel = new GroupModel(groupId,0);
-        GroupMember[] groupMembers = new GroupMember[]{new GroupMember(userId.toString(),groupId,null)};
+        GroupMember[] groupMembers = new GroupMember[]{new GroupMember(imUserId,groupId,null)};
         groupModel.setMembers(groupMembers);
         Result result = RongCloudConfig.rongCloud.group.quit(groupModel);
         if(!result.code.equals(200)){