From 23c490c39ca2b8110b10f99c9ec74ddc9fa7d433 Mon Sep 17 00:00:00 2001 From: laishajiang <12977614+laishajiang@user.noreply.gitee.com> Date: Tue, 5 Mar 2024 17:12:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/biutag/enums/ErrorEnum.java | 4 ++- .../system/SystemLoginController.java | 10 ++++++ .../lan/service/ISystemLoginService.java | 2 ++ .../service/impl/SystemLoginServiceImpl.java | 35 +++++++++++++++++++ .../system/ResetPasswordValidate.java | 31 ++++++++++++++++ 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 mailbox-lan/src/main/java/com/biutag/lan/validate/system/ResetPasswordValidate.java diff --git a/mailbox-common/src/main/java/com/biutag/enums/ErrorEnum.java b/mailbox-common/src/main/java/com/biutag/enums/ErrorEnum.java index e1a1867..c2256d5 100644 --- a/mailbox-common/src/main/java/com/biutag/enums/ErrorEnum.java +++ b/mailbox-common/src/main/java/com/biutag/enums/ErrorEnum.java @@ -9,7 +9,7 @@ public enum ErrorEnum { REQUEST_METHOD_ERROR(312, "请求方法错误"), ASSERT_ARGUMENT_ERROR(313, "断言参数错误"), ASSERT_MYBATIS_ERROR(314, "断言Mybatis错误"), - + REST_PASSWOED_FAILED(350, "密码错误"), LOGIN_ACCOUNT_ERROR(330, "登录账号或密码错误"), LOGIN_DISABLE_ERROR(331, "登录账号已被禁用了"), @@ -24,6 +24,8 @@ public enum ErrorEnum { SYSTEM_ERROR(500, "系统错误"); + + /** * 构造方法 */ diff --git a/mailbox-lan/src/main/java/com/biutag/lan/controller/system/SystemLoginController.java b/mailbox-lan/src/main/java/com/biutag/lan/controller/system/SystemLoginController.java index 3f117f9..0f1c988 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/controller/system/SystemLoginController.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/controller/system/SystemLoginController.java @@ -4,6 +4,7 @@ import com.biutag.aop.NotLogin; import com.biutag.aop.NotPower; import com.biutag.lan.service.ISystemLoginService; import com.biutag.lan.validate.system.PoliceUserLoginsValidate; +import com.biutag.lan.validate.system.ResetPasswordValidate; import com.biutag.lan.vo.system.SystemCaptchaVo; import com.biutag.lan.vo.system.SystemLoginVo; import com.biutag.core.AjaxResult; @@ -47,4 +48,13 @@ public class SystemLoginController { return AjaxResult.success(); } + + @NotPower + @PostMapping("/resetPassword") + @ApiOperation(value="重置密码") + public AjaxResult resetPassword(@Validated() @RequestBody ResetPasswordValidate resetPasswordValidate) { + iSystemLoginService.resetPassword(resetPasswordValidate); + return AjaxResult.success(); + } + } diff --git a/mailbox-lan/src/main/java/com/biutag/lan/service/ISystemLoginService.java b/mailbox-lan/src/main/java/com/biutag/lan/service/ISystemLoginService.java index c60f00a..2d23184 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/service/ISystemLoginService.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/service/ISystemLoginService.java @@ -1,6 +1,7 @@ package com.biutag.lan.service; import com.biutag.lan.validate.system.PoliceUserLoginsValidate; +import com.biutag.lan.validate.system.ResetPasswordValidate; import com.biutag.lan.vo.system.SystemCaptchaVo; import com.biutag.lan.vo.system.SystemLoginVo; @@ -34,4 +35,5 @@ public interface ISystemLoginService { */ void logout(String token); + void resetPassword(ResetPasswordValidate resetPasswordValidate); } diff --git a/mailbox-lan/src/main/java/com/biutag/lan/service/impl/SystemLoginServiceImpl.java b/mailbox-lan/src/main/java/com/biutag/lan/service/impl/SystemLoginServiceImpl.java index eebc3c4..f42e6c7 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/service/impl/SystemLoginServiceImpl.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/service/impl/SystemLoginServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.biutag.lan.cache.CaptchaCache; import com.biutag.lan.service.ISystemLoginService; import com.biutag.lan.validate.system.PoliceUserLoginsValidate; +import com.biutag.lan.validate.system.ResetPasswordValidate; import com.biutag.lan.vo.system.SystemCaptchaVo; import com.biutag.lan.vo.system.SystemLoginVo; import com.biutag.entity.system.PoliceUser; @@ -167,6 +168,40 @@ public class SystemLoginServiceImpl implements ISystemLoginService { //RedisUtil.del(AdminConfig.backstageTokenKey + token); } + @Override + public void resetPassword(ResetPasswordValidate resetPasswordValidate) { + String oldpassword = resetPasswordValidate.getOldpassword(); + String password = resetPasswordValidate.getPassword(); + String passwordConfirm = resetPasswordValidate.getPasswordConfirm(); + if (!password.equals(passwordConfirm)) { + throw new LoginException(ErrorEnum.PARAMS_VALID_ERROR.getCode(), ErrorEnum.PARAMS_VALID_ERROR.getMsg()); + } + + Integer id = Integer.valueOf(StpUtil.getLoginId().toString()); + PoliceUser sysAdmin = policeUserMapper.selectOne(new QueryWrapper() + .eq("id", id) + .last("limit 1")); + System.out.println("sysAdmin"+sysAdmin); + String oldPWd = oldpassword + sysAdmin.getSalt(); + String md5Pwd = ToolUtils.makeMd5(oldPWd); + if (!md5Pwd.equals(sysAdmin.getPassword())) { + throw new LoginException(ErrorEnum.REST_PASSWOED_FAILED.getCode(), ErrorEnum.REST_PASSWOED_FAILED.getMsg()); + } + + String newPWd = password + sysAdmin.getSalt(); + String newMd5Pwd = ToolUtils.makeMd5(newPWd); + try { + PoliceUser policeUser = new PoliceUser(); + policeUser.setId(id); + policeUser.setPassword(newMd5Pwd); + System.out.println("policeUser"+policeUser); + policeUserMapper.updateById(policeUser); + } catch (Exception e) { + throw new OperateException(e.getMessage()); + } + + } + /** * 记录登录日志 */ diff --git a/mailbox-lan/src/main/java/com/biutag/lan/validate/system/ResetPasswordValidate.java b/mailbox-lan/src/main/java/com/biutag/lan/validate/system/ResetPasswordValidate.java new file mode 100644 index 0000000..9f1e199 --- /dev/null +++ b/mailbox-lan/src/main/java/com/biutag/lan/validate/system/ResetPasswordValidate.java @@ -0,0 +1,31 @@ +package com.biutag.lan.validate.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import java.io.Serializable; + +@Data +@ApiModel("重置密码参数") +public class ResetPasswordValidate implements Serializable { + private static final long serialVersionUID = 1L; + + @NotEmpty(message = "密码不能为空") + @Length(min = 6, max = 18, message = "密码错误") + @ApiModelProperty(value = "登录账号", required = true) + private String oldpassword; + + @NotEmpty(message = "密码不能为空") + @Length(min = 6, max = 18, message = "密码错误") + @ApiModelProperty(value = "登录密码", required = true) + private String password; + + @NotEmpty(message = "密码不能为空") + @Length(min = 6, max = 18, message = "密码错误") + @ApiModelProperty(value = "登录密码", required = true) + private String passwordConfirm; + +}