From e2b169e07ae5379e5490363e4d15320b7eb0c59e Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期三, 25 十月 2023 22:18:21 +0800
Subject: [PATCH] fix 修复 用户注册接口校验用户名不区分租户问题
---
ruoyi-admin/src/main/java/org/dromara/web/service/SysRegisterService.java | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysRegisterService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysRegisterService.java
index 013773e..4d4b072 100644
--- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysRegisterService.java
+++ b/ruoyi-admin/src/main/java/org/dromara/web/service/SysRegisterService.java
@@ -1,6 +1,8 @@
package org.dromara.web.service;
import cn.dev33.satoken.secure.BCrypt;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.dromara.common.core.constant.Constants;
import org.dromara.common.core.constant.GlobalConstants;
import org.dromara.common.core.domain.model.RegisterBody;
@@ -14,8 +16,11 @@
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.log.event.LogininforEvent;
import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.common.web.config.properties.CaptchaProperties;
+import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.bo.SysUserBo;
+import org.dromara.system.mapper.SysUserMapper;
import org.dromara.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -30,6 +35,7 @@
public class SysRegisterService {
private final ISysUserService userService;
+ private final SysUserMapper userMapper;
private final CaptchaProperties captchaProperties;
/**
@@ -53,7 +59,11 @@
sysUser.setPassword(BCrypt.hashpw(password));
sysUser.setUserType(userType);
- if (!userService.checkUserNameUnique(sysUser)) {
+ boolean exist = userMapper.exists(new LambdaQueryWrapper<SysUser>()
+ .eq(TenantHelper.isEnable(), SysUser::getTenantId, tenantId)
+ .eq(SysUser::getUserName, sysUser.getUserName())
+ .ne(ObjectUtil.isNotNull(sysUser.getUserId()), SysUser::getUserId, sysUser.getUserId()));
+ if (exist) {
throw new UserException("user.register.save.error", username);
}
boolean regFlag = userService.registerUser(sysUser, tenantId);
--
Gitblit v1.9.3