fix 修复 用户重名登录报错问题

2.X
疯狂的狮子Li 2 years ago
parent 8a4e99fa5c
commit e7979eabc9

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

Loading…
Cancel
Save