Преглед на файлове

feat(user): 添加用户角色ID字段并完善登录上下文

- 在 LoginUser 类中新增 roleId 字段用于存储用户角色ID
- 在 UserConstants 中定义 SA_USER_ROLE_ID 常量- 更新 UserContextInterceptor 拦截器,从会话中获取并设置用户角色ID
- 在 WebGatewayImpl 登录逻辑中查询用户角色ID并存入会话- 完善用户登录后信息存储流程,支持角色权限相关功能扩展
hxd преди 2 дни
родител
ревизия
f56ed03f20

+ 1 - 0
portal-service-common/src/main/java/com/hfln/portal/common/constant/UserConstants.java

@@ -17,6 +17,7 @@ public interface UserConstants {
     String SA_USER_TENANT_CODE = "user_tenant_code";
     String SA_USER_TENANT_NAME = "user_tenant_name";
     String SA_USER_ACCOUNT = "user_account";
+    String SA_USER_ROLE_ID = "user_role_id";
 
     // 用户默认角色code
     String ROLE_USER_MANAGER_DEFAULT = "user_manager_default";

+ 2 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/LoginUser.java

@@ -25,4 +25,6 @@ public class LoginUser {
 
     private String unionId;
 
+    private Long roleId;
+
 }

+ 1 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/UserContextInterceptor.java

@@ -27,6 +27,7 @@ public class UserContextInterceptor implements HandlerInterceptor {
         loginUser.setPhone((String) saSession.get(UserConstants.SA_USER_PHONE));
         loginUser.setOpenId((String) saSession.get(UserConstants.SA_USER_OPEN_ID));
         loginUser.setUnionId((String) saSession.get(UserConstants.SA_USER_UNION_ID));
+        loginUser.setRoleId((Long) saSession.get(UserConstants.SA_USER_ROLE_ID));
         UserContext.set(loginUser);
         return true;
     }

+ 5 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebGatewayImpl.java

@@ -326,12 +326,17 @@ public class WebGatewayImpl implements WebGateway {
         // 3 添加 SptAdminUtil,不过在不同地方,需要注意对 stputil sptadminutil 的不同引用
         StpUtil.login(RedisCacheConstant.WEB_USER_PRE + adminUser.getUserId(), DeviceType.WEB.getCode());
 
+        // 查询登录用户的roleId
+        TblUserRole userRole = tblUserRoleService.getByUserId(adminUser.getUserId());
+        Long roleId = userRole.getRoleId();
+
         // 用户登录后,保存用户信息到 session
         SaSession saSession = StpUtil.getSession();
         saSession.set(UserConstants.SA_USER_PHONE, adminUser.getPhone());
         saSession.set(UserConstants.SA_USER_ID, adminUser.getUserId());
         saSession.set(UserConstants.SA_USER_TYPE, adminUser.getUserType());
         saSession.set(UserConstants.SA_USER_ACCOUNT, adminUser.getAccount());
+        saSession.set(UserConstants.SA_USER_ROLE_ID, roleId);
         if (adminUser.getTenantId() != null) {
             saSession.set(UserConstants.SA_USER_TENANT_ID, adminUser.getTenantId());
         }