mirror of https://gitee.com/stylefeng/roses
【8.0】【system】LoginUser填充租户id
parent
cc0fed9d92
commit
dbaf847eeb
|
@ -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
|
||||
* <p>
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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. 缓存用户信息,创建会话
|
||||
|
|
|
@ -60,14 +60,32 @@ public class UserValidateDTO {
|
|||
@ChineseDescription("用户状态")
|
||||
private Integer userStatus;
|
||||
|
||||
/**
|
||||
* 账号
|
||||
* <p>
|
||||
* 2023年9月1日新增,用在createNewLoginInfo方法中,为指定token创建用户信息时候补全信息
|
||||
*/
|
||||
@ChineseDescription("账号")
|
||||
private String account;
|
||||
|
||||
/**
|
||||
* 租户id
|
||||
* <p>
|
||||
* 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -380,30 +380,31 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
}
|
||||
|
||||
return new UserValidateDTO(sysUserServiceOne.getUserId(), sysUserServiceOne.getPassword(), sysUserServiceOne.getPasswordSalt(),
|
||||
sysUserServiceOne.getStatusFlag());
|
||||
sysUserServiceOne.getStatusFlag(), tenantId, account);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserValidateDTO getUserLoginValidateDTO(Long userId) {
|
||||
LambdaQueryWrapper<SysUser> 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
|
||||
|
|
Loading…
Reference in New Issue