diff --git a/server/like-front/src/main/java/com/mdd/front/controller/UserController.java b/server/like-front/src/main/java/com/mdd/front/controller/UserController.java index e7fcd02d..4a5bd481 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/UserController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/UserController.java @@ -64,6 +64,24 @@ public class UserController { return AjaxResult.success(); } + /** + * 修改密码 + * + * @author fzr + * @param params 参数 + * @return Object + */ + @PostMapping("/changePwd") + public Object changePwd(@RequestBody Map params) { + Assert.notNull(params.get("password"), "password参数缺失"); + if(!Pattern.matches("^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$", params.get("password"))){ + throw new OperateException("密码必须是6-20字母+数字组合!"); + } + Integer userId = LikeFrontThreadLocal.getUserId(); + iUserService.changePwd(params.get("password"), userId); + return AjaxResult.success(); + } + /** * 绑定手机号 * diff --git a/server/like-front/src/main/java/com/mdd/front/service/IUserService.java b/server/like-front/src/main/java/com/mdd/front/service/IUserService.java index f8ad4ea8..bb7f987c 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/IUserService.java +++ b/server/like-front/src/main/java/com/mdd/front/service/IUserService.java @@ -37,6 +37,15 @@ public interface IUserService { */ void edit(Map params, Integer userId); + /** + * 修改密码 + * + * @author fzr + * @param password 新密码 + * @param userId 用户ID + */ + void changePwd(String password, Integer userId); + /** * 绑定手机 * diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/UserServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/UserServiceImpl.java index 1af9676f..d860ab9e 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/UserServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/UserServiceImpl.java @@ -163,6 +163,25 @@ public class UserServiceImpl implements IUserService { } } + /** + * 修改密码 + * + * @author fzr + * @param password 新密码 + * @param userId 用户ID + */ + @Override + public void changePwd(String password, Integer userId) { + String salt = ToolsUtil.randomString(5); + String pwd = ToolsUtil.makeMd5(password.trim()+salt); + + User user = new User(); + user.setPassword(pwd); + user.setSalt(salt); + user.setUpdateTime(System.currentTimeMillis() / 1000); + userMapper.updateById(user); + } + /** * 绑定手机 * diff --git a/server/like-front/src/main/java/com/mdd/front/validate/RegParam.java b/server/like-front/src/main/java/com/mdd/front/validate/RegParam.java index ed0359ce..3d20071d 100644 --- a/server/like-front/src/main/java/com/mdd/front/validate/RegParam.java +++ b/server/like-front/src/main/java/com/mdd/front/validate/RegParam.java @@ -25,7 +25,7 @@ public class RegParam implements Serializable { @NotEmpty(message = "账号不能为空") @Length(min = 3, max = 12, message = "账号必须在3~12个字符内") @Pattern(message = "账号只允许是字母和数字", regexp="^[A-Za-z0-9]+$") - @Pattern(message = "账号应该为3-12位字母、数字组合", regexp="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{3,12}$") + @Pattern(message = "账号应该为3-12位数字、字母组合", regexp="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{3,12}$") private String username; @NotNull(message = "password参数缺失")