From dbaf847eeb5458eaebe65ed4858101b7fd2be532 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Fri, 1 Sep 2023 01:13:02 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.0=E3=80=91=E3=80=90system=E3=80=91Lo?= =?UTF-8?q?ginUser=E5=A1=AB=E5=85=85=E7=A7=9F=E6=88=B7id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/auth/api/pojo/login/LoginUser.java | 16 ++++++++------- .../roses/kernel/auth/auth/LoginService.java | 5 +---- .../sys/api/pojo/user/UserValidateDTO.java | 20 ++++++++++++++++++- .../user/service/impl/SysUserServiceImpl.java | 15 +++++++------- 4 files changed, 37 insertions(+), 19 deletions(-) diff --git a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java index 4714a2174..7ee306177 100644 --- a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java +++ b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java @@ -61,6 +61,12 @@ public class LoginUser implements Serializable { @ChineseDescription("用户的token") private String token; + /** + * 当前登录租户id + */ + @ChineseDescription("当前登录租户id") + private Long tenantId; + /** * 当前用户正在访问的appId */ @@ -79,12 +85,6 @@ public class LoginUser implements Serializable { @ChineseDescription("当前用户激活的职务id(正在以哪个身份访问系统)") private Long currentPositionId; - /** - * 当前登录租户id - */ - @ChineseDescription("当前登录租户id") - private Long tenantId; - /** * 当前用户语种的标识,例如:chinese,english *

@@ -116,9 +116,11 @@ public class LoginUser implements Serializable { public LoginUser() { } - public LoginUser(Long userId, String token) { + public LoginUser(Long userId, String account, String token, Long tenantId) { this.userId = userId; + this.account = account; this.token = token; + this.tenantId = tenantId; } } diff --git a/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/LoginService.java b/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/LoginService.java index 25eb426b7..babe7bdd5 100644 --- a/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/LoginService.java +++ b/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/LoginService.java @@ -150,16 +150,13 @@ public class LoginService { String userLoginToken = AuthJwtContext.me().generateTokenDefaultPayload(defaultJwtPayload); // 9. 创建loginUser对象 - LoginUser loginUser = new LoginUser(userValidateInfo.getUserId(), userLoginToken); + LoginUser loginUser = new LoginUser(userValidateInfo.getUserId(), loginRequest.getAccount(), userLoginToken, tenantId); // 9.1 记录用户登录时间和ip String ip = HttpServletUtil.getRequestClientIp(HttpServletUtil.getRequest()); loginUser.setLoginIp(ip); loginUser.setLoginTime(new Date()); - // 9.2 设置当前登录用户的账号 - loginUser.setAccount(loginRequest.getAccount()); - synchronized (loginRequest.getAccount().intern()) { // 10. 缓存用户信息,创建会话 diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/UserValidateDTO.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/UserValidateDTO.java index 0cd786d62..7fcb5ecf2 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/UserValidateDTO.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/UserValidateDTO.java @@ -60,14 +60,32 @@ public class UserValidateDTO { @ChineseDescription("用户状态") private Integer userStatus; + /** + * 账号 + *

+ * 2023年9月1日新增,用在createNewLoginInfo方法中,为指定token创建用户信息时候补全信息 + */ + @ChineseDescription("账号") + private String account; + + /** + * 租户id + *

+ * 2023年9月1日新增,用在createNewLoginInfo方法中,为指定token创建用户信息时候补全信息 + */ + @ChineseDescription("租户id") + private Long tenantId; + public UserValidateDTO() { } - public UserValidateDTO(Long userId, String userPasswordHexed, String salt, Integer userStatus) { + public UserValidateDTO(Long userId, String userPasswordHexed, String salt, Integer userStatus, Long tenantId, String account) { this.userId = userId; this.userPasswordHexed = userPasswordHexed; this.userPasswordSalt = salt; this.userStatus = userStatus; + this.tenantId = tenantId; + this.account = account; } } diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java index 4fcb068ca..7c15b714f 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java @@ -380,30 +380,31 @@ public class SysUserServiceImpl extends ServiceImpl impl } return new UserValidateDTO(sysUserServiceOne.getUserId(), sysUserServiceOne.getPassword(), sysUserServiceOne.getPasswordSalt(), - sysUserServiceOne.getStatusFlag()); + sysUserServiceOne.getStatusFlag(), tenantId, account); } @Override public UserValidateDTO getUserLoginValidateDTO(Long userId) { LambdaQueryWrapper sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); sysUserLambdaQueryWrapper.eq(SysUser::getUserId, userId); - sysUserLambdaQueryWrapper.select(SysUser::getPassword, SysUser::getPasswordSalt, SysUser::getStatusFlag, SysUser::getUserId); + sysUserLambdaQueryWrapper.select(SysUser::getPassword, SysUser::getAccount, SysUser::getPasswordSalt, SysUser::getStatusFlag, + SysUser::getUserId, SysUser::getTenantId); // 单独填充租户id - SysUser sysUserServiceOne; + SysUser sysUser; try { TenantSwitchHolder.set(false); - sysUserServiceOne = this.getOne(sysUserLambdaQueryWrapper, false); + sysUser = this.getOne(sysUserLambdaQueryWrapper, false); } finally { TenantSwitchHolder.remove(); } - if (sysUserServiceOne == null) { + if (sysUser == null) { throw new ServiceException(SysUserExceptionEnum.ACCOUNT_NOT_EXIST); } - return new UserValidateDTO(sysUserServiceOne.getUserId(), sysUserServiceOne.getPassword(), sysUserServiceOne.getPasswordSalt(), - sysUserServiceOne.getStatusFlag()); + return new UserValidateDTO(sysUser.getUserId(), sysUser.getPassword(), sysUser.getPasswordSalt(), + sysUser.getStatusFlag(), sysUser.getTenantId(), sysUser.getAccount()); } @Override