mirror of https://gitee.com/y_project/RuoYi.git
				
				
				
			修改用户登录账号重复验证
							parent
							
								
									13287e02eb
								
							
						
					
					
						commit
						e337f685bc
					
				| 
						 | 
				
			
			@ -130,7 +130,7 @@ public class SysUserController extends BaseController
 | 
			
		|||
    @ResponseBody
 | 
			
		||||
    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() + "'失败,登录账号已存在");
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -176,7 +176,11 @@ public class SysUserController extends BaseController
 | 
			
		|||
    {
 | 
			
		||||
        userService.checkUserAllowed(user);
 | 
			
		||||
        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)))
 | 
			
		||||
        {
 | 
			
		||||
            return error("修改用户'" + user.getLoginName() + "'失败,手机号码已存在");
 | 
			
		||||
| 
						 | 
				
			
			@ -269,7 +273,7 @@ public class SysUserController extends BaseController
 | 
			
		|||
    @ResponseBody
 | 
			
		||||
    public String checkLoginNameUnique(SysUser user)
 | 
			
		||||
    {
 | 
			
		||||
        return userService.checkLoginNameUnique(user.getLoginName());
 | 
			
		||||
        return userService.checkLoginNameUnique(user);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,7 +58,7 @@ public class SysRegisterService
 | 
			
		|||
        {
 | 
			
		||||
            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 + "'失败,注册账号已存在";
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -67,7 +67,7 @@ public class SysRegisterService
 | 
			
		|||
            user.setPwdUpdateDate(DateUtils.getNowDate());
 | 
			
		||||
            user.setUserName(loginName);
 | 
			
		||||
            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);
 | 
			
		||||
            if (!regFlag)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,7 +104,7 @@ public interface SysUserMapper
 | 
			
		|||
     * @param loginName 登录名称
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    public int checkLoginNameUnique(String loginName);
 | 
			
		||||
    public SysUser checkLoginNameUnique(String loginName);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 校验手机号码是否唯一
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -143,10 +143,10 @@ public interface ISysUserService
 | 
			
		|||
    /**
 | 
			
		||||
     * 校验用户名称是否唯一
 | 
			
		||||
     * 
 | 
			
		||||
     * @param loginName 登录名称
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    public String checkLoginNameUnique(String loginName);
 | 
			
		||||
    public String checkLoginNameUnique(SysUser user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 校验手机号码是否唯一
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -347,16 +347,17 @@ public class SysUserServiceImpl implements ISysUserService
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 校验登录名称是否唯一
 | 
			
		||||
     * 校验用户名称是否唯一
 | 
			
		||||
     * 
 | 
			
		||||
     * @param loginName 用户名
 | 
			
		||||
     * @return
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public String checkLoginNameUnique(String loginName)
 | 
			
		||||
    public String checkLoginNameUnique(SysUser user)
 | 
			
		||||
    {
 | 
			
		||||
        int count = userMapper.checkLoginNameUnique(loginName);
 | 
			
		||||
        if (count > 0)
 | 
			
		||||
        Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
 | 
			
		||||
        SysUser info = userMapper.checkLoginNameUnique(user.getLoginName());
 | 
			
		||||
        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
 | 
			
		||||
        {
 | 
			
		||||
            return UserConstants.USER_NAME_NOT_UNIQUE;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,8 +138,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 | 
			
		|||
		where u.email = #{email} and u.del_flag = '0'
 | 
			
		||||
	</select>
 | 
			
		||||
	
 | 
			
		||||
	<select id="checkLoginNameUnique" parameterType="String" resultType="int">
 | 
			
		||||
		select count(1) from sys_user where login_name=#{loginName} and del_flag = '0' limit 1
 | 
			
		||||
	<select id="checkLoginNameUnique" parameterType="String" resultMap="SysUserResult">
 | 
			
		||||
		select user_id, login_name from sys_user where login_name=#{loginName} and del_flag = '0' limit 1
 | 
			
		||||
	</select>
 | 
			
		||||
	
 | 
			
		||||
	<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue