From bc8849c1d80f5a8c5b8d20425aee0538350623ae Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期日, 18 九月 2022 11:26:16 +0800
Subject: [PATCH] 修改用户登录账号重复验证
---
src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java | 13 ++++++-------
src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java | 2 +-
src/main/java/com/ruoyi/project/system/service/ISysUserService.java | 4 ++--
src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java | 9 +++++----
src/main/java/com/ruoyi/project/system/controller/SysUserController.java | 8 ++++++--
src/main/resources/mybatis/system/SysUserMapper.xml | 4 ++--
6 files changed, 22 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java b/src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java
index 7c02bf1..b6fba69 100644
--- a/src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java
+++ b/src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java
@@ -41,9 +41,11 @@
public String register(RegisterBody registerBody)
{
String msg = "", username = registerBody.getUsername(), password = registerBody.getPassword();
+ SysUser sysUser = new SysUser();
+ sysUser.setUserName(username);
- boolean captchaEnabled = configService.selectCaptchaEnabled();
// 楠岃瘉鐮佸紑鍏�
+ boolean captchaEnabled = configService.selectCaptchaEnabled();
if (captchaEnabled)
{
validateCaptcha(username, registerBody.getCode(), registerBody.getUuid());
@@ -67,16 +69,14 @@
{
msg = "瀵嗙爜闀垮害蹇呴』鍦�5鍒�20涓瓧绗︿箣闂�";
}
- else if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(username)))
+ else if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(sysUser)))
{
msg = "淇濆瓨鐢ㄦ埛'" + username + "'澶辫触锛屾敞鍐岃处鍙峰凡瀛樺湪";
}
else
{
- SysUser sysUser = new SysUser();
- sysUser.setUserName(username);
sysUser.setNickName(username);
- sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword()));
+ sysUser.setPassword(SecurityUtils.encryptPassword(password));
boolean regFlag = userService.registerUser(sysUser);
if (!regFlag)
{
@@ -84,8 +84,7 @@
}
else
{
- AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.REGISTER,
- MessageUtils.message("user.register.success")));
+ AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.REGISTER, MessageUtils.message("user.register.success")));
}
}
return msg;
diff --git a/src/main/java/com/ruoyi/project/system/controller/SysUserController.java b/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
index e21fadf..ad16fee 100644
--- a/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
+++ b/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
@@ -125,7 +125,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() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪");
}
@@ -154,7 +154,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/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java b/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
index a0efb90..f08882a 100644
--- a/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
+++ b/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
@@ -109,7 +109,7 @@
* @param userName 鐢ㄦ埛鍚嶇О
* @return 缁撴灉
*/
- public int checkUserNameUnique(String userName);
+ public SysUser checkUserNameUnique(String userName);
/**
* 鏍¢獙鎵嬫満鍙风爜鏄惁鍞竴
diff --git a/src/main/java/com/ruoyi/project/system/service/ISysUserService.java b/src/main/java/com/ruoyi/project/system/service/ISysUserService.java
index 43be9a6..3985e31 100644
--- a/src/main/java/com/ruoyi/project/system/service/ISysUserService.java
+++ b/src/main/java/com/ruoyi/project/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/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
index 6d5d51a..1c0ce9c 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/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/src/main/resources/mybatis/system/SysUserMapper.xml b/src/main/resources/mybatis/system/SysUserMapper.xml
index 7609982..c0c9cfc 100644
--- a/src/main/resources/mybatis/system/SysUserMapper.xml
+++ b/src/main/resources/mybatis/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