From bfe96e702d5338b7dde0c22a04e319a9febf17c6 Mon Sep 17 00:00:00 2001 From: sunshine7058 <2564255161@qq.com> Date: Fri, 12 Apr 2024 15:52:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=99=BB=E5=BD=95=E6=97=A0?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/auth/controller/TokenController.java | 4 +- .../java/com/muyu/auth/form/LoginBody.java | 16 +++--- .../muyu/auth/service/SysLoginService.java | 54 +++++++++---------- .../auth/service/SysRecordLogService.java | 6 +-- .../system/remote/RemoteUserService.java | 6 +-- .../factory/RemoteUserFallbackFactory.java | 2 +- .../controller/SysProfileController.java | 14 ++--- .../system/controller/SysUserController.java | 38 ++++++------- .../com/muyu/system/mapper/SysUserMapper.java | 6 +-- .../muyu/system/service/SysUserService.java | 6 +-- .../service/impl/SysUserServiceImpl.java | 10 ++-- .../resources/mapper/system/SysUserMapper.xml | 14 ++--- 12 files changed, 88 insertions(+), 88 deletions(-) diff --git a/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java b/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java index 960a13f..c35460b 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java +++ b/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java @@ -34,7 +34,7 @@ public class TokenController { @PostMapping("login") public Result login (@RequestBody LoginBody form) { // 用户登录 - LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); + LoginUser userInfo = sysLoginService.login(form.getUsernameOrEmail(), form.getPassword()); // 获取登录token return Result.success(tokenService.createToken(userInfo)); } @@ -66,7 +66,7 @@ public class TokenController { @PostMapping("register") public Result register (@RequestBody RegisterBody registerBody) { // 用户注册 - sysLoginService.register(registerBody.getUsername(), registerBody.getPassword()); + sysLoginService.register(registerBody.getUsernameOrEmail(), registerBody.getPassword()); return Result.success(); } } diff --git a/muyu-auth/src/main/java/com/muyu/auth/form/LoginBody.java b/muyu-auth/src/main/java/com/muyu/auth/form/LoginBody.java index 999ad44..4b87346 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/form/LoginBody.java +++ b/muyu-auth/src/main/java/com/muyu/auth/form/LoginBody.java @@ -7,28 +7,28 @@ package com.muyu.auth.form; */ public class LoginBody { /** - * 用户名 + * 用户名或邮箱 */ - private String username; + private String usernameOrEmail; /** * 用户密码 */ private String password; - public String getUsername () { - return username; + public String getUsernameOrEmail() { + return usernameOrEmail; } - public void setUsername (String username) { - this.username = username; + public void setUsernameOrEmail(String usernameOrEmail) { + this.usernameOrEmail = usernameOrEmail; } - public String getPassword () { + public String getPassword() { return password; } - public void setPassword (String password) { + public void setPassword(String password) { this.password = password; } } diff --git a/muyu-auth/src/main/java/com/muyu/auth/service/SysLoginService.java b/muyu-auth/src/main/java/com/muyu/auth/service/SysLoginService.java index ff0af1a..ad8deed 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/service/SysLoginService.java +++ b/muyu-auth/src/main/java/com/muyu/auth/service/SysLoginService.java @@ -40,36 +40,36 @@ public class SysLoginService { /** * 登录 */ - public LoginUser login (String username, String password) { + public LoginUser login (String usernameOrEmail, String password) { // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(username, password)) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写"); - throw new ServiceException("用户/密码必须填写"); + if (StringUtils.isAnyBlank(usernameOrEmail, password)) { + recordLogService.recordLogininfor(usernameOrEmail, Constants.LOGIN_FAIL, "用户/邮箱/密码必须填写"); + throw new ServiceException("用户/邮箱/密码必须填写"); } // 密码如果不在指定范围内 错误 if (password.length() < UserConstants.PASSWORD_MIN_LENGTH - || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户密码不在指定范围"); + || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { + recordLogService.recordLogininfor(usernameOrEmail, Constants.LOGIN_FAIL, "用户密码不在指定范围"); throw new ServiceException("用户密码不在指定范围"); } // 用户名不在指定范围内 错误 - if (username.length() < UserConstants.USERNAME_MIN_LENGTH - || username.length() > UserConstants.USERNAME_MAX_LENGTH) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户名不在指定范围"); + if (usernameOrEmail.length() < UserConstants.USERNAME_MIN_LENGTH + || usernameOrEmail.length() > UserConstants.USERNAME_MAX_LENGTH) { + recordLogService.recordLogininfor(usernameOrEmail, Constants.LOGIN_FAIL, "用户名不在指定范围"); throw new ServiceException("用户名不在指定范围"); } // IP黑名单校验 String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST)); if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单"); + recordLogService.recordLogininfor(usernameOrEmail, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单"); throw new ServiceException("很遗憾,访问IP已被列入系统黑名单"); } // 查询用户信息 - Result userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); + Result userResult = remoteUserService.getUserInfo(usernameOrEmail, SecurityConstants.INNER); if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在"); - throw new ServiceException("登录用户:" + username + " 不存在"); + recordLogService.recordLogininfor(usernameOrEmail, Constants.LOGIN_FAIL, "登录用户不存在"); + throw new ServiceException("登录用户:" + usernameOrEmail + " 不存在"); } if (Result.FAIL == userResult.getCode()) { @@ -79,15 +79,15 @@ public class SysLoginService { LoginUser userInfo = userResult.getData(); SysUser user = userResult.getData().getSysUser(); if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除"); - throw new ServiceException("对不起,您的账号:" + username + " 已被删除"); + recordLogService.recordLogininfor(usernameOrEmail, Constants.LOGIN_FAIL, "对不起,您的账号已被删除"); + throw new ServiceException("对不起,您的账号:" + usernameOrEmail + " 已被删除"); } if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员"); - throw new ServiceException("对不起,您的账号:" + username + " 已停用"); + recordLogService.recordLogininfor(usernameOrEmail, Constants.LOGIN_FAIL, "用户已停用,请联系管理员"); + throw new ServiceException("对不起,您的账号:" + usernameOrEmail + " 已停用"); } passwordService.validate(user, password); - recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功"); + recordLogService.recordLogininfor(usernameOrEmail, Constants.LOGIN_SUCCESS, "登录成功"); return userInfo; } @@ -98,30 +98,30 @@ public class SysLoginService { /** * 注册 */ - public void register (String username, String password) { + public void register (String usernameOrEmail, String password) { // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(username, password)) { - throw new ServiceException("用户/密码必须填写"); + if (StringUtils.isAnyBlank(usernameOrEmail, password)) { + throw new ServiceException("用户/邮箱/密码必须填写"); } - if (username.length() < UserConstants.USERNAME_MIN_LENGTH - || username.length() > UserConstants.USERNAME_MAX_LENGTH) { + if (usernameOrEmail.length() < UserConstants.USERNAME_MIN_LENGTH + || usernameOrEmail.length() > UserConstants.USERNAME_MAX_LENGTH) { throw new ServiceException("账户长度必须在2到20个字符之间"); } if (password.length() < UserConstants.PASSWORD_MIN_LENGTH - || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { + || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { throw new ServiceException("密码长度必须在5到20个字符之间"); } // 注册用户信息 SysUser sysUser = new SysUser(); - sysUser.setUserName(username); - sysUser.setNickName(username); + sysUser.setUserName(usernameOrEmail); + sysUser.setNickName(usernameOrEmail); sysUser.setPassword(SecurityUtils.encryptPassword(password)); Result registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER); if (Result.FAIL == registerResult.getCode()) { throw new ServiceException(registerResult.getMsg()); } - recordLogService.recordLogininfor(username, Constants.REGISTER, "注册成功"); + recordLogService.recordLogininfor(usernameOrEmail, Constants.REGISTER, "注册成功"); } } diff --git a/muyu-auth/src/main/java/com/muyu/auth/service/SysRecordLogService.java b/muyu-auth/src/main/java/com/muyu/auth/service/SysRecordLogService.java index 2d4de80..6dd3d5f 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/service/SysRecordLogService.java +++ b/muyu-auth/src/main/java/com/muyu/auth/service/SysRecordLogService.java @@ -22,15 +22,15 @@ public class SysRecordLogService { /** * 记录登录信息 * - * @param username 用户名 + * @param usernameOrEmail 用户名/邮箱 * @param status 状态 * @param message 消息内容 * * @return */ - public void recordLogininfor (String username, String status, String message) { + public void recordLogininfor (String usernameOrEmail, String status, String message) { SysLogininfor logininfor = new SysLogininfor(); - logininfor.setUserName(username); + logininfor.setUserName(usernameOrEmail); logininfor.setIpaddr(IpUtils.getIpAddr()); logininfor.setMsg(message); // 日志状态 diff --git a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java index cb968e0..53c9625 100644 --- a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java +++ b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java @@ -19,13 +19,13 @@ public interface RemoteUserService { /** * 通过用户名查询用户信息 * - * @param username 用户名 + * @param usernameOrEmail 用户名/邮箱 * @param source 请求来源 * * @return 结果 */ - @GetMapping("/user/info/{username}") - public Result getUserInfo (@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + @GetMapping("/user/info/{usernameOrEmail}") + public Result getUserInfo (@PathVariable("usernameOrEmail") String usernameOrEmail, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 注册用户信息 diff --git a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java index b7f4d60..29e45dc 100644 --- a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java +++ b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java @@ -23,7 +23,7 @@ public class RemoteUserFallbackFactory implements FallbackFactory getUserInfo (String username, String source) { + public Result getUserInfo (String usernameOrEmail, String source) { return Result.error("获取用户失败:" + throwable.getMessage()); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysProfileController.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysProfileController.java index ae49255..c759cd0 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysProfileController.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysProfileController.java @@ -44,13 +44,13 @@ public class SysProfileController extends BaseController { @GetMapping public Result profile () { String username = SecurityUtils.getUsername(); - SysUser user = userService.selectUserByUserName(username); + SysUser user = userService.selectUserByUsernameOrEmail(username); return Result.success( - ProfileResp.builder() - .roleGroup( userService.selectUserRoleGroup(username) ) - .postGroup( userService.selectUserPostGroup(username) ) - .sysUser(user) - .build() + ProfileResp.builder() + .roleGroup( userService.selectUserRoleGroup(username) ) + .postGroup( userService.selectUserPostGroup(username) ) + .sysUser(user) + .build() ); } @@ -87,7 +87,7 @@ public class SysProfileController extends BaseController { @PutMapping("/updatePwd") public Result updatePwd (String oldPassword, String newPassword) { String username = SecurityUtils.getUsername(); - SysUser user = userService.selectUserByUserName(username); + SysUser user = userService.selectUserByUsernameOrEmail(username); String password = user.getPassword(); if (!SecurityUtils.matchesPassword(oldPassword, password)) { return error("修改密码失败,旧密码错误"); diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysUserController.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysUserController.java index 9811a0e..3c73b2e 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysUserController.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysUserController.java @@ -97,9 +97,9 @@ public class SysUserController extends BaseController { * 获取当前用户信息 */ @InnerAuth - @GetMapping("/info/{username}") - public Result info (@PathVariable("username") String username) { - SysUser sysUser = userService.selectUserByUserName(username); + @GetMapping("/info/{usernameOrEmail}") + public Result info (@PathVariable("usernameOrEmail") String usernameOrEmail) { + SysUser sysUser = userService.selectUserByUsernameOrEmail(usernameOrEmail); if (StringUtils.isNull(sysUser)) { return Result.error("用户名或密码错误"); } @@ -120,12 +120,12 @@ public class SysUserController extends BaseController { @InnerAuth @PostMapping("/register") public Result register (@RequestBody SysUser sysUser) { - String username = sysUser.getUserName(); + String usernameOrEmail = sysUser.getUserName(); if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { return Result.error("当前系统没有开启注册功能!"); } if (!userService.checkUserNameUnique(sysUser)) { - return Result.error("保存用户'" + username + "'失败,注册账号已存在"); + return Result.error("保存用户'" + usernameOrEmail + "'失败,注册账号已存在"); } return Result.success(userService.registerUser(sysUser)); } @@ -144,11 +144,11 @@ public class SysUserController extends BaseController { Set permissions = permissionService.getMenuPermission(user); return Result.success( - UserInfoResp.builder() - .user(user) - .roles(roles) - .permissions(permissions) - .build() + UserInfoResp.builder() + .user(user) + .roles(roles) + .permissions(permissions) + .build() ); } @@ -163,14 +163,14 @@ public class SysUserController extends BaseController { List roles = roleService.selectRoleAll(); builder.roles( SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()) - ) - .posts( postService.selectPostAll() ); + ) + .posts( postService.selectPostAll() ); if (StringUtils.isNotNull(userId)) { SysUser sysUser = userService.selectUserById(userId); builder.sysUser(sysUser) - .postIds(postService.selectPostListByUserId(userId)) - .roleIds(sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())) - .build(); + .postIds(postService.selectPostListByUserId(userId)) + .roleIds(sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())) + .build(); } return Result.success(builder.build()); } @@ -263,10 +263,10 @@ public class SysUserController extends BaseController { SysUser user = userService.selectUserById(userId); List roles = roleService.selectRolesByUserId(userId); return Result.success( - AuthRoleResp.builder() - .roles(SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())) - .user(user) - .build() + AuthRoleResp.builder() + .roles(SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())) + .user(user) + .build() ); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java index e037b34..000d5b9 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java @@ -40,13 +40,13 @@ public interface SysUserMapper extends BaseMapper { public List selectUnallocatedList (SysUser user); /** - * 通过用户名查询用户 + * 通过用户名/邮箱查询用户 * - * @param userName 用户名 + * @param usernameOrEmail 用户名/邮箱 * * @return 用户对象信息 */ - public SysUser selectUserByUserName (String userName); + public SysUser selectUserByUsernameOrEmail (String usernameOrEmail); /** * 通过用户ID查询用户 diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysUserService.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysUserService.java index f4c6167..9748402 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysUserService.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysUserService.java @@ -39,13 +39,13 @@ public interface SysUserService extends IService { public List selectUnallocatedList (SysUser user); /** - * 通过用户名查询用户 + * 通过用户名/邮箱查询用户 * - * @param userName 用户名 + * @param usernameOrEmail 用户名/邮箱 * * @return 用户对象信息 */ - public SysUser selectUserByUserName (String userName); + public SysUser selectUserByUsernameOrEmail (String usernameOrEmail); /** * 通过用户ID查询用户 diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java index ab88e1c..a94d02c 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java @@ -91,15 +91,15 @@ public class SysUserServiceImpl extends ServiceImpl impl } /** - * 通过用户名查询用户 + * 通过用户名/邮箱查询用户 * - * @param userName 用户名 + * @param userName 用户名/邮箱 * * @return 用户对象信息 */ @Override - public SysUser selectUserByUserName (String userName) { - return userMapper.selectUserByUserName(userName); + public SysUser selectUserByUsernameOrEmail (String userName) { + return userMapper.selectUserByUsernameOrEmail(userName); } /** @@ -463,7 +463,7 @@ public class SysUserServiceImpl extends ServiceImpl impl for (SysUser user : userList) { try { // 验证是否存在这个用户 - SysUser u = userMapper.selectUserByUserName(user.getUserName()); + SysUser u = userMapper.selectUserByUsernameOrEmail(user.getUserName()); if (StringUtils.isNull(u)) { BeanValidators.validateWithException(validator, user); user.setPassword(SecurityUtils.encryptPassword(password)); diff --git a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysUserMapper.xml b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysUserMapper.xml index 6f633b7..e5f3cf5 100644 --- a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -1,7 +1,7 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> @@ -150,9 +150,9 @@ ${params.dataScope} - - where u.user_name = #{userName} and u.del_flag = '0' + where u.user_name = #{usernameOrEmail} or u.email = #{usernameOrEmail} and u.del_flag = '0'