Browse Source

imUserInfo

liujc 2 years ago
parent
commit
89a92c8f67

+ 5 - 6
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java

@@ -1,11 +1,6 @@
 package com.yonge.cooleshow.api.feign;
 
-import com.yonge.cooleshow.api.feign.dto.CouponInfoApi;
-import com.yonge.cooleshow.api.feign.dto.EmployeeApi;
-import com.yonge.cooleshow.api.feign.dto.StudentApi;
-import com.yonge.cooleshow.api.feign.dto.StudentWrapper;
-import com.yonge.cooleshow.api.feign.dto.TeacherApi;
-import com.yonge.cooleshow.api.feign.dto.UserFriendInfoVO;
+import com.yonge.cooleshow.api.feign.dto.*;
 import com.yonge.cooleshow.api.feign.fallback.AdminFeignServiceFallback;
 import com.yonge.cooleshow.common.constant.AppConstant;
 import com.yonge.cooleshow.common.entity.ContractDto;
@@ -154,4 +149,8 @@ public interface AdminFeignService {
 
     @PostMapping("/open/adminClient/unionStudent")
     HttpResponseResult<StudentWrapper.UnionStudentResp> unionStudent(@RequestBody StudentWrapper.UnionStudent info);
+
+
+    @PostMapping(value = "/open/im/register")
+    ImUserInfo register(String userId, String clientType, String username, String avatar);
 }

+ 16 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/dto/ImUserInfo.java

@@ -0,0 +1,16 @@
+package com.yonge.cooleshow.api.feign.dto;
+
+import lombok.Data;
+
+@Data
+public class ImUserInfo {
+
+    private String imUserId;
+
+    private String imToken;
+
+    public ImUserInfo imUserId(String imUserId) {
+        this.imUserId = imUserId;
+        return this;
+    }
+}

+ 9 - 6
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/TokenController.java

@@ -3,6 +3,8 @@ package com.yonge.cooleshow.auth.web.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yonge.cooleshow.api.feign.AdminFeignService;
+import com.yonge.cooleshow.api.feign.dto.ImUserInfo;
 import com.yonge.cooleshow.auth.api.dto.QRLoginDto;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.vo.SysUserVo;
@@ -41,6 +43,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.RestTemplate;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.text.MessageFormat;
@@ -74,6 +77,8 @@ public class TokenController extends BaseController {
 
     @Autowired
     private RedissonClient redissonClient;
+    @Resource
+    private AdminFeignService adminFeignService;
 
     @PostMapping(value = "/smsLogin", consumes = MediaType.APPLICATION_JSON_VALUE)
     @ApiOperation(value = "短信验证码的方式登录")
@@ -109,15 +114,13 @@ public class TokenController extends BaseController {
 
         AuthUser authUser = SecurityUtils.getUser();
         if (authUser != null) {
-            SysUser sysUser = userService.queryUserInfoWithIMToken(authUser.getUserId(), EClientType.valueOf(clientType));
+            SysUser sysUser = userService.queryUserInfo(authUser.getUserId());
 
-            String imUserId = String.valueOf(sysUser.getId());
-            if (EClientType.STUDENT.match(clientType)) {
-                imUserId = MessageFormat.format("{0}:{1}",imUserId, clientType);
-            }
+            ImUserInfo register = adminFeignService.register(sysUser.getId().toString(), clientType, sysUser.getUsername(), sysUser.getAvatar());
 
+            sysUser.setImToken(register.getImToken());
             // 封装返回参数
-            return succeed(JSON.parseObject(JSON.toJSONString(sysUser), SysUserVo.class).imUserId(imUserId));
+            return succeed(JSON.parseObject(JSON.toJSONString(sysUser), SysUserVo.class).imUserId(register.getImUserId()));
         }
         return failed("获取用户信息失败");
     }

+ 22 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/ImController.java

@@ -8,17 +8,21 @@ import com.microsvc.toolkit.middleware.live.impl.TencentCloudLivePlugin;
 import com.yonge.cooleshow.admin.io.request.course.CourseRelationVo;
 import com.yonge.cooleshow.admin.io.request.im.IMNotifyMessageVO;
 import com.yonge.cooleshow.admin.io.request.im.UserFriendInfoVO;
+import com.yonge.cooleshow.api.feign.dto.ImUserInfo;
 import com.yonge.cooleshow.biz.dal.dto.TencentData;
 import com.yonge.cooleshow.biz.dal.dto.TencentImCallbackResult;
 import com.yonge.cooleshow.biz.dal.entity.ImUserStateSync;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.im.ETencentImCallbackCommand;
 import com.yonge.cooleshow.biz.dal.service.CourseRelationMusicAlbumService;
+import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 import com.yonge.cooleshow.biz.dal.service.LiveRoomService;
 import com.yonge.cooleshow.biz.dal.wrapper.im.CustomerService;
+import com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -62,6 +66,9 @@ public class ImController extends BaseController {
     @Autowired
     private LiveRoomService liveRoomService;
 
+    @Autowired
+    private ImGroupService imGroupService;
+
     @ApiOperation("新用户添加客服")
     @PostMapping(value = "/im/customerService")
     public HttpResponseResult<Boolean> customerService(@RequestBody UserFriendInfoVO info) {
@@ -241,5 +248,20 @@ public class ImController extends BaseController {
         return TencentData.StreamEventCallbackResult.builder().code(0).build();
     }
 
+    @ApiOperation("注册im用户")
+    @PostMapping(value = "/im/register")
+    public ImUserInfo register(String userId, ClientEnum clientType, String username, String avatar) {
+
+        log.info("注册im用户");
+
+        try {
+            ImGroupWrapper.ImUserInfo register = imGroupService.register(userId, clientType, username, avatar);
+            return JSON.parseObject(JSON.toJSONString(register), ImUserInfo.class);
+        } catch (Exception e) {
+            log.error("注册im用户失败", e);
+            throw new BizException(e.getMessage());
+        }
+    }
+
 }