修改用户登录账号重复验证

master
RuoYi 2022-09-18 11:25:03 +08:00
parent 13287e02eb
commit e337f685bc
6 changed files with 21 additions and 16 deletions

View File

@ -130,7 +130,7 @@ public class SysUserController extends BaseController
@ResponseBody @ResponseBody
public AjaxResult addSave(@Validated SysUser user) public AjaxResult addSave(@Validated SysUser user)
{ {
if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkLoginNameUnique(user.getLoginName()))) if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkLoginNameUnique(user)))
{ {
return error("新增用户'" + user.getLoginName() + "'失败,登录账号已存在"); return error("新增用户'" + user.getLoginName() + "'失败,登录账号已存在");
} }
@ -176,7 +176,11 @@ public class SysUserController extends BaseController
{ {
userService.checkUserAllowed(user); userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId()); userService.checkUserDataScope(user.getUserId());
if (StringUtils.isNotEmpty(user.getPhonenumber()) if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkLoginNameUnique(user)))
{
return error("修改用户'" + user.getLoginName() + "'失败,登录账号已存在");
}
else if (StringUtils.isNotEmpty(user.getPhonenumber())
&& UserConstants.USER_PHONE_NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) && UserConstants.USER_PHONE_NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
{ {
return error("修改用户'" + user.getLoginName() + "'失败,手机号码已存在"); return error("修改用户'" + user.getLoginName() + "'失败,手机号码已存在");
@ -269,7 +273,7 @@ public class SysUserController extends BaseController
@ResponseBody @ResponseBody
public String checkLoginNameUnique(SysUser user) public String checkLoginNameUnique(SysUser user)
{ {
return userService.checkLoginNameUnique(user.getLoginName()); return userService.checkLoginNameUnique(user);
} }
/** /**

View File

@ -58,7 +58,7 @@ public class SysRegisterService
{ {
msg = "账户长度必须在2到20个字符之间"; msg = "账户长度必须在2到20个字符之间";
} }
else if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkLoginNameUnique(loginName))) else if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkLoginNameUnique(user)))
{ {
msg = "保存用户'" + loginName + "'失败,注册账号已存在"; msg = "保存用户'" + loginName + "'失败,注册账号已存在";
} }
@ -67,7 +67,7 @@ public class SysRegisterService
user.setPwdUpdateDate(DateUtils.getNowDate()); user.setPwdUpdateDate(DateUtils.getNowDate());
user.setUserName(loginName); user.setUserName(loginName);
user.setSalt(ShiroUtils.randomSalt()); user.setSalt(ShiroUtils.randomSalt());
user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt())); user.setPassword(passwordService.encryptPassword(loginName, password, user.getSalt()));
boolean regFlag = userService.registerUser(user); boolean regFlag = userService.registerUser(user);
if (!regFlag) if (!regFlag)
{ {

View File

@ -104,7 +104,7 @@ public interface SysUserMapper
* @param loginName * @param loginName
* @return * @return
*/ */
public int checkLoginNameUnique(String loginName); public SysUser checkLoginNameUnique(String loginName);
/** /**
* *

View File

@ -143,10 +143,10 @@ public interface ISysUserService
/** /**
* *
* *
* @param loginName * @param user
* @return * @return
*/ */
public String checkLoginNameUnique(String loginName); public String checkLoginNameUnique(SysUser user);
/** /**
* *

View File

@ -347,16 +347,17 @@ public class SysUserServiceImpl implements ISysUserService
} }
/** /**
* *
* *
* @param loginName * @param user
* @return * @return
*/ */
@Override @Override
public String checkLoginNameUnique(String loginName) public String checkLoginNameUnique(SysUser user)
{ {
int count = userMapper.checkLoginNameUnique(loginName); Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
if (count > 0) SysUser info = userMapper.checkLoginNameUnique(user.getLoginName());
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
{ {
return UserConstants.USER_NAME_NOT_UNIQUE; return UserConstants.USER_NAME_NOT_UNIQUE;
} }

View File

@ -138,8 +138,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where u.email = #{email} and u.del_flag = '0' where u.email = #{email} and u.del_flag = '0'
</select> </select>
<select id="checkLoginNameUnique" parameterType="String" resultType="int"> <select id="checkLoginNameUnique" parameterType="String" resultMap="SysUserResult">
select count(1) from sys_user where login_name=#{loginName} and del_flag = '0' limit 1 select user_id, login_name from sys_user where login_name=#{loginName} and del_flag = '0' limit 1
</select> </select>
<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult"> <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">