Eric пре 2 година
родитељ
комит
77a9fbfd33

+ 15 - 13
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java

@@ -371,25 +371,27 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
             // 重新请求生成IM会话TOKEN
             try {
 
-                HttpResponseResult<Boolean> recv = teacherFeignService.userTeacherIdentityInfo(userId);
+                /*HttpResponseResult<Boolean> recv = teacherFeignService.userTeacherIdentityInfo(userId);
 
                 if (Objects.nonNull(recv) && recv.getData()) {
+                    // 同时一个手机号,拥手老师、学生身份时,为学生创建新的IMToken
 
-                    String name = sysUser.getRealName();
-                    if(StringUtils.isEmpty(name)){
-                        name = sysUser.getUsername();
-                    }
+                }*/
+
+                String name = sysUser.getRealName();
+                if(StringUtils.isEmpty(name)){
+                    name = sysUser.getUsername();
+                }
 
-                    // IM用户ID
-                    String imIdentity = MessageFormat.format("{0}:{1}", String.valueOf(sysUser.getId()), clientType.name());
+                // IM用户ID
+                String imIdentity = MessageFormat.format("{0}:{1}", String.valueOf(sysUser.getId()), clientType.name());
 
-                    TokenResult result = RongCloudConfig.rongCloud.user.register(new UserModel(imIdentity, name, sysUser.getAvatar()));
-                    if(result.code.equals(200)){
+                TokenResult result = RongCloudConfig.rongCloud.user.register(new UserModel(imIdentity, name, sysUser.getAvatar()));
+                if(result.code.equals(200)){
 
-                        sysUser.setImToken(result.getToken());
-                    } else {
-                        log.warn("queryUserInfoWithIMToken 获取用户token失败:{}", result.errorMessage);
-                    }
+                    sysUser.setImToken(result.getToken());
+                } else {
+                    log.warn("queryUserInfoWithIMToken 获取用户token失败:{}", result.errorMessage);
                 }
 
             } catch (Exception e) {

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

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import io.rong.models.group.GroupMember;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -79,5 +80,12 @@ public interface ImGroupMemberService extends IService<ImGroupMember> {
     * @date 2022/3/24 13:53
     */
     ImGroupMember getUserDetail(String userId, String groupId);
+
+    /**
+     * 群组成员信息
+     * @param params Map<String, Object>
+     * @return List<ImGroupMember>
+     */
+    List<ImGroupMember> findChatGroupAllMemberInfo(Map<String, Object> params);
 }
 

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

@@ -1,12 +1,16 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
 import com.yonge.cooleshow.biz.dal.config.RongCloudConfig;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberDao;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
 import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
 import com.yonge.toolset.base.exception.BizException;
@@ -20,6 +24,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.text.MessageFormat;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -139,5 +144,39 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
     public void startTransactional(Runnable runnable){
         runnable.run();
     }
+
+
+    /**
+     * 群组成员信息
+     *
+     * @param params Map<String, Object>
+     * @return List<ImGroupMember>
+     */
+    @Override
+    public List<ImGroupMember> findChatGroupAllMemberInfo(Map<String, Object> params) {
+
+        Object search = params.get("search");
+        List<ImGroupMember> members = getBaseMapper().selectList(Wrappers.<ImGroupMember>query().lambda()
+                .and(Objects.nonNull(search) && StringUtils.isNotEmpty(search.toString()),
+                        e->e.eq(ImGroupMember::getUserId, search).or()
+                                .like(ImGroupMember::getNickname, search))
+                .eq(ImGroupMember::getGroupId,params.get("groupId")).orderByDesc(ImGroupMember::getId));
+
+        if (CollectionUtils.isNotEmpty(members)) {
+
+            for (ImGroupMember item : members) {
+
+                item.setImUserId(String.valueOf(item.getUserId()));
+
+                if (ImGroupMemberRoleType.STUDENT == item.getRoleType()) {
+
+                    item.setImUserId(MessageFormat.format("{0}:{1}", String.valueOf(item.getUserId()),
+                            ClientEnum.STUDENT.getCode()));
+                }
+            }
+        }
+
+        return Optional.ofNullable(members).orElse(Lists.newArrayList());
+    }
 }
 

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

@@ -210,6 +210,10 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         }
         //修改群成员数
         baseMapper.updateMemberNum(groupId);
+
+        // 查询群成员用户身份
+        //imGroupMemberService.lambdaQuery()
+
         GroupModel groupModel = new GroupModel(groupId,0);
         GroupMember[] groupMembers = new GroupMember[]{new GroupMember(userId.toString(),groupId,null)};
         groupModel.setMembers(groupMembers);
@@ -239,14 +243,14 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
                 if (Objects.nonNull(group) && appGlobalServiceConfig.getGroupMemberJoin()) {
 
                     // 若用户群组存在,判定用户是否拥有老师身份,自动加入群组
-                    int count = teacherService.count(Wrappers.<Teacher>lambdaQuery()
-                            .eq(Teacher::getUserId, userId));
+                    //int count = teacherService.lambdaQuery().eq(Teacher::getUserId, userId).count();
 
                     // 用户是否已加入该群组
                     int groupMembers = imGroupMemberService.count(Wrappers.<ImGroupMember>lambdaQuery()
                             .eq(ImGroupMember::getGroupId, groupId).eq(ImGroupMember::getUserId, userId));
 
-                    if (count > 0 && groupMembers > 0) {
+                    // count > 0 && groupMembers > 0
+                    if (groupMembers > 0) {
 
                         String imIdentity = MessageFormat.format("{0}:{1}", String.valueOf(userId), ClientEnum.STUDENT.name());
                         // 自动加入该群组

+ 7 - 3
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupMemberController.java

@@ -80,13 +80,17 @@ public class ImGroupMemberController extends BaseController {
         if(Objects.isNull(params.get("groupId"))){
             throw new BizException("参数校验失败");
         }
-        Object search = params.get("search");
+
+        // 群组成员信息
+        List<ImGroupMember> groupMembers = imGroupMemberService.findChatGroupAllMemberInfo(params);
+
+        /*Object search = params.get("search");
         List<ImGroupMember> iPage = imGroupMemberService.getBaseMapper().selectList(Wrappers.<ImGroupMember>query().lambda()
                 .and(Objects.nonNull(search) && StringUtils.isNotEmpty(search.toString()),
                         e->e.eq(ImGroupMember::getUserId, search).or()
                         .like(ImGroupMember::getNickname, search))
-                .eq(ImGroupMember::getGroupId,params.get("groupId")).orderByDesc(ImGroupMember::getId));
-        return succeed(iPage);
+                .eq(ImGroupMember::getGroupId,params.get("groupId")).orderByDesc(ImGroupMember::getId));*/
+        return succeed(groupMembers);
     }
 }
 

+ 7 - 3
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberController.java

@@ -78,13 +78,17 @@ public class ImGroupMemberController extends BaseController {
         if(Objects.isNull(params.get("groupId"))){
             throw new BizException("参数校验失败");
         }
-        Object search = params.get("search");
+
+        // 群组成员信息
+        List<ImGroupMember> groupMembers = imGroupMemberService.findChatGroupAllMemberInfo(params);
+
+        /*Object search = params.get("search");
         List<ImGroupMember> iPage = imGroupMemberService.list(new QueryWrapper<ImGroupMember>().lambda()
                 .and(Objects.nonNull(search) && StringUtils.isNotEmpty(search.toString()),e->e.
                         eq(ImGroupMember::getUserId, search).or()
                         .like(ImGroupMember::getNickname, search))
-                .eq(ImGroupMember::getGroupId,params.get("groupId")).orderByDesc(ImGroupMember::getId));
-        return succeed(iPage);
+                .eq(ImGroupMember::getGroupId,params.get("groupId")).orderByDesc(ImGroupMember::getId));*/
+        return succeed(groupMembers);
     }
 }