浏览代码

fix 连麦用户信息

Eric 9 月之前
父节点
当前提交
2a6f4b19db

+ 9 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImUserFriendController.java

@@ -86,6 +86,15 @@ public class ImUserFriendController extends BaseController {
     @PostMapping(value = "/getDetail/{userId}")
     public HttpResponseResult<ImUserFriendVO.ImUserFriend> getDetail(@ApiParam(value = "用户编号", required = true) @PathVariable("userId") String userId) {
 
+        // 管乐迷、酷乐秀直播播允许多端学生观看,这里增加了对用户ID的解析
+        if (userId.matches(MK.EXP_INT)) {
+            ImUserFriend userProfile = imUserFriendService.getImUserProfile(userId);
+            if (Objects.isNull(userProfile)) {
+                return failed("当前好友不存在");
+            }
+            return succeed(ImUserFriendVO.ImUserFriend.from(JSON.toJSONString(userProfile)));
+        }
+
         String ret = imGroupService.analysisImUserId(userId);
         if (!ret.matches(MK.EXP_INT)) {
             return failed("无效的用户ID");

+ 9 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImUserFriendController.java

@@ -85,6 +85,15 @@ public class ImUserFriendController extends BaseController {
     @PostMapping(value = "/getDetail/{userId}")
     public HttpResponseResult<ImUserFriendVO.ImUserFriend> getDetail(@ApiParam(value = "用户编号", required = true) @PathVariable("userId") String userId) {
 
+        // 管乐迷、酷乐秀直播播允许多端学生观看,这里增加了对用户ID的解析
+        if (userId.matches(MK.EXP_INT)) {
+            ImUserFriend userProfile = imUserFriendService.getImUserProfile(userId);
+            if (Objects.isNull(userProfile)) {
+                return failed("当前好友不存在");
+            }
+            return succeed(ImUserFriendVO.ImUserFriend.from(JSON.toJSONString(userProfile)));
+        }
+
         String ret = imGroupService.analysisImUserId(userId);
         if (!ret.matches(MK.EXP_INT)) {
             return failed("无效的用户ID");

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImUserFriendService.java

@@ -44,6 +44,13 @@ public interface ImUserFriendService extends IService<ImUserFriend> {
     ImUserFriend getDetail(String userId, ClientEnum clientType);
 
     /**
+     * 获取用户详情
+     * @param userId 用户ID
+     * @return ImUserFriend
+     */
+    ImUserFriend getImUserProfile(String userId);
+
+    /**
      * 新用户自动添加客服
      * @param userId 新用户ID
      * @param friendIds 好友ID

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

@@ -11,6 +11,7 @@ import com.microsvc.toolkit.middleware.im.impl.TencentCloudImPlugin;
 import com.microsvc.toolkit.middleware.im.message.ETencentMessage;
 import com.microsvc.toolkit.middleware.im.message.MessageWrapper;
 import com.microsvc.toolkit.middleware.im.message.TencentRequest;
+import com.microsvc.toolkit.middleware.im.message.TencentWrapper;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.config.CustomerServiceConfig;
@@ -30,9 +31,7 @@ import com.yonge.toolset.base.util.ImUtil;
 import io.rong.messages.BaseMessage;
 import io.rong.messages.ImgMessage;
 import io.rong.messages.TxtMessage;
-import io.rong.models.message.PrivateMessage;
 import io.rong.models.message.PushExt;
-import io.rong.models.response.ResponseResult;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -41,13 +40,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -70,8 +67,6 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
     private CustomerServiceConfig customerServiceConfig;
     @Autowired
     private SysUserMapper sysUserMapper;
-    @Autowired
-    private ImUserFriendService imUserFriendService;
 
     @Autowired
     private ImGroupService imGroupService;
@@ -229,6 +224,32 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
     }
 
     /**
+     * 获取用户详情
+     *
+     * @param userId 用户ID
+     * @return ImUserFriend
+     */
+    @Override
+    public ImUserFriend getImUserProfile(String userId) {
+
+        try {
+            TencentWrapper.UserProfile userProfile = imPluginContext.getPluginService().getUserProfile(userId);
+            // 返回当前登录用户信息
+            ImUserFriend imUserFriend = new ImUserFriend();
+            imUserFriend.setFriendAvatar(userProfile.getAvatar());
+            imUserFriend.setFriendNickname(userProfile.getUsername());
+            imUserFriend.setFriendId(Long.valueOf(userId));
+            imUserFriend.setFriendType(ClientEnum.STUDENT);
+            // 设置融云IM好友ID
+            imUserFriend.setImFriendId(userId);
+            return imUserFriend;
+        } catch (Exception e) {
+            log.error("getImUserProfile userId={}", userId, e);
+        }
+        return null;
+    }
+
+    /**
      * 新用户自动添加客服
      *
      * @param userId     新用户ID

+ 1 - 1
pom.xml

@@ -68,7 +68,7 @@
 			<dependency>
 				<groupId>com.microsvc.toolkit</groupId>
 				<artifactId>microsvc-dependencies-bom</artifactId>
-				<version>1.0.4</version>
+				<version>1.0.7</version>
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>