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

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

@ -16,25 +16,28 @@ public interface RemoteUserService {
* *
* *
* @param username * @param username
* @param tenantId id
* @return * @return
*/ */
LoginUser getUserInfo(String username) throws UserException; LoginUser getUserInfo(String username, String tenantId) throws UserException;
/** /**
* *
* *
* @param phonenumber * @param phonenumber
* @param tenantId id
* @return * @return
*/ */
LoginUser getUserInfoByPhonenumber(String phonenumber) throws UserException; LoginUser getUserInfoByPhonenumber(String phonenumber, String tenantId) throws UserException;
/** /**
* *
* *
* @param email * @param email
* @param tenantId id
* @return * @return
*/ */
LoginUser getUserInfoByEmail(String email) throws UserException; LoginUser getUserInfoByEmail(String email, String tenantId) throws UserException;
/** /**
* openid * openid

@ -64,7 +64,7 @@ public class SysLoginService {
public String login(String tenantId, String username, String password) { public String login(String tenantId, String username, String password) {
// 校验租户 // 校验租户
checkTenant(tenantId); checkTenant(tenantId);
LoginUser userInfo = remoteUserService.getUserInfo(username); LoginUser userInfo = remoteUserService.getUserInfo(username, tenantId);
checkLogin(LoginType.PASSWORD, tenantId, username, () -> !BCrypt.checkpw(password, userInfo.getPassword())); checkLogin(LoginType.PASSWORD, tenantId, username, () -> !BCrypt.checkpw(password, userInfo.getPassword()));
// 获取登录token // 获取登录token
LoginHelper.loginByDevice(userInfo, DeviceType.PC); LoginHelper.loginByDevice(userInfo, DeviceType.PC);
@ -77,7 +77,7 @@ public class SysLoginService {
// 校验租户 // 校验租户
checkTenant(tenantId); checkTenant(tenantId);
// 通过手机号查找用户 // 通过手机号查找用户
LoginUser userInfo = remoteUserService.getUserInfoByPhonenumber(phonenumber); LoginUser userInfo = remoteUserService.getUserInfoByPhonenumber(phonenumber, tenantId);
checkLogin(LoginType.SMS, tenantId, userInfo.getUsername(), () -> !validateSmsCode(tenantId, phonenumber, smsCode)); checkLogin(LoginType.SMS, tenantId, userInfo.getUsername(), () -> !validateSmsCode(tenantId, phonenumber, smsCode));
// 生成token // 生成token
@ -91,7 +91,7 @@ public class SysLoginService {
// 校验租户 // 校验租户
checkTenant(tenantId); checkTenant(tenantId);
// 通过邮箱查找用户 // 通过邮箱查找用户
LoginUser userInfo = remoteUserService.getUserInfoByEmail(email); LoginUser userInfo = remoteUserService.getUserInfoByEmail(email, tenantId);
checkLogin(LoginType.EMAIL,tenantId, userInfo.getUsername(), () -> !validateEmailCode(tenantId, email, emailCode)); checkLogin(LoginType.EMAIL,tenantId, userInfo.getUsername(), () -> !validateEmailCode(tenantId, email, emailCode));
// 生成token // 生成token

@ -28,7 +28,7 @@ public class MultiService {
@GlobalTransactional(rollbackFor = Exception.class) @GlobalTransactional(rollbackFor = Exception.class)
@XxlJob("multiServiceHandler") @XxlJob("multiServiceHandler")
public void multiServiceHandler() throws Exception { public void multiServiceHandler() throws Exception {
LoginUser admin = remoteUserService.getUserInfo("admin"); LoginUser admin = remoteUserService.getUserInfo("admin", "000000");
XxlJobHelper.log("XXL-JOB, multiServiceHandler result: {}", admin.toString()); XxlJobHelper.log("XXL-JOB, multiServiceHandler result: {}", admin.toString());
RemoteUserBo remoteUserBo = new RemoteUserBo(); RemoteUserBo remoteUserBo = new RemoteUserBo();
remoteUserBo.setUserName("test"); remoteUserBo.setUserName("test");

@ -41,10 +41,10 @@ public class RemoteUserServiceImpl implements RemoteUserService {
private final SysUserMapper userMapper; private final SysUserMapper userMapper;
@Override @Override
public LoginUser getUserInfo(String username) throws UserException { public LoginUser getUserInfo(String username, String tenantId) throws UserException {
SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserName, SysUser::getStatus) .select(SysUser::getUserName, SysUser::getStatus)
.eq(SysUser::getUserName, username)); .eq(SysUser::getUserName, username));
if (ObjectUtil.isNull(sysUser)) { if (ObjectUtil.isNull(sysUser)) {
throw new UserException("user.not.exists", username); throw new UserException("user.not.exists", username);
} }
@ -53,14 +53,14 @@ public class RemoteUserServiceImpl implements RemoteUserService {
} }
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
return buildLoginUser(userMapper.selectUserByUserName(username)); return buildLoginUser(userMapper.selectTenantUserByUserName(username, tenantId));
} }
@Override @Override
public LoginUser getUserInfoByPhonenumber(String phonenumber) throws UserException { public LoginUser getUserInfoByPhonenumber(String phonenumber, String tenantId) throws UserException {
SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getPhonenumber, SysUser::getStatus) .select(SysUser::getPhonenumber, SysUser::getStatus)
.eq(SysUser::getPhonenumber, phonenumber)); .eq(SysUser::getPhonenumber, phonenumber));
if (ObjectUtil.isNull(sysUser)) { if (ObjectUtil.isNull(sysUser)) {
throw new UserException("user.not.exists", phonenumber); throw new UserException("user.not.exists", phonenumber);
} }
@ -69,11 +69,11 @@ public class RemoteUserServiceImpl implements RemoteUserService {
} }
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
return buildLoginUser(userMapper.selectUserByPhonenumber(phonenumber)); return buildLoginUser(userMapper.selectTenantUserByPhonenumber(phonenumber, tenantId));
} }
@Override @Override
public LoginUser getUserInfoByEmail(String email) throws UserException { public LoginUser getUserInfoByEmail(String email, String tenantId) throws UserException {
SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getPhonenumber, SysUser::getStatus) .select(SysUser::getPhonenumber, SysUser::getStatus)
.eq(SysUser::getEmail, email)); .eq(SysUser::getEmail, email));
@ -85,7 +85,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
} }
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
return buildLoginUser(userMapper.selectUserByEmail(email)); return buildLoginUser(userMapper.selectTenantUserByEmail(email, tenantId));
} }
@Override @Override

Loading…
Cancel
Save