From c254a42cc6ad746bc1e3ddfdde8581be4199a2f9 Mon Sep 17 00:00:00 2001 From: none Date: Mon, 13 Mar 2023 10:24:18 +0800 Subject: [PATCH] update --- ...dThreadLocal.java => PlayEduBContext.java} | 12 +++--- .../java/xyz/playedu/api/PlayEduFContext.java | 42 +++++++++++++++++++ .../java/xyz/playedu/api/bus/BackendBus.java | 4 +- .../xyz/playedu/api/config/WebMvcConfig.java | 4 +- .../backend/CourseChapterController.java | 4 +- .../controller/backend/CourseController.java | 4 +- .../backend/CourseHourController.java | 8 ++-- .../backend/DepartmentController.java | 4 +- .../controller/backend/LoginController.java | 7 ++-- .../backend/ResourceCategoryController.java | 4 +- .../controller/backend/SystemController.java | 4 +- .../controller/frontend/UserController.java | 27 ++++++++++++ .../api/middleware/AdminMiddleware.java | 12 +++--- .../api/middleware/FrontMiddleware.java | 42 +++++++++++++++++++ .../impl/BackendPermissionMiddlewareImpl.java | 4 +- .../frontend/ChangePasswordRequest.java | 22 ++++++++++ 16 files changed, 167 insertions(+), 37 deletions(-) rename src/main/java/xyz/playedu/api/{PlayEduBackendThreadLocal.java => PlayEduBContext.java} (95%) create mode 100644 src/main/java/xyz/playedu/api/PlayEduFContext.java create mode 100644 src/main/java/xyz/playedu/api/controller/frontend/UserController.java create mode 100644 src/main/java/xyz/playedu/api/middleware/FrontMiddleware.java create mode 100644 src/main/java/xyz/playedu/api/request/frontend/ChangePasswordRequest.java diff --git a/src/main/java/xyz/playedu/api/PlayEduBackendThreadLocal.java b/src/main/java/xyz/playedu/api/PlayEduBContext.java similarity index 95% rename from src/main/java/xyz/playedu/api/PlayEduBackendThreadLocal.java rename to src/main/java/xyz/playedu/api/PlayEduBContext.java index 40e6ff0..9ac4476 100644 --- a/src/main/java/xyz/playedu/api/PlayEduBackendThreadLocal.java +++ b/src/main/java/xyz/playedu/api/PlayEduBContext.java @@ -6,7 +6,7 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; -public class PlayEduBackendThreadLocal { +public class PlayEduBContext { private static final java.lang.ThreadLocal> THREAD_LOCAL = new java.lang.ThreadLocal<>(); @@ -15,7 +15,7 @@ public class PlayEduBackendThreadLocal { public final static String KEY_ADMIN_PER = "admin_per"; public final static String KEY_CONFIG = "config"; - public PlayEduBackendThreadLocal() { + public PlayEduBContext() { } public static void put(String key, Object val) { @@ -31,6 +31,10 @@ public class PlayEduBackendThreadLocal { return THREAD_LOCAL.get().getOrDefault(key, null); } + public static void remove() { + THREAD_LOCAL.remove(); + } + public static Integer getAdminUserID() { return (Integer) get(KEY_ADMIN_USER_ID); } @@ -55,10 +59,6 @@ public class PlayEduBackendThreadLocal { return (HashMap) get(KEY_ADMIN_PER); } - public static void remove() { - THREAD_LOCAL.remove(); - } - public static void setConfig(Map config) { put(KEY_CONFIG, config); } diff --git a/src/main/java/xyz/playedu/api/PlayEduFContext.java b/src/main/java/xyz/playedu/api/PlayEduFContext.java new file mode 100644 index 0000000..575f643 --- /dev/null +++ b/src/main/java/xyz/playedu/api/PlayEduFContext.java @@ -0,0 +1,42 @@ +package xyz.playedu.api; + +import java.util.LinkedHashMap; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/13 09:24 + */ +public class PlayEduFContext { + private static final java.lang.ThreadLocal> THREAD_LOCAL = new java.lang.ThreadLocal<>(); + + private static final String KEY_USER_ID = "user_id"; + private static final String KEY_USER = "user"; + + public PlayEduFContext() { + } + + public static void put(String key, Object val) { + LinkedHashMap hashMap = THREAD_LOCAL.get(); + if (hashMap == null) { + hashMap = new LinkedHashMap<>(); + } + hashMap.put(key, val); + THREAD_LOCAL.set(hashMap); + } + + public static Object get(String key) { + return THREAD_LOCAL.get().getOrDefault(key, null); + } + + public static void remove() { + THREAD_LOCAL.remove(); + } + + public static void setUserId(Integer id) { + put(KEY_USER_ID, id); + } + + public static Integer getUserId() { + return (Integer) get(KEY_USER_ID); + } +} diff --git a/src/main/java/xyz/playedu/api/bus/BackendBus.java b/src/main/java/xyz/playedu/api/bus/BackendBus.java index c04b538..8607782 100644 --- a/src/main/java/xyz/playedu/api/bus/BackendBus.java +++ b/src/main/java/xyz/playedu/api/bus/BackendBus.java @@ -2,7 +2,7 @@ package xyz.playedu.api.bus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import xyz.playedu.api.PlayEduBackendThreadLocal; +import xyz.playedu.api.PlayEduBContext; import xyz.playedu.api.constant.BackendConstant; import xyz.playedu.api.domain.AdminRole; import xyz.playedu.api.service.AdminPermissionService; @@ -59,7 +59,7 @@ public class BackendBus { } public static String valueHidden(String permissionSlug, String type, String value) { - HashMap permissions = PlayEduBackendThreadLocal.getAdminPer(); + HashMap permissions = PlayEduBContext.getAdminPer(); if (permissions.get(permissionSlug) != null) { return value; } diff --git a/src/main/java/xyz/playedu/api/config/WebMvcConfig.java b/src/main/java/xyz/playedu/api/config/WebMvcConfig.java index f13fc47..7b7ac8d 100644 --- a/src/main/java/xyz/playedu/api/config/WebMvcConfig.java +++ b/src/main/java/xyz/playedu/api/config/WebMvcConfig.java @@ -13,11 +13,11 @@ import xyz.playedu.api.middleware.AdminMiddleware; public class WebMvcConfig implements WebMvcConfigurer { @Resource - private AdminMiddleware adminAuthMiddleware; + private AdminMiddleware adminMiddleware; @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(adminAuthMiddleware).addPathPatterns("/backend/**"); + registry.addInterceptor(adminMiddleware).addPathPatterns("/backend/**"); } @Override diff --git a/src/main/java/xyz/playedu/api/controller/backend/CourseChapterController.java b/src/main/java/xyz/playedu/api/controller/backend/CourseChapterController.java index f3d95c3..bd8886c 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/CourseChapterController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/CourseChapterController.java @@ -4,7 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import xyz.playedu.api.PlayEduBackendThreadLocal; +import xyz.playedu.api.PlayEduBContext; import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.domain.CourseChapter; import xyz.playedu.api.event.CourseChapterDestroyEvent; @@ -74,7 +74,7 @@ public class CourseChapterController { public JsonResponse destroy(@PathVariable(name = "courseId") Integer courseId, @PathVariable(name = "id") Integer id) throws NotFoundException { CourseChapter chapter = chapterService.findOrFail(id, courseId); chapterService.removeById(chapter.getId()); - ctx.publishEvent(new CourseChapterDestroyEvent(this, PlayEduBackendThreadLocal.getAdminUserID(), chapter.getCourseId(), chapter.getId(), new Date())); + ctx.publishEvent(new CourseChapterDestroyEvent(this, PlayEduBContext.getAdminUserID(), chapter.getCourseId(), chapter.getId(), new Date())); return JsonResponse.success(); } } diff --git a/src/main/java/xyz/playedu/api/controller/backend/CourseController.java b/src/main/java/xyz/playedu/api/controller/backend/CourseController.java index 198ce72..4921245 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/CourseController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/CourseController.java @@ -7,7 +7,7 @@ import org.springframework.context.ApplicationContext; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import xyz.playedu.api.PlayEduBackendThreadLocal; +import xyz.playedu.api.PlayEduBContext; import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.domain.*; import xyz.playedu.api.event.CourseDestroyEvent; @@ -108,7 +108,7 @@ public class CourseController { @DeleteMapping("/{id}") public JsonResponse destroy(@PathVariable(name = "id") Integer id) { courseService.removeById(id); - ctx.publishEvent(new CourseDestroyEvent(this, PlayEduBackendThreadLocal.getAdminUserID(), id, new Date())); + ctx.publishEvent(new CourseDestroyEvent(this, PlayEduBContext.getAdminUserID(), id, new Date())); return JsonResponse.success(); } diff --git a/src/main/java/xyz/playedu/api/controller/backend/CourseHourController.java b/src/main/java/xyz/playedu/api/controller/backend/CourseHourController.java index fdcb973..891f36c 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/CourseHourController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/CourseHourController.java @@ -1,12 +1,10 @@ package xyz.playedu.api.controller.backend; -import lombok.Data; -import org.apache.ibatis.annotations.Delete; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import xyz.playedu.api.PlayEduBackendThreadLocal; +import xyz.playedu.api.PlayEduBContext; import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.constant.BackendConstant; import xyz.playedu.api.domain.CourseChapter; @@ -82,7 +80,7 @@ public class CourseHourController { chapterService.findOrFail(chapterId, courseId); CourseHour courseHour = hourService.create(courseId, chapterId, req.getTitle(), type, req.getDuration(), req.getPublishedAt()); - ctx.publishEvent(new CourseHourCreatedEvent(this, PlayEduBackendThreadLocal.getAdminUserID(), courseHour.getCourseId(), courseHour.getChapterId(), courseHour.getId(), new Date())); + ctx.publishEvent(new CourseHourCreatedEvent(this, PlayEduBContext.getAdminUserID(), courseHour.getCourseId(), courseHour.getChapterId(), courseHour.getId(), new Date())); return JsonResponse.success(); } @@ -110,7 +108,7 @@ public class CourseHourController { public JsonResponse destroy(@PathVariable(name = "courseId") Integer courseId, @PathVariable(name = "id") Integer id) throws NotFoundException { CourseHour courseHour = hourService.findOrFail(id, courseId); hourService.removeById(courseHour.getId()); - ctx.publishEvent(new CourseHourDestroyEvent(this, PlayEduBackendThreadLocal.getAdminUserID(), courseHour.getCourseId(), courseHour.getChapterId(), courseHour.getId(), new Date())); + ctx.publishEvent(new CourseHourDestroyEvent(this, PlayEduBContext.getAdminUserID(), courseHour.getCourseId(), courseHour.getChapterId(), courseHour.getId(), new Date())); return JsonResponse.success(); } diff --git a/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java b/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java index 67a9084..0ed8f88 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java @@ -5,7 +5,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import xyz.playedu.api.PlayEduBackendThreadLocal; +import xyz.playedu.api.PlayEduBContext; import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.domain.Department; import xyz.playedu.api.event.DepartmentDestroyEvent; @@ -87,7 +87,7 @@ public class DepartmentController { public JsonResponse destroy(@PathVariable Integer id) throws NotFoundException { Department department = departmentService.findOrFail(id); departmentService.deleteById(department.getId()); - ctx.publishEvent(new DepartmentDestroyEvent(this, PlayEduBackendThreadLocal.getAdminUserID(), department.getId(), new Date())); + ctx.publishEvent(new DepartmentDestroyEvent(this, PlayEduBContext.getAdminUserID(), department.getId(), new Date())); return JsonResponse.success(); } 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 f0e34ec..51e5e0e 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/LoginController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/LoginController.java @@ -4,7 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import xyz.playedu.api.PlayEduBackendThreadLocal; +import xyz.playedu.api.PlayEduBContext; import xyz.playedu.api.bus.BackendBus; import xyz.playedu.api.constant.SystemConstant; import xyz.playedu.api.domain.AdminUser; @@ -23,7 +23,6 @@ import xyz.playedu.api.util.RequestUtil; import java.util.Date; import java.util.HashMap; -import java.util.List; @RestController @RequestMapping("/backend/v1/auth") @@ -76,7 +75,7 @@ public class LoginController { @GetMapping("/detail") public JsonResponse detail() { - AdminUser user = PlayEduBackendThreadLocal.getAdminUser(); + AdminUser user = PlayEduBContext.getAdminUser(); HashMap permissions = backendBus.adminUserPermissions(user.getId()); HashMap data = new HashMap<>(); @@ -88,7 +87,7 @@ public class LoginController { @PutMapping("/password") public JsonResponse changePassword(@RequestBody @Validated PasswordChangeRequest req) { - AdminUser user = PlayEduBackendThreadLocal.getAdminUser(); + AdminUser user = PlayEduBContext.getAdminUser(); String password = HelperUtil.MD5(req.getOldPassword() + user.getSalt()); if (!password.equals(user.getPassword())) { return JsonResponse.error("原密码不正确"); diff --git a/src/main/java/xyz/playedu/api/controller/backend/ResourceCategoryController.java b/src/main/java/xyz/playedu/api/controller/backend/ResourceCategoryController.java index 33f07aa..ea13e3c 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/ResourceCategoryController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/ResourceCategoryController.java @@ -4,7 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import xyz.playedu.api.PlayEduBackendThreadLocal; +import xyz.playedu.api.PlayEduBContext; import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.domain.ResourceCategory; import xyz.playedu.api.event.ResourceCategoryDestroyEvent; @@ -84,7 +84,7 @@ public class ResourceCategoryController { public JsonResponse destroy(@PathVariable Integer id) throws NotFoundException { ResourceCategory category = categoryService.findOrFail(id); categoryService.deleteById(category.getId()); - ctx.publishEvent(new ResourceCategoryDestroyEvent(this, PlayEduBackendThreadLocal.getAdminUserID(), category.getId(), new Date())); + ctx.publishEvent(new ResourceCategoryDestroyEvent(this, PlayEduBContext.getAdminUserID(), category.getId(), new Date())); return JsonResponse.success(); } diff --git a/src/main/java/xyz/playedu/api/controller/backend/SystemController.java b/src/main/java/xyz/playedu/api/controller/backend/SystemController.java index e5e8726..fd9fdbc 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/SystemController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/SystemController.java @@ -4,7 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import xyz.playedu.api.PlayEduBackendThreadLocal; +import xyz.playedu.api.PlayEduBContext; import xyz.playedu.api.service.ImageCaptchaService; import xyz.playedu.api.types.ImageCaptchaResult; import xyz.playedu.api.types.JsonResponse; @@ -33,7 +33,7 @@ public class SystemController { @GetMapping("/config") public JsonResponse config() { - Map data = PlayEduBackendThreadLocal.getConfig(); + Map data = PlayEduBContext.getConfig(); return JsonResponse.data(data); } diff --git a/src/main/java/xyz/playedu/api/controller/frontend/UserController.java b/src/main/java/xyz/playedu/api/controller/frontend/UserController.java new file mode 100644 index 0000000..ae3dcc5 --- /dev/null +++ b/src/main/java/xyz/playedu/api/controller/frontend/UserController.java @@ -0,0 +1,27 @@ +package xyz.playedu.api.controller.frontend; + +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import xyz.playedu.api.request.frontend.ChangePasswordRequest; +import xyz.playedu.api.types.JsonResponse; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/13 09:21 + */ +@RestController +@RequestMapping("/api/v1/user") +public class UserController { + + @GetMapping("/detail") + public JsonResponse detail() { + return JsonResponse.data(null); + } + + @PutMapping("/password") + public JsonResponse changePassword(@RequestBody @Validated ChangePasswordRequest req) { + return JsonResponse.success(); + } + + +} \ No newline at end of file diff --git a/src/main/java/xyz/playedu/api/middleware/AdminMiddleware.java b/src/main/java/xyz/playedu/api/middleware/AdminMiddleware.java index b868162..c9b5def 100644 --- a/src/main/java/xyz/playedu/api/middleware/AdminMiddleware.java +++ b/src/main/java/xyz/playedu/api/middleware/AdminMiddleware.java @@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; -import xyz.playedu.api.PlayEduBackendThreadLocal; +import xyz.playedu.api.PlayEduBContext; import xyz.playedu.api.bus.AppBus; import xyz.playedu.api.bus.BackendBus; import xyz.playedu.api.constant.SystemConstant; @@ -49,7 +49,7 @@ public class AdminMiddleware implements HandlerInterceptor { // 读取全局配置 Map systemConfig = configService.keyValues(); - PlayEduBackendThreadLocal.setConfig(systemConfig); + PlayEduBContext.setConfig(systemConfig); if (BackendBus.inUnAuthWhitelist(request.getRequestURI())) { return HandlerInterceptor.super.preHandle(request, response, handler); @@ -71,9 +71,9 @@ public class AdminMiddleware implements HandlerInterceptor { return responseTransform(response, 403, "当前管理员禁止登录"); } - PlayEduBackendThreadLocal.setAdminUserId(payload.getSub()); - PlayEduBackendThreadLocal.setAdminUser(adminUser); - PlayEduBackendThreadLocal.setAdminPer(backendBus.adminUserPermissions(adminUser.getId())); + PlayEduBContext.setAdminUserId(payload.getSub()); + PlayEduBContext.setAdminUser(adminUser); + PlayEduBContext.setAdminPer(backendBus.adminUserPermissions(adminUser.getId())); return HandlerInterceptor.super.preHandle(request, response, handler); } catch (Exception e) { @@ -93,7 +93,7 @@ public class AdminMiddleware implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { - PlayEduBackendThreadLocal.remove(); + PlayEduBContext.remove(); HandlerInterceptor.super.afterCompletion(request, response, handler, ex); } } diff --git a/src/main/java/xyz/playedu/api/middleware/FrontMiddleware.java b/src/main/java/xyz/playedu/api/middleware/FrontMiddleware.java new file mode 100644 index 0000000..5535ab8 --- /dev/null +++ b/src/main/java/xyz/playedu/api/middleware/FrontMiddleware.java @@ -0,0 +1,42 @@ +package xyz.playedu.api.middleware; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; +import xyz.playedu.api.PlayEduFContext; +import xyz.playedu.api.types.JsonResponse; +import xyz.playedu.api.util.HelperUtil; + +import java.io.IOException; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/13 09:40 + */ +@Component +@Slf4j +public class FrontMiddleware implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + if ("OPTIONS".equals(request.getMethod())) { + return HandlerInterceptor.super.preHandle(request, response, handler); + } + return false; + } + + private boolean responseTransform(HttpServletResponse response, int code, String msg) throws IOException { + response.setStatus(code); + response.setContentType("application/json;charset=utf-8"); + response.getWriter().print(HelperUtil.toJsonStr(JsonResponse.error(msg))); + return false; + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + PlayEduFContext.remove(); + HandlerInterceptor.super.afterCompletion(request, response, handler, ex); + } +} diff --git a/src/main/java/xyz/playedu/api/middleware/impl/BackendPermissionMiddlewareImpl.java b/src/main/java/xyz/playedu/api/middleware/impl/BackendPermissionMiddlewareImpl.java index c9e9a08..0f9b2e7 100644 --- a/src/main/java/xyz/playedu/api/middleware/impl/BackendPermissionMiddlewareImpl.java +++ b/src/main/java/xyz/playedu/api/middleware/impl/BackendPermissionMiddlewareImpl.java @@ -8,7 +8,7 @@ import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import xyz.playedu.api.PlayEduBackendThreadLocal; +import xyz.playedu.api.PlayEduBContext; import xyz.playedu.api.bus.BackendBus; import xyz.playedu.api.middleware.BackendPermissionMiddleware; import xyz.playedu.api.types.JsonResponse; @@ -35,7 +35,7 @@ public class BackendPermissionMiddlewareImpl { public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { MethodSignature signature = (MethodSignature) joinPoint.getSignature(); BackendPermissionMiddleware middleware = signature.getMethod().getAnnotation(BackendPermissionMiddleware.class); - Integer adminUserId = PlayEduBackendThreadLocal.getAdminUserID(); + Integer adminUserId = PlayEduBContext.getAdminUserID(); HashMap permissions = backendBus.adminUserPermissions(adminUserId); if (permissions.get(middleware.slug()) == null) { return JsonResponse.error("权限不足", 403); diff --git a/src/main/java/xyz/playedu/api/request/frontend/ChangePasswordRequest.java b/src/main/java/xyz/playedu/api/request/frontend/ChangePasswordRequest.java new file mode 100644 index 0000000..6efa96f --- /dev/null +++ b/src/main/java/xyz/playedu/api/request/frontend/ChangePasswordRequest.java @@ -0,0 +1,22 @@ +package xyz.playedu.api.request.frontend; + +import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/13 09:22 + */ +@Data +public class ChangePasswordRequest { + + @NotBlank(message = "请输入原密码") + @JsonProperty("old_password") + private String oldPassword; + + @NotBlank(message = "请输入新密码") + @JsonProperty("new_password") + private String newPassword; + +}