【8.0】【system】LoginUser填充租户id

pull/57/head
fengshuonan 2023-09-01 01:13:02 +08:00
parent cc0fed9d92
commit dbaf847eeb
4 changed files with 37 additions and 19 deletions

View File

@ -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;
/**
* chineseenglish
* <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;
}
}

View File

@ -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. 缓存用户信息,创建会话

View File

@ -60,14 +60,32 @@ public class UserValidateDTO {
@ChineseDescription("用户状态")
private Integer userStatus;
/**
*
* <p>
* 202391createNewLoginInfotoken
*/
@ChineseDescription("账号")
private String account;
/**
* id
* <p>
* 202391createNewLoginInfotoken
*/
@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;
}
}

View File

@ -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