RuoYi
2022-09-18 bc8849c1d80f5a8c5b8d20425aee0538350623ae
修改用户登录账号重复验证
已修改6个文件
40 ■■■■■ 文件已修改
src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/controller/SysUserController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/service/ISysUserService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mybatis/system/SysUserMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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() + "'失败,手机号码已存在");
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);
    /**
     * 校验手机号码是否唯一
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);
    /**
     * 校验手机号码是否唯一
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;
        }
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">