From aa6bb1d84512777616ef98ad384192482ecc7fdf Mon Sep 17 00:00:00 2001 From: none Date: Thu, 2 Mar 2023 15:46:57 +0800 Subject: [PATCH] =?UTF-8?q?added:=20=E7=AE=A1=E7=90=86=E5=91=98=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/LoginController.java | 12 +++++++++ .../backend/PasswordChangeRequest.java | 25 +++++++++++++++++++ .../playedu/api/service/AdminUserService.java | 2 ++ .../service/impl/AdminUserServiceImpl.java | 9 +++++++ 4 files changed, 48 insertions(+) create mode 100644 src/main/java/xyz/playedu/api/request/backend/PasswordChangeRequest.java diff --git a/src/main/java/xyz/playedu/api/controller/backend/LoginController.java b/src/main/java/xyz/playedu/api/controller/backend/LoginController.java index ef44119..f0e34ec 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/LoginController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/LoginController.java @@ -12,6 +12,7 @@ import xyz.playedu.api.event.AdminUserLoginEvent; import xyz.playedu.api.exception.JwtLogoutException; import xyz.playedu.api.middleware.ImageCaptchaCheckMiddleware; import xyz.playedu.api.request.backend.LoginRequest; +import xyz.playedu.api.request.backend.PasswordChangeRequest; import xyz.playedu.api.service.AdminUserService; import xyz.playedu.api.service.JWTService; import xyz.playedu.api.types.JsonResponse; @@ -85,4 +86,15 @@ public class LoginController { return JsonResponse.data(data); } + @PutMapping("/password") + public JsonResponse changePassword(@RequestBody @Validated PasswordChangeRequest req) { + AdminUser user = PlayEduBackendThreadLocal.getAdminUser(); + String password = HelperUtil.MD5(req.getOldPassword() + user.getSalt()); + if (!password.equals(user.getPassword())) { + return JsonResponse.error("原密码不正确"); + } + adminUserService.passwordChange(user, req.getNewPassword()); + return JsonResponse.success(); + } + } diff --git a/src/main/java/xyz/playedu/api/request/backend/PasswordChangeRequest.java b/src/main/java/xyz/playedu/api/request/backend/PasswordChangeRequest.java new file mode 100644 index 0000000..3634294 --- /dev/null +++ b/src/main/java/xyz/playedu/api/request/backend/PasswordChangeRequest.java @@ -0,0 +1,25 @@ +package xyz.playedu.api.request.backend; + +import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/2 15:41 + */ +@Data +public class PasswordChangeRequest { + + @JsonProperty("old_password") + @NotNull(message = "old_password参数不存在") + @NotBlank(message = "请输入原密码") + private String oldPassword; + + @JsonProperty("new_password") + @NotNull(message = "new_password参数不存在") + @NotBlank(message = "请输入新密码") + private String newPassword; + +} diff --git a/src/main/java/xyz/playedu/api/service/AdminUserService.java b/src/main/java/xyz/playedu/api/service/AdminUserService.java index 4b5eb11..a12775a 100644 --- a/src/main/java/xyz/playedu/api/service/AdminUserService.java +++ b/src/main/java/xyz/playedu/api/service/AdminUserService.java @@ -38,4 +38,6 @@ public interface AdminUserService extends IService { void removeWithRoleIds(Integer userId); void removeRelateRolesByUserId(Integer userId); + + void passwordChange(AdminUser user, String password); } diff --git a/src/main/java/xyz/playedu/api/service/impl/AdminUserServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/AdminUserServiceImpl.java index 69dba01..4dee63a 100644 --- a/src/main/java/xyz/playedu/api/service/impl/AdminUserServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/AdminUserServiceImpl.java @@ -167,6 +167,15 @@ public class AdminUserServiceImpl extends ServiceImpl wrapper = userRoleService.query().getWrapper().eq("admin_id", userId); userRoleService.remove(wrapper); } + + @Override + public void passwordChange(AdminUser user, String password) { + String newPassword = HelperUtil.MD5(password + user.getSalt()); + AdminUser newUser = new AdminUser(); + newUser.setId(user.getId()); + newUser.setPassword(newPassword); + updateById(newUser); + } }