Jelajahi Sumber

新增根据token获取登录信息

czh 2 tahun lalu
induk
melakukan
8ec073baf1

+ 11 - 0
sckw-auth/src/main/java/com/sckw/auth/controller/AuthController.java

@@ -118,6 +118,17 @@ public class AuthController {
     }
 
 
+    /**
+     * @return HttpResult
+     * @desc: 根据token获取登录信息
+     * @author: czh
+     * @date: 2023/9/27
+     */
+    @PostMapping("getLoginResByToken")
+    public HttpResult getLoginResByToken(@RequestHeader(name = "Client-Type", required = true) String clientType,
+                                         @RequestHeader(name = "Access-Token", required = true) String token) {
+        return HttpResult.ok(authService.getLoginResByToken(clientType, token));
+    }
 
 
     /**

+ 9 - 0
sckw-auth/src/main/java/com/sckw/auth/service/IAuthService.java

@@ -2,6 +2,7 @@ package com.sckw.auth.service;
 
 import com.sckw.auth.model.vo.req.*;
 import com.sckw.auth.model.vo.res.LoginResVo;
+import com.sckw.auth.model.vo.res.LoginResVo1;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.web.response.HttpResult;
 
@@ -56,4 +57,12 @@ public interface IAuthService {
      **/
     HttpResult commonAuth(LoginBase loginBase);
 
+
+    /**
+     * @return LoginResVo1
+     * @desc: 根据token获取登录信息
+     * @author: czh
+     * @date: 2023/9/27
+     */
+    LoginResVo1 getLoginResByToken(String clientType, String token);
 }

+ 46 - 2
sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java

@@ -13,6 +13,7 @@ import com.sckw.core.model.enums.ClientTypeEnum;
 import com.sckw.core.model.enums.LoginMethodEnum;
 import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.utils.*;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.model.EntCertificateInfo;
 import com.sckw.core.web.model.LoginEntInfo;
 import com.sckw.core.web.model.LoginUserInfo;
@@ -430,7 +431,7 @@ public class AuthServiceImpl implements IAuthService {
         LoginResVo1 loginRes = new LoginResVo1();
         loginRes.setId(user.getId());
         loginRes.setName(user.getName());
-        loginRes.setAccount(loginBase.getAccount());
+        loginRes.setAccount(user.getAccount());
         loginRes.setPhone(user.getPhone());
         loginRes.setPhoto(user.getPhoto());
         loginRes.setIsMain(user.getIsMain());
@@ -444,7 +445,7 @@ public class AuthServiceImpl implements IAuthService {
         loginRes.setEntTypes(enterprise != null ? enterprise.getEntTypes() : null);
         loginRes.setEntTypeNames(enterprise != null ? enterprise.getEntTypeNames() : null);
         loginRes.setClientType(loginBase.getClientType());
-        loginRes.setSystemType(loginBase.getSystemType());
+        loginRes.setSystemType(user.getSystemType());
         loginRes.setToken(token);
         loginRes.setDeptId(user.getDeptId());
         loginRes.setRoleId(user.getRoleId());
@@ -457,6 +458,49 @@ public class AuthServiceImpl implements IAuthService {
         return HttpResult.ok(loginRes);
     }
 
+
+    /**
+     * @return LoginResVo1
+     * @desc: 根据token获取登录信息
+     * @author: czh
+     * @date: 2023/9/27
+     */
+    @Override
+    public LoginResVo1 getLoginResByToken(String clientType, String token) {
+        KwsUserResDto user = systemService.queryUserDetails(LoginUserHolder.getAccount(), LoginUserHolder.getSystemType());
+        if (Objects.isNull(user)) {
+            return null;
+        }
+        EntCacheResDto enterprise = systemService.queryEntDetails(user.getEntId());
+        LoginResVo1 loginRes = new LoginResVo1();
+        loginRes.setId(user.getId());
+        loginRes.setName(user.getName());
+        loginRes.setAccount(user.getAccount());
+        loginRes.setPhone(user.getPhone());
+        loginRes.setPhoto(user.getPhoto());
+        loginRes.setIsMain(user.getIsMain());
+        loginRes.setStatus(user.getStatus());
+        loginRes.setRoleName(user.getRoleName());
+        loginRes.setDeptName(user.getDeptName());
+        loginRes.setClientId(user.getClientId());
+        loginRes.setEntId(user.getEntId());
+        loginRes.setFirmName(enterprise != null ? enterprise.getFirmName() : null);
+        loginRes.setApproval(enterprise != null ? enterprise.getApproval() : null);
+        loginRes.setEntTypes(enterprise != null ? enterprise.getEntTypes() : null);
+        loginRes.setEntTypeNames(enterprise != null ? enterprise.getEntTypeNames() : null);
+        loginRes.setSystemType(user.getSystemType());
+        loginRes.setClientType(clientType);
+        loginRes.setToken(token);
+        loginRes.setDeptId(user.getDeptId());
+        loginRes.setRoleId(user.getRoleId());
+        if (user.getSystemType().equals(SystemTypeEnum.MANAGE.getCode())) {
+            loginRes.setValid(true);
+        } else {
+            loginRes.setValid(!Objects.isNull(enterprise) && enterprise.getValid());
+        }
+        return loginRes;
+    }
+
     /**
      * @param loginBase {}
      * @param userId 用户ID

+ 5 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindMenuTreePojo.java

@@ -42,4 +42,9 @@ public class FindMenuTreePojo {
      */
     private List<String> entTypeList;
 
+    /**
+     * 系统类型
+     */
+    private Integer systemType;
+
 }

+ 1 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsMenuService.java

@@ -318,6 +318,7 @@ public class KwsMenuService {
     }
 
     private void extracted(Long userId, FindMenuTreePojo findMenuTreePojo) {
+        findMenuTreePojo.setSystemType(LoginUserHolder.getSystemType());
         //运营端的管理员不做过滤
         if (Objects.equals(LoginUserHolder.getSystemType(), SystemTypeEnum.MANAGE.getCode())) {
             return;

+ 3 - 1
sckw-modules/sckw-system/src/main/resources/mapper/KwsMenuDao.xml

@@ -270,7 +270,9 @@
     from kws_menu sm
     left join kws_menu_rights smr on sm.id = smr.menu_id
     where sm.del_flag = 0
-      and smr.del_flag = 0
+      <if test="systemType != 1">
+        and smr.del_flag = 0
+      </if>
     <if test="clientType != null">
       and sm.client_type = #{clientType}
     </if>