mirror of
https://gitee.com/dromara/RuoYi-Cloud-Plus.git
synced 2025-09-02 18:46:13 +00:00
fix 修复 用户重名登录报错问题
This commit is contained in:
@@ -16,25 +16,28 @@ public interface RemoteUserService {
|
||||
* 通过用户名查询用户信息
|
||||
*
|
||||
* @param username 用户名
|
||||
* @param tenantId 租户id
|
||||
* @return 结果
|
||||
*/
|
||||
LoginUser getUserInfo(String username) throws UserException;
|
||||
LoginUser getUserInfo(String username, String tenantId) throws UserException;
|
||||
|
||||
/**
|
||||
* 通过手机号查询用户信息
|
||||
*
|
||||
* @param phonenumber 手机号
|
||||
* @param tenantId 租户id
|
||||
* @return 结果
|
||||
*/
|
||||
LoginUser getUserInfoByPhonenumber(String phonenumber) throws UserException;
|
||||
LoginUser getUserInfoByPhonenumber(String phonenumber, String tenantId) throws UserException;
|
||||
|
||||
/**
|
||||
* 通过邮箱查询用户信息
|
||||
*
|
||||
* @param email 邮箱
|
||||
* @param email 邮箱
|
||||
* @param tenantId 租户id
|
||||
* @return 结果
|
||||
*/
|
||||
LoginUser getUserInfoByEmail(String email) throws UserException;
|
||||
LoginUser getUserInfoByEmail(String email, String tenantId) throws UserException;
|
||||
|
||||
/**
|
||||
* 通过openid查询用户信息
|
||||
|
@@ -64,7 +64,7 @@ public class SysLoginService {
|
||||
public String login(String tenantId, String username, String password) {
|
||||
// 校验租户
|
||||
checkTenant(tenantId);
|
||||
LoginUser userInfo = remoteUserService.getUserInfo(username);
|
||||
LoginUser userInfo = remoteUserService.getUserInfo(username, tenantId);
|
||||
checkLogin(LoginType.PASSWORD, tenantId, username, () -> !BCrypt.checkpw(password, userInfo.getPassword()));
|
||||
// 获取登录token
|
||||
LoginHelper.loginByDevice(userInfo, DeviceType.PC);
|
||||
@@ -77,7 +77,7 @@ public class SysLoginService {
|
||||
// 校验租户
|
||||
checkTenant(tenantId);
|
||||
// 通过手机号查找用户
|
||||
LoginUser userInfo = remoteUserService.getUserInfoByPhonenumber(phonenumber);
|
||||
LoginUser userInfo = remoteUserService.getUserInfoByPhonenumber(phonenumber, tenantId);
|
||||
|
||||
checkLogin(LoginType.SMS, tenantId, userInfo.getUsername(), () -> !validateSmsCode(tenantId, phonenumber, smsCode));
|
||||
// 生成token
|
||||
@@ -91,7 +91,7 @@ public class SysLoginService {
|
||||
// 校验租户
|
||||
checkTenant(tenantId);
|
||||
// 通过邮箱查找用户
|
||||
LoginUser userInfo = remoteUserService.getUserInfoByEmail(email);
|
||||
LoginUser userInfo = remoteUserService.getUserInfoByEmail(email, tenantId);
|
||||
|
||||
checkLogin(LoginType.EMAIL,tenantId, userInfo.getUsername(), () -> !validateEmailCode(tenantId, email, emailCode));
|
||||
// 生成token
|
||||
|
@@ -28,7 +28,7 @@ public class MultiService {
|
||||
@GlobalTransactional(rollbackFor = Exception.class)
|
||||
@XxlJob("multiServiceHandler")
|
||||
public void multiServiceHandler() throws Exception {
|
||||
LoginUser admin = remoteUserService.getUserInfo("admin");
|
||||
LoginUser admin = remoteUserService.getUserInfo("admin", "000000");
|
||||
XxlJobHelper.log("XXL-JOB, multiServiceHandler result: {}", admin.toString());
|
||||
RemoteUserBo remoteUserBo = new RemoteUserBo();
|
||||
remoteUserBo.setUserName("test");
|
||||
|
@@ -41,10 +41,10 @@ public class RemoteUserServiceImpl implements RemoteUserService {
|
||||
private final SysUserMapper userMapper;
|
||||
|
||||
@Override
|
||||
public LoginUser getUserInfo(String username) throws UserException {
|
||||
public LoginUser getUserInfo(String username, String tenantId) throws UserException {
|
||||
SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||
.select(SysUser::getUserName, SysUser::getStatus)
|
||||
.eq(SysUser::getUserName, username));
|
||||
.select(SysUser::getUserName, SysUser::getStatus)
|
||||
.eq(SysUser::getUserName, username));
|
||||
if (ObjectUtil.isNull(sysUser)) {
|
||||
throw new UserException("user.not.exists", username);
|
||||
}
|
||||
@@ -53,14 +53,14 @@ public class RemoteUserServiceImpl implements RemoteUserService {
|
||||
}
|
||||
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
|
||||
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||
return buildLoginUser(userMapper.selectUserByUserName(username));
|
||||
return buildLoginUser(userMapper.selectTenantUserByUserName(username, tenantId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoginUser getUserInfoByPhonenumber(String phonenumber) throws UserException {
|
||||
public LoginUser getUserInfoByPhonenumber(String phonenumber, String tenantId) throws UserException {
|
||||
SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||
.select(SysUser::getPhonenumber, SysUser::getStatus)
|
||||
.eq(SysUser::getPhonenumber, phonenumber));
|
||||
.select(SysUser::getPhonenumber, SysUser::getStatus)
|
||||
.eq(SysUser::getPhonenumber, phonenumber));
|
||||
if (ObjectUtil.isNull(sysUser)) {
|
||||
throw new UserException("user.not.exists", phonenumber);
|
||||
}
|
||||
@@ -69,11 +69,11 @@ public class RemoteUserServiceImpl implements RemoteUserService {
|
||||
}
|
||||
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
|
||||
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||
return buildLoginUser(userMapper.selectUserByPhonenumber(phonenumber));
|
||||
return buildLoginUser(userMapper.selectTenantUserByPhonenumber(phonenumber, tenantId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoginUser getUserInfoByEmail(String email) throws UserException {
|
||||
public LoginUser getUserInfoByEmail(String email, String tenantId) throws UserException {
|
||||
SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||
.select(SysUser::getPhonenumber, SysUser::getStatus)
|
||||
.eq(SysUser::getEmail, email));
|
||||
@@ -85,7 +85,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
|
||||
}
|
||||
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
|
||||
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||
return buildLoginUser(userMapper.selectUserByEmail(email));
|
||||
return buildLoginUser(userMapper.selectTenantUserByEmail(email, tenantId));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user