From e7979eabc9abecbd1436b36654232293b9c0f410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Fri, 16 Jun 2023 00:07:07 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E9=87=8D=E5=90=8D=E7=99=BB=E5=BD=95=E6=8A=A5=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/system/api/RemoteUserService.java | 11 ++++++---- .../dromara/auth/service/SysLoginService.java | 6 +++--- .../org/dromara/job/service/MultiService.java | 2 +- .../system/dubbo/RemoteUserServiceImpl.java | 20 +++++++++---------- 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java index e602d7c9..ec401d54 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java @@ -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查询用户信息 diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java index 390c7642..2d321a0f 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java @@ -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 diff --git a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/service/MultiService.java b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/service/MultiService.java index 5df7eaaf..9be05ab3 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/service/MultiService.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/service/MultiService.java @@ -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"); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java index 6df7913a..0e3f5bd4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java @@ -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() - .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() - .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() .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