diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index ccab75b5..18dccd74 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -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); } /** diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/SysRegisterService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/SysRegisterService.java index 350338aa..d2771a2c 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/SysRegisterService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/SysRegisterService.java @@ -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) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index fe103d0e..ed57abb4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -104,7 +104,7 @@ public interface SysUserMapper * @param loginName 登录名称 * @return 结果 */ - public int checkLoginNameUnique(String loginName); + public SysUser checkLoginNameUnique(String loginName); /** * 校验手机号码是否唯一 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index c9ee1a26..b0568f4a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -143,10 +143,10 @@ public interface ISysUserService /** * 校验用户名称是否唯一 * - * @param loginName 登录名称 + * @param user 用户信息 * @return 结果 */ - public String checkLoginNameUnique(String loginName); + public String checkLoginNameUnique(SysUser user); /** * 校验手机号码是否唯一 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index f3b7a5a7..d6be73e4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -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; } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 4f68f118..5c5a441c 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -138,8 +138,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where u.email = #{email} and u.del_flag = '0' - + select user_id, login_name from sys_user where login_name=#{loginName} and del_flag = '0' limit 1