From 7306feb6ef771bce42a9df846284ad6f57efb45c Mon Sep 17 00:00:00 2001 From: hewenqiang <1527468660@qq.com> Date: 星期四, 20 一月 2022 15:24:38 +0800 Subject: [PATCH] fix 修改用户信息校验方法。 1. 校验用户名称是否唯一采用baseMapper.exists()方法判断是否存在。 2. 校验手机号码和校验email是否唯一,当存在userId时,sql查询条件才加上不等于当前userId。 --- ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java | 53 ++++++++++++++++++++++++++++++++++------------------- 1 files changed, 34 insertions(+), 19 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java index 0905ebc..cd2b019 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java @@ -8,10 +8,10 @@ import com.ruoyi.common.core.service.LogininforService; import com.ruoyi.common.enums.DeviceType; import com.ruoyi.common.enums.UserStatus; -import com.ruoyi.common.enums.UserType; import com.ruoyi.common.exception.user.CaptchaException; import com.ruoyi.common.exception.user.CaptchaExpireException; import com.ruoyi.common.exception.user.UserException; +import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.*; import com.ruoyi.common.utils.redis.RedisUtils; import lombok.RequiredArgsConstructor; @@ -60,17 +60,8 @@ throw new UserException("user.password.retry.limit.exceed", Constants.LOGIN_ERROR_LIMIT_TIME); } - SysUser user = userService.selectUserByUserName(username); - if (StringUtils.isNull(user)) { - log.info("鐧诲綍鐢ㄦ埛锛歿} 涓嶅瓨鍦�.", username); - throw new UserException("user.not.exists", username); - } else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { - log.info("鐧诲綍鐢ㄦ埛锛歿} 宸茶鍒犻櫎.", username); - throw new UserException("user.password.delete", username); - } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { - log.info("鐧诲綍鐢ㄦ埛锛歿} 宸茶鍋滅敤.", username); - throw new UserException("user.blocked", username); - } + SysUser user = loadUserByUsername(username); + if (!SecurityUtils.matchesPassword(password, user.getPassword())) { // 鏄惁绗竴娆� errorNumber = ObjectUtil.isNull(errorNumber) ? 1 : errorNumber + 1; @@ -92,15 +83,10 @@ asyncService.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"), request); recordLoginInfo(user.getUserId(), username); - LoginUser loginUser = new LoginUser(); - loginUser.setUserId(user.getUserId()); - loginUser.setDeptId(user.getDeptId()); - loginUser.setUsername(user.getUserName()); - loginUser.setMenuPermission(permissionService.getMenuPermission(user)); - loginUser.setRolePermission(permissionService.getRolePermission(user)); + LoginUser loginUser = buildLoginUser(user); // 鐢熸垚token - LoginUtils.loginByDevice(loginUser, UserType.SYS_USER, DeviceType.PC); + LoginHelper.loginByDevice(loginUser, DeviceType.PC); return StpUtil.getTokenValue(); } @@ -125,6 +111,35 @@ } } + private SysUser loadUserByUsername(String username) { + SysUser user = userService.selectUserByUserName(username); + if (StringUtils.isNull(user)) { + log.info("鐧诲綍鐢ㄦ埛锛歿} 涓嶅瓨鍦�.", username); + throw new UserException("user.not.exists", username); + } else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { + log.info("鐧诲綍鐢ㄦ埛锛歿} 宸茶鍒犻櫎.", username); + throw new UserException("user.password.delete", username); + } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { + log.info("鐧诲綍鐢ㄦ埛锛歿} 宸茶鍋滅敤.", username); + throw new UserException("user.blocked", username); + } + return user; + } + + /** + * 鏋勫缓鐧诲綍鐢ㄦ埛 + */ + private LoginUser buildLoginUser(SysUser user) { + LoginUser loginUser = new LoginUser(); + loginUser.setUserId(user.getUserId()); + loginUser.setDeptId(user.getDeptId()); + loginUser.setUsername(user.getUserName()); + loginUser.setUserType(user.getUserType()); + loginUser.setMenuPermission(permissionService.getMenuPermission(user)); + loginUser.setRolePermission(permissionService.getRolePermission(user)); + return loginUser; + } + /** * 璁板綍鐧诲綍淇℃伅 * -- Gitblit v1.9.3