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..1047731 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,8 @@ public class TokenController { @PostMapping("login") public Result login (@RequestBody LoginBody form) { // 用户登录 - LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); +// LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); + LoginUser userInfo = sysLoginService.login(form.getEmail(), form.getPassword()); // 获取登录token return Result.success(tokenService.createToken(userInfo)); } @@ -66,7 +67,7 @@ public class TokenController { @PostMapping("register") public Result register (@RequestBody RegisterBody registerBody) { // 用户注册 - sysLoginService.register(registerBody.getUsername(), registerBody.getPassword()); + sysLoginService.register(registerBody.getEmail(), 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..8ba4200 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 @@ -1,34 +1,51 @@ package com.muyu.auth.form; +import lombok.Data; + /** * 用户登录对象 * * @author muyu */ +@Data public class LoginBody { /** * 用户名 */ private String username; + + /** + * 邮箱 + */ + private String email; + +// public LoginBody() { +// } + +// public LoginBody(String email) { +// this.email = email; +// } +// ----------------------- + /** * 用户密码 */ private String password; - public String getUsername () { - return username; - } - - public void setUsername (String username) { - this.username = username; - } - - public String getPassword () { - return password; - } - - public void setPassword (String password) { - this.password = password; - } +// public String getUsername () { +// return username; +// } +// +// public void setUsername (String username) { +// this.username = username; +// } +// +// public String getPassword () { +// return 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..a3e78fb 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,43 @@ public class SysLoginService { /** * 登录 */ - public LoginUser login (String username, String password) { + public LoginUser login (String email, String password) { +// public LoginUser login (String username, String password) { // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(username, password)) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写"); - throw new ServiceException("用户/密码必须填写"); +// if (StringUtils.isAnyBlank(username, password)) { + if (StringUtils.isAnyBlank(email, password)) { +// recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写"); + recordLogService.recordLogininfor(email, 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, "用户密码不在指定范围"); +// recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户密码不在指定范围"); + recordLogService.recordLogininfor(email, 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 (email.length() < UserConstants.USERNAME_MIN_LENGTH + || email.length() > UserConstants.USERNAME_MAX_LENGTH) { + recordLogService.recordLogininfor(email, 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(email, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单"); throw new ServiceException("很遗憾,访问IP已被列入系统黑名单"); } // 查询用户信息 - Result userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); +// Result userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); + Result userResult = remoteUserService.getUserInfo(email, SecurityConstants.INNER); if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在"); - throw new ServiceException("登录用户:" + username + " 不存在"); +// recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在"); + recordLogService.recordLogininfor(email, Constants.LOGIN_FAIL, "登录用户不存在"); +// throw new ServiceException("登录用户:" + username + " 不存在"); + throw new ServiceException("登录用户:" + email + " 不存在"); } if (Result.FAIL == userResult.getCode()) { @@ -79,15 +86,19 @@ 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(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除"); + recordLogService.recordLogininfor(email, Constants.LOGIN_FAIL, "对不起,您的账号已被删除"); +// throw new ServiceException("对不起,您的账号:" + username + " 已被删除"); + throw new ServiceException("对不起,您的账号:" + email + " 已被删除"); } if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员"); - throw new ServiceException("对不起,您的账号:" + username + " 已停用"); +// recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员"); + recordLogService.recordLogininfor(email, Constants.LOGIN_FAIL, "用户已停用,请联系管理员"); + throw new ServiceException("对不起,您的账号:" + email + " 已停用"); } passwordService.validate(user, password); - recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功"); +// recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功"); + recordLogService.recordLogininfor(email, Constants.LOGIN_SUCCESS, "登录成功"); return userInfo; } @@ -98,13 +109,15 @@ public class SysLoginService { /** * 注册 */ - public void register (String username, String password) { +// public void register (String username, String password) { + public void register (String email, String password) { // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(username, password)) { +// if (StringUtils.isAnyBlank(username, password)) { + if (StringUtils.isAnyBlank(email, password)) { throw new ServiceException("用户/密码必须填写"); } - if (username.length() < UserConstants.USERNAME_MIN_LENGTH - || username.length() > UserConstants.USERNAME_MAX_LENGTH) { + if (email.length() < UserConstants.USERNAME_MIN_LENGTH + || email.length() > UserConstants.USERNAME_MAX_LENGTH) { throw new ServiceException("账户长度必须在2到20个字符之间"); } if (password.length() < UserConstants.PASSWORD_MIN_LENGTH @@ -114,14 +127,15 @@ public class SysLoginService { // 注册用户信息 SysUser sysUser = new SysUser(); - sysUser.setUserName(username); - sysUser.setNickName(username); + sysUser.setUserName(email); + sysUser.setNickName(email); 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(username, Constants.REGISTER, "注册成功"); + recordLogService.recordLogininfor(email, 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..a8f4435 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 @@ -28,9 +28,11 @@ public class SysRecordLogService { * * @return */ - public void recordLogininfor (String username, String status, String message) { +// public void recordLogininfor (String username, String status, String message) { + public void recordLogininfor (String email, String status, String message) { SysLogininfor logininfor = new SysLogininfor(); - logininfor.setUserName(username); +// logininfor.setUserName(username); + logininfor.setUserName(email); logininfor.setIpaddr(IpUtils.getIpAddr()); logininfor.setMsg(message); // 日志状态 diff --git a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/LoginUser.java b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/LoginUser.java index ce39e96..2854a0e 100644 --- a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/LoginUser.java +++ b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/LoginUser.java @@ -1,6 +1,11 @@ package com.muyu.common.system.domain; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + import java.io.Serializable; import java.util.Set; @@ -9,6 +14,10 @@ import java.util.Set; * * @author muyu */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class LoginUser implements Serializable { private static final long serialVersionUID = 1L; @@ -26,6 +35,12 @@ public class LoginUser implements Serializable { * 用户名 */ private String username; +//---------------------- + /** + * 邮箱 + */ + private String email; +// ------------------ /** * 登录时间 diff --git a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/SysLogininfor.java b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/SysLogininfor.java index 9ad179f..5bf1e1b 100644 --- a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/SysLogininfor.java +++ b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/SysLogininfor.java @@ -37,6 +37,8 @@ public class SysLogininfor extends BaseEntity { @Excel(name = "用户账号") private String userName; + + /** * 状态 0成功 1失败 */ 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..f921a2d 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 @@ -16,16 +16,19 @@ import org.springframework.web.bind.annotation.*; */ @FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class) public interface RemoteUserService { + + /** * 通过用户名查询用户信息 * - * @param username 用户名 + * @param email 用户名 * @param source 请求来源 * * @return 结果 */ - @GetMapping("/user/info/{username}") - public Result getUserInfo (@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +// @GetMapping("/user/info/{username}") + @GetMapping("/user/info/{email}") + public Result getUserInfo (@PathVariable("email") String email, @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..3791ffe 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,8 @@ public class RemoteUserFallbackFactory implements FallbackFactory getUserInfo (String username, String source) { +// public Result getUserInfo (String username, String source) { + public Result getUserInfo (String email, 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..e59ec54 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 @@ -9,10 +9,10 @@ import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.service.TokenService; import com.muyu.common.security.utils.SecurityUtils; -import com.muyu.common.system.remote.RemoteFileService; +import com.muyu.common.system.domain.LoginUser; import com.muyu.common.system.domain.SysFile; import com.muyu.common.system.domain.SysUser; -import com.muyu.common.system.domain.LoginUser; +import com.muyu.common.system.remote.RemoteFileService; import com.muyu.system.domain.resp.ProfileResp; import com.muyu.system.service.SysUserService; import org.springframework.beans.factory.annotation.Autowired; @@ -44,7 +44,8 @@ public class SysProfileController extends BaseController { @GetMapping public Result profile () { String username = SecurityUtils.getUsername(); - SysUser user = userService.selectUserByUserName(username); +// SysUser user = userService.selectUserByUserName(username); + SysUser user = userService.selectUserByUserEmail(username); return Result.success( ProfileResp.builder() .roleGroup( userService.selectUserRoleGroup(username) ) @@ -87,7 +88,8 @@ 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.selectUserByUserName(username); + SysUser user = userService.selectUserByUserEmail(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..4e90134 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,12 @@ public class SysUserController extends BaseController { * 获取当前用户信息 */ @InnerAuth - @GetMapping("/info/{username}") - public Result info (@PathVariable("username") String username) { - SysUser sysUser = userService.selectUserByUserName(username); +// @GetMapping("/info/{username}") + @GetMapping("/info/{email}") +// public Result info (@PathVariable("username") String username) { + public Result info (@PathVariable("email") String email) { +// SysUser sysUser = userService.selectUserByUserName(username); + SysUser sysUser = userService.selectUserByUserEmail(email); if (StringUtils.isNull(sysUser)) { return Result.error("用户名或密码错误"); } @@ -120,12 +123,14 @@ public class SysUserController extends BaseController { @InnerAuth @PostMapping("/register") public Result register (@RequestBody SysUser sysUser) { - String username = sysUser.getUserName(); +// String username = sysUser.getUserName(); + String email = sysUser.getUserName(); if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { return Result.error("当前系统没有开启注册功能!"); } if (!userService.checkUserNameUnique(sysUser)) { - return Result.error("保存用户'" + username + "'失败,注册账号已存在"); +// return Result.error("保存用户'" + username + "'失败,注册账号已存在"); + return Result.error("保存用户'" + email + "'失败,注册账号已存在"); } return Result.success(userService.registerUser(sysUser)); } 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..1b83e75 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 @@ -46,7 +46,8 @@ public interface SysUserMapper extends BaseMapper { * * @return 用户对象信息 */ - public SysUser selectUserByUserName (String userName); +// public SysUser selectUserByUserName (String userName); + public SysUser selectUserByUserEmail (String email); /** * 通过用户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..2a51f97 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 @@ -41,11 +41,12 @@ public interface SysUserService extends IService { /** * 通过用户名查询用户 * - * @param userName 用户名 + * @param email 用户名 * * @return 用户对象信息 */ - public SysUser selectUserByUserName (String userName); +// public SysUser selectUserByUserName (String userName); + public SysUser selectUserByUserEmail (String email); /** * 通过用户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..ffebe14 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 @@ -97,9 +97,15 @@ public class SysUserServiceImpl extends ServiceImpl impl * * @return 用户对象信息 */ +// @Override +// public SysUser selectUserByUserName (String userName) { +// return userMapper.selectUserByUserName(userName); +// } + @Override - public SysUser selectUserByUserName (String userName) { - return userMapper.selectUserByUserName(userName); + public SysUser selectUserByUserEmail (String email) { +// public SysUser selectUserByUserEmail (String userName) { + return userMapper.selectUserByUserEmail(email); } /** @@ -463,7 +469,8 @@ public class SysUserServiceImpl extends ServiceImpl impl for (SysUser user : userList) { try { // 验证是否存在这个用户 - SysUser u = userMapper.selectUserByUserName(user.getUserName()); +// SysUser u = userMapper.selectUserByUserName(user.getUserName()); + SysUser u = userMapper.selectUserByUserEmail(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..950c3d7 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 @@ -149,10 +149,11 @@ ${params.dataScope} + - - where u.user_name = #{userName} and u.del_flag = '0' + where u.user_name = #{email} or u.email =#{email} and u.del_flag = '0'