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")
|
@ChineseDescription("用户的token")
|
||||||
private String token;
|
private String token;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前登录租户id
|
||||||
|
*/
|
||||||
|
@ChineseDescription("当前登录租户id")
|
||||||
|
private Long tenantId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当前用户正在访问的appId
|
* 当前用户正在访问的appId
|
||||||
*/
|
*/
|
||||||
|
@ -79,12 +85,6 @@ public class LoginUser implements Serializable {
|
||||||
@ChineseDescription("当前用户激活的职务id(正在以哪个身份访问系统)")
|
@ChineseDescription("当前用户激活的职务id(正在以哪个身份访问系统)")
|
||||||
private Long currentPositionId;
|
private Long currentPositionId;
|
||||||
|
|
||||||
/**
|
|
||||||
* 当前登录租户id
|
|
||||||
*/
|
|
||||||
@ChineseDescription("当前登录租户id")
|
|
||||||
private Long tenantId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当前用户语种的标识,例如:chinese,english
|
* 当前用户语种的标识,例如:chinese,english
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -116,9 +116,11 @@ public class LoginUser implements Serializable {
|
||||||
public LoginUser() {
|
public LoginUser() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoginUser(Long userId, String token) {
|
public LoginUser(Long userId, String account, String token, Long tenantId) {
|
||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
|
this.account = account;
|
||||||
this.token = token;
|
this.token = token;
|
||||||
|
this.tenantId = tenantId;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,16 +150,13 @@ public class LoginService {
|
||||||
String userLoginToken = AuthJwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
|
String userLoginToken = AuthJwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
|
||||||
|
|
||||||
// 9. 创建loginUser对象
|
// 9. 创建loginUser对象
|
||||||
LoginUser loginUser = new LoginUser(userValidateInfo.getUserId(), userLoginToken);
|
LoginUser loginUser = new LoginUser(userValidateInfo.getUserId(), loginRequest.getAccount(), userLoginToken, tenantId);
|
||||||
|
|
||||||
// 9.1 记录用户登录时间和ip
|
// 9.1 记录用户登录时间和ip
|
||||||
String ip = HttpServletUtil.getRequestClientIp(HttpServletUtil.getRequest());
|
String ip = HttpServletUtil.getRequestClientIp(HttpServletUtil.getRequest());
|
||||||
loginUser.setLoginIp(ip);
|
loginUser.setLoginIp(ip);
|
||||||
loginUser.setLoginTime(new Date());
|
loginUser.setLoginTime(new Date());
|
||||||
|
|
||||||
// 9.2 设置当前登录用户的账号
|
|
||||||
loginUser.setAccount(loginRequest.getAccount());
|
|
||||||
|
|
||||||
synchronized (loginRequest.getAccount().intern()) {
|
synchronized (loginRequest.getAccount().intern()) {
|
||||||
|
|
||||||
// 10. 缓存用户信息,创建会话
|
// 10. 缓存用户信息,创建会话
|
||||||
|
|
|
@ -60,14 +60,32 @@ public class UserValidateDTO {
|
||||||
@ChineseDescription("用户状态")
|
@ChineseDescription("用户状态")
|
||||||
private Integer userStatus;
|
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() {
|
||||||
}
|
}
|
||||||
|
|
||||||
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.userId = userId;
|
||||||
this.userPasswordHexed = userPasswordHexed;
|
this.userPasswordHexed = userPasswordHexed;
|
||||||
this.userPasswordSalt = salt;
|
this.userPasswordSalt = salt;
|
||||||
this.userStatus = userStatus;
|
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(),
|
return new UserValidateDTO(sysUserServiceOne.getUserId(), sysUserServiceOne.getPassword(), sysUserServiceOne.getPasswordSalt(),
|
||||||
sysUserServiceOne.getStatusFlag());
|
sysUserServiceOne.getStatusFlag(), tenantId, account);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserValidateDTO getUserLoginValidateDTO(Long userId) {
|
public UserValidateDTO getUserLoginValidateDTO(Long userId) {
|
||||||
LambdaQueryWrapper<SysUser> sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysUser> sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
sysUserLambdaQueryWrapper.eq(SysUser::getUserId, userId);
|
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
|
// 单独填充租户id
|
||||||
SysUser sysUserServiceOne;
|
SysUser sysUser;
|
||||||
try {
|
try {
|
||||||
TenantSwitchHolder.set(false);
|
TenantSwitchHolder.set(false);
|
||||||
sysUserServiceOne = this.getOne(sysUserLambdaQueryWrapper, false);
|
sysUser = this.getOne(sysUserLambdaQueryWrapper, false);
|
||||||
} finally {
|
} finally {
|
||||||
TenantSwitchHolder.remove();
|
TenantSwitchHolder.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sysUserServiceOne == null) {
|
if (sysUser == null) {
|
||||||
throw new ServiceException(SysUserExceptionEnum.ACCOUNT_NOT_EXIST);
|
throw new ServiceException(SysUserExceptionEnum.ACCOUNT_NOT_EXIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new UserValidateDTO(sysUserServiceOne.getUserId(), sysUserServiceOne.getPassword(), sysUserServiceOne.getPasswordSalt(),
|
return new UserValidateDTO(sysUser.getUserId(), sysUser.getPassword(), sysUser.getPasswordSalt(),
|
||||||
sysUserServiceOne.getStatusFlag());
|
sysUser.getStatusFlag(), sysUser.getTenantId(), sysUser.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue