Prechádzať zdrojové kódy

用户授权接口,增加IM用户ID

Eric 2 rokov pred
rodič
commit
9403f9dd04

+ 27 - 0
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/vo/SysUserVo.java

@@ -0,0 +1,27 @@
+package com.yonge.cooleshow.auth.api.vo;
+
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Created by Eric.Shang on 2022/10/17.
+ */
+public class SysUserVo extends SysUser {
+
+    @ApiModelProperty("IM用户ID")
+    private String imUserId;
+
+    public String getImUserId() {
+        return imUserId;
+    }
+
+    public void setImUserId(String imUserId) {
+        this.imUserId = imUserId;
+    }
+
+
+    public SysUserVo imUserId(String imUserId) {
+        this.imUserId = imUserId;
+        return this;
+    }
+}

+ 11 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/enums/EClientType.java

@@ -48,4 +48,15 @@ public enum EClientType implements BaseEnum<String, EClientType> {
 
         return true;
     }
+
+    /**
+     * 客户端类型匹配
+     * @param type 类型
+     * @return boolean
+     */
+    public boolean match(String type) {
+
+        return getCode().equals(type);
+    }
+
 }

+ 10 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/TokenController.java

@@ -1,9 +1,11 @@
 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.auth.api.dto.QRLoginDto;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.auth.api.vo.SysUserVo;
 import com.yonge.cooleshow.auth.core.service.CustomTokenServices;
 import com.yonge.cooleshow.auth.enums.EClientType;
 import com.yonge.cooleshow.auth.service.SysUserService;
@@ -41,6 +43,7 @@ import org.springframework.web.client.RestTemplate;
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
+import java.text.MessageFormat;
 import java.util.Base64;
 import java.util.Calendar;
 import java.util.Map;
@@ -108,7 +111,13 @@ public class TokenController extends BaseController {
         if (authUser != null) {
             SysUser sysUser = userService.queryUserInfoWithIMToken(authUser.getUserId(), EClientType.valueOf(clientType));
 
-            return succeed(sysUser);
+            String imUserId = String.valueOf(sysUser.getId());
+            if (EClientType.STUDENT.match(clientType)) {
+                imUserId = MessageFormat.format("{0}:{1}",imUserId, clientType);
+            }
+
+            // 封装返回参数
+            return succeed(JSON.parseObject(JSON.toJSONString(sysUser), SysUserVo.class).imUserId(imUserId));
         }
         return failed("获取用户信息失败");
     }