From ef4cb01d9bea184224342738c5ee8b336509c45b 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: Tue, 21 Nov 2023 14:57:35 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=8A=A8=E6=80=81=E7=A7=9F=E6=88=B7=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=AF=B9=E7=A7=9F=E6=88=B7=E7=9A=84=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysOssConfigServiceImpl.java | 9 +- .../system/dubbo/RemoteUserServiceImpl.java | 129 +++++++++--------- .../dromara/system/mapper/SysUserMapper.java | 33 +---- .../service/impl/SysConfigServiceImpl.java | 7 +- .../resources/mapper/system/SysUserMapper.xml | 15 -- 5 files changed, 69 insertions(+), 124 deletions(-) diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssConfigServiceImpl.java b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssConfigServiceImpl.java index 55cd1f4a..39d9a4cb 100644 --- a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssConfigServiceImpl.java @@ -57,9 +57,8 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService { new LambdaQueryWrapper().orderByAsc(TenantEntity::getTenantId)) ); Map> map = StreamUtils.groupByKey(list, SysOssConfig::getTenantId); - try { - for (String tenantId : map.keySet()) { - TenantHelper.setDynamic(tenantId); + for (String tenantId : map.keySet()) { + TenantHelper.dynamic(tenantId, () -> { // 加载OSS初始化配置 for (SysOssConfig config : map.get(tenantId)) { String configKey = config.getConfigKey(); @@ -68,9 +67,7 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService { } CacheUtils.put(CacheNames.SYS_OSS_CONFIG, config.getConfigKey(), JsonUtils.toJsonString(config)); } - } - } finally { - TenantHelper.clearDynamic(); + }); } } 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 be56450e..5d4bf00d 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 @@ -45,82 +45,74 @@ public class RemoteUserServiceImpl implements RemoteUserService { @Override public LoginUser getUserInfo(String username, String tenantId) throws UserException { - SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper() - .select(SysUser::getUserName, SysUser::getStatus) - .eq(TenantHelper.isEnable(), SysUser::getTenantId, tenantId) - .eq(SysUser::getUserName, username)); - if (ObjectUtil.isNull(sysUser)) { - throw new UserException("user.not.exists", username); - } - if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus())) { - throw new UserException("user.blocked", username); - } - // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 - // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 - if (TenantHelper.isEnable()) { - return buildLoginUser(userMapper.selectTenantUserByUserName(username, tenantId)); - } - return buildLoginUser(userMapper.selectUserByUserName(username)); + return TenantHelper.dynamic(tenantId, () -> { + SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper() + .select(SysUser::getUserName, SysUser::getStatus) + .eq(SysUser::getUserName, username)); + if (ObjectUtil.isNull(sysUser)) { + throw new UserException("user.not.exists", username); + } + if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus())) { + throw new UserException("user.blocked", username); + } + // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 + // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 + return buildLoginUser(userMapper.selectUserByUserName(username)); + }); } @Override public LoginUser getUserInfo(Long userId, String tenantId) throws UserException { - SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper() - .select(SysUser::getUserName, SysUser::getStatus) - .eq(TenantHelper.isEnable(), SysUser::getTenantId, tenantId) - .eq(SysUser::getUserId, userId)); - if (ObjectUtil.isNull(sysUser)) { - throw new UserException("user.not.exists", ""); - } - if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus())) { - throw new UserException("user.blocked", sysUser.getUserName()); - } - // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 - // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 - if (TenantHelper.isEnable()) { - return buildLoginUser(userMapper.selectTenantUserByUserName(sysUser.getUserName(), tenantId)); - } - return buildLoginUser(userMapper.selectUserByUserName(sysUser.getUserName())); + return TenantHelper.dynamic(tenantId, () -> { + SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper() + .select(SysUser::getUserName, SysUser::getStatus) + .eq(SysUser::getUserId, userId)); + if (ObjectUtil.isNull(sysUser)) { + throw new UserException("user.not.exists", ""); + } + if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus())) { + throw new UserException("user.blocked", sysUser.getUserName()); + } + // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 + // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 + return buildLoginUser(userMapper.selectUserByUserName(sysUser.getUserName())); + }); } @Override public LoginUser getUserInfoByPhonenumber(String phonenumber, String tenantId) throws UserException { - SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper() - .select(SysUser::getPhonenumber, SysUser::getStatus) - .eq(TenantHelper.isEnable(), SysUser::getTenantId, tenantId) - .eq(SysUser::getPhonenumber, phonenumber)); - if (ObjectUtil.isNull(sysUser)) { - throw new UserException("user.not.exists", phonenumber); - } - if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus())) { - throw new UserException("user.blocked", phonenumber); - } - // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 - // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 - if (TenantHelper.isEnable()) { - return buildLoginUser(userMapper.selectTenantUserByPhonenumber(phonenumber, tenantId)); - } - return buildLoginUser(userMapper.selectUserByPhonenumber(phonenumber)); + return TenantHelper.dynamic(tenantId, () -> { + SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper() + .select(SysUser::getPhonenumber, SysUser::getStatus) + .eq(SysUser::getPhonenumber, phonenumber)); + if (ObjectUtil.isNull(sysUser)) { + throw new UserException("user.not.exists", phonenumber); + } + if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus())) { + throw new UserException("user.blocked", phonenumber); + } + // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 + // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 + return buildLoginUser(userMapper.selectUserByPhonenumber(phonenumber)); + }); } @Override public LoginUser getUserInfoByEmail(String email, String tenantId) throws UserException { - SysUser user = userMapper.selectOne(new LambdaQueryWrapper() - .select(SysUser::getEmail, SysUser::getStatus) - .eq(TenantHelper.isEnable(), SysUser::getTenantId, tenantId) - .eq(SysUser::getEmail, email)); - if (ObjectUtil.isNull(user)) { - throw new UserException("user.not.exists", email); - } - if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { - throw new UserException("user.blocked", email); - } - // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 - // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 - if (TenantHelper.isEnable()) { - return buildLoginUser(userMapper.selectTenantUserByEmail(email, tenantId)); - } - return buildLoginUser(userMapper.selectUserByEmail(email)); + return TenantHelper.dynamic(tenantId, () -> { + SysUser user = userMapper.selectOne(new LambdaQueryWrapper() + .select(SysUser::getEmail, SysUser::getStatus) + .eq(SysUser::getEmail, email)); + if (ObjectUtil.isNull(user)) { + throw new UserException("user.not.exists", email); + } + if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { + throw new UserException("user.blocked", email); + } + // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 + // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 + return buildLoginUser(userMapper.selectUserByEmail(email)); + }); } @Override @@ -151,10 +143,11 @@ public class RemoteUserServiceImpl implements RemoteUserService { if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { throw new ServiceException("当前系统没有开启注册功能"); } - boolean exist = userMapper.exists(new LambdaQueryWrapper() - .eq(TenantHelper.isEnable(), SysUser::getTenantId, remoteUserBo.getTenantId()) - .eq(SysUser::getUserName, sysUserBo.getUserName()) - .ne(ObjectUtil.isNotNull(sysUserBo.getUserId()), SysUser::getUserId, sysUserBo.getUserId())); + boolean exist = TenantHelper.dynamic(remoteUserBo.getTenantId(), () -> { + return userMapper.exists(new LambdaQueryWrapper() + .eq(SysUser::getUserName, sysUserBo.getUserName()) + .ne(ObjectUtil.isNotNull(sysUserBo.getUserId()), SysUser::getUserId, sysUserBo.getUserId())); + }); if (exist) { throw new UserException("user.register.save.error", username); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java index a4c691f6..43222253 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java @@ -1,15 +1,14 @@ package org.dromara.system.mapper; -import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.system.domain.SysUser; import org.dromara.system.domain.vo.SysUserVo; -import org.apache.ibatis.annotations.Param; import java.util.List; @@ -86,36 +85,6 @@ public interface SysUserMapper extends BaseMapperPlus { */ SysUserVo selectUserByEmail(String email); - /** - * 通过用户名查询用户(不走租户插件) - * - * @param userName 用户名 - * @param tenantId 租户id - * @return 用户对象信息 - */ - @InterceptorIgnore(tenantLine = "true") - SysUserVo selectTenantUserByUserName(@Param("userName") String userName, @Param("tenantId") String tenantId); - - /** - * 通过手机号查询用户(不走租户插件) - * - * @param phonenumber 手机号 - * @param tenantId 租户id - * @return 用户对象信息 - */ - @InterceptorIgnore(tenantLine = "true") - SysUserVo selectTenantUserByPhonenumber(@Param("phonenumber") String phonenumber, @Param("tenantId") String tenantId); - - /** - * 通过邮箱查询用户(不走租户插件) - * - * @param email 邮箱 - * @param tenantId 租户id - * @return 用户对象信息 - */ - @InterceptorIgnore(tenantLine = "true") - SysUserVo selectTenantUserByEmail(@Param("email") String email, @Param("tenantId") String tenantId); - /** * 通过用户ID查询用户 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java index 26d6f3f9..7f72159f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java @@ -83,9 +83,10 @@ public class SysConfigServiceImpl implements ISysConfigService { */ @Override public boolean selectRegisterEnabled(String tenantId) { - SysConfig retConfig = baseMapper.selectOne(new LambdaQueryWrapper() - .eq(SysConfig::getConfigKey, "sys.account.registerUser") - .eq(TenantHelper.isEnable(),SysConfig::getTenantId, tenantId)); + SysConfig retConfig = TenantHelper.dynamic(tenantId, () -> { + return baseMapper.selectOne(new LambdaQueryWrapper() + .eq(SysConfig::getConfigKey, "sys.account.registerUser")); + }); if (ObjectUtil.isNull(retConfig)) { return false; } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 6d92234b..e7831fc9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -116,21 +116,6 @@ where u.del_flag = '0' and u.email = #{email} - - - - - -