From ad54d363851240c9a18a96273c0e00c78239d4b0 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Sun, 18 Sep 2022 11:26:44 +0800
Subject: [PATCH] 修改用户登录账号重复验证
---
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 10 +++++++---
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 4 ++--
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java | 2 +-
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java | 4 ++--
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 9 +++++----
5 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index b7b400d..11920bd 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -143,7 +143,7 @@
{
return R.fail("当前系统没有开启注册功能!");
}
- if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(username)))
+ if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(sysUser)))
{
return R.fail("保存用户'" + username + "'失败,注册账号已存在");
}
@@ -200,7 +200,7 @@
@PostMapping
public AjaxResult add(@Validated @RequestBody SysUser user)
{
- if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
+ if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
{
return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
}
@@ -229,7 +229,11 @@
{
userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId());
- if (StringUtils.isNotEmpty(user.getPhonenumber())
+ if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
+ {
+ return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
+ }
+ else if (StringUtils.isNotEmpty(user.getPhonenumber())
&& UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
{
return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 7b8c4c6..9535ab8 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -107,7 +107,7 @@
* @param userName 用户名称
* @return 结果
*/
- public int checkUserNameUnique(String userName);
+ public SysUser checkUserNameUnique(String userName);
/**
* 校验手机号码是否唯一
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index 1fc220a..a50fd64 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -69,10 +69,10 @@
/**
* 校验用户名称是否唯一
*
- * @param userName 用户名称
+ * @param user 用户信息
* @return 结果
*/
- public String checkUserNameUnique(String userName);
+ public String checkUserNameUnique(SysUser user);
/**
* 校验手机号码是否唯一
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 8f71552..4a2aff8 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -161,14 +161,15 @@
/**
* 校验用户名称是否唯一
*
- * @param userName 用户名称
+ * @param user 用户信息
* @return 结果
*/
@Override
- public String checkUserNameUnique(String userName)
+ public String checkUserNameUnique(SysUser user)
{
- int count = userMapper.checkUserNameUnique(userName);
- if (count > 0)
+ Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
+ SysUser info = userMapper.checkUserNameUnique(user.getUserName());
+ if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
{
return UserConstants.NOT_UNIQUE;
}
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 9f1839c..3c1c6c5 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
@@ -130,8 +130,8 @@
where u.user_id = #{userId}
</select>
- <select id="checkUserNameUnique" parameterType="String" resultType="int">
- select count(1) from sys_user where user_name = #{userName} and del_flag = '0' limit 1
+ <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
+ select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1
</select>
<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
--
Gitblit v1.9.3