From aa9a27810884a7fddf4b52f4a063e7e15b866b0c Mon Sep 17 00:00:00 2001 From: cat_shark <1716967236@qq.com> Date: Sun, 29 Jun 2025 15:30:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:1.=E4=BC=98=E5=8C=96commonResult=202.=20?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=88=9D=E5=A7=8B=E5=8C=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/WebCorsConfig.java | 17 ++++++++ .../config/interceptor/Interceptor.java | 9 +--- .../controller/LoginController.java | 4 +- .../controller/StudySessionController.java | 13 +++--- .../controller/TaskController.java | 25 ++++++----- .../controller/reportFragmentsController.java | 2 +- .../entity/CommonResult.java | 42 +++++++++---------- .../service/impl/TasksServiceImpl.java | 7 +--- ...sql => V20250629_1__LPT_dataBase_init.sql} | 0 .../controller/LoginControllerTest.java | 4 +- 10 files changed, 64 insertions(+), 59 deletions(-) create mode 100644 src/main/java/com/guo/learningprogresstracker/config/WebCorsConfig.java rename src/main/resources/db/migration/{LPT_dataBase_init.sql => V20250629_1__LPT_dataBase_init.sql} (100%) diff --git a/src/main/java/com/guo/learningprogresstracker/config/WebCorsConfig.java b/src/main/java/com/guo/learningprogresstracker/config/WebCorsConfig.java new file mode 100644 index 0000000..dc2985f --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/config/WebCorsConfig.java @@ -0,0 +1,17 @@ +package com.guo.learningprogresstracker.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebCorsConfig implements WebMvcConfigurer { + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") // 配置所有路径 + .allowedOrigins("http://localhost:5173") + .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") + .allowedHeaders("*") + .allowCredentials(true); + } +} diff --git a/src/main/java/com/guo/learningprogresstracker/config/interceptor/Interceptor.java b/src/main/java/com/guo/learningprogresstracker/config/interceptor/Interceptor.java index 250f031..8763d48 100644 --- a/src/main/java/com/guo/learningprogresstracker/config/interceptor/Interceptor.java +++ b/src/main/java/com/guo/learningprogresstracker/config/interceptor/Interceptor.java @@ -8,10 +8,6 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; -/** - * @Author: ChangYu - * @Version 1.0 - */ /** * 拦截器 @@ -23,10 +19,7 @@ public class Interceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - /** - * token过期或失效时,由于前端基本都是AJAX请求,拦截器返回401,由前端负责跳转至OA登陆页面 - * note:chang yu - */ + // StpUtil.checkLogin(); // //续签 // StpUtil.updateLastActiveToNow(); diff --git a/src/main/java/com/guo/learningprogresstracker/controller/LoginController.java b/src/main/java/com/guo/learningprogresstracker/controller/LoginController.java index 035908a..fb9c393 100644 --- a/src/main/java/com/guo/learningprogresstracker/controller/LoginController.java +++ b/src/main/java/com/guo/learningprogresstracker/controller/LoginController.java @@ -26,7 +26,7 @@ public class LoginController { @Operation(summary = "登录API") @PostMapping("/login") - public CommonResult login(@RequestBody LoginBody loginBody) throws AppException { + public CommonResult login(@RequestBody LoginBody loginBody) throws AppException { String userId = userServiceImpl.authenticate(loginBody.getUsername(), loginBody.getPassword()); String token = loginService.login(userId); //todo 参数传递未加密 @@ -35,7 +35,7 @@ public class LoginController { @Operation(summary = "退出登录API-功能未完成") @PostMapping("/loingOut") - public CommonResult loingOut(@RequestBody LoginBody loginBody) throws AppException { + public CommonResult loingOut(@RequestBody LoginBody loginBody) throws AppException { //todo loginOut 退出登录API // loginService.loginOut(); return CommonResult.success("已登出"); diff --git a/src/main/java/com/guo/learningprogresstracker/controller/StudySessionController.java b/src/main/java/com/guo/learningprogresstracker/controller/StudySessionController.java index 55d5ac3..f2fe69b 100644 --- a/src/main/java/com/guo/learningprogresstracker/controller/StudySessionController.java +++ b/src/main/java/com/guo/learningprogresstracker/controller/StudySessionController.java @@ -41,7 +41,7 @@ public class StudySessionController { * 通过sessionNum获取一个【学习会话】 */ @GetMapping("/{sessionNum}") - public CommonResult getStudySessionBySessionNum(@NotEmpty(message = "sessionNum不可为空") @PathVariable String sessionNum) throws ErrorParameterException { + public CommonResult getStudySessionBySessionNum(@NotEmpty(message = "sessionNum不可为空") @PathVariable String sessionNum) throws ErrorParameterException { StudySessionsEntity studySessionsEntity = studySessionsServiceImpl.getOneOpt(Wrappers.lambdaQuery(StudySessionsEntity.class) .eq(StudySessionsEntity::getSessionNum, sessionNum)) .orElseThrow(() -> new ErrorParameterException("会话[" + sessionNum + "]不存在")); @@ -53,7 +53,7 @@ public class StudySessionController { * 暂停一个【学习会话】 */ @PostMapping("/{sessionNum}/study-sessions/pause") - public CommonResult pauseStudySession(@PathVariable("sessionNum") String sessionNum) throws ErrorParameterException { + public CommonResult pauseStudySession(@PathVariable("sessionNum") String sessionNum) throws ErrorParameterException { studySessionsServiceImpl.pauseStudySession(sessionNum); return CommonResult.success(); } @@ -62,16 +62,17 @@ public class StudySessionController { * 结束一个【学习会话】 */ @PostMapping("/{sessionNum}/study-sessions/ended") - public CommonResult endedStudySession(@PathVariable("sessionNum") String sessionNum, - @Valid @RequestBody EndedStudySessionRequest request) throws ErrorParameterException { - studySessionsServiceImpl.endedStudySession(sessionNum,request.getContent()); + public CommonResult endedStudySession(@PathVariable("sessionNum") String sessionNum, + @Valid @RequestBody EndedStudySessionRequest request) throws ErrorParameterException { + studySessionsServiceImpl.endedStudySession(sessionNum, request.getContent()); return CommonResult.success(); } + /** * 获取【学习会话】所有的学习残片数据,以列表返回 */ @GetMapping("/{sessionNum}/all-fragments") - public CommonResult getAllFragments(@PathVariable("sessionNum") String sessionNum) throws ErrorParameterException { + public CommonResult> getAllFragments(@PathVariable("sessionNum") String sessionNum) throws ErrorParameterException { ArrayList allFragments = studySessionsServiceImpl.getAllFragments(sessionNum); return CommonResult.success(allFragments); diff --git a/src/main/java/com/guo/learningprogresstracker/controller/TaskController.java b/src/main/java/com/guo/learningprogresstracker/controller/TaskController.java index 4cef988..0fdbf81 100644 --- a/src/main/java/com/guo/learningprogresstracker/controller/TaskController.java +++ b/src/main/java/com/guo/learningprogresstracker/controller/TaskController.java @@ -1,8 +1,11 @@ package com.guo.learningprogresstracker.controller; import cn.dev33.satoken.stp.StpUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.guo.learningprogresstracker.common.Ops; +import com.guo.learningprogresstracker.dto.TaskInfo; import com.guo.learningprogresstracker.dto.response.StudySessionResponce; +import com.guo.learningprogresstracker.dto.response.TaskInfoResponse; import com.guo.learningprogresstracker.entity.CommonResult; import com.guo.learningprogresstracker.dto.request.TaskRequest; import com.guo.learningprogresstracker.exception.ErrorParameterException; @@ -27,6 +30,7 @@ import java.rmi.ServerException; /** * 任务控制层 + * * @author guo */ @RequestMapping("/tasks") @@ -41,44 +45,43 @@ public class TaskController { @PostMapping @Operation(summary = "添加新任务") - public CommonResult addTask(@RequestBody @Validated({Ops.CreateG.class}) TaskRequest taskRequest) throws ErrorParameterException { + public CommonResult addTask(@RequestBody @Validated({Ops.CreateG.class}) TaskRequest taskRequest) throws ErrorParameterException { return CommonResult.success(tasksService.addTask(taskRequest)); } @Operation(summary = "任务详情API") @GetMapping("/{taskId}") - public CommonResult getTask(@PathVariable("taskId") String taskId) { + public CommonResult getTask(@PathVariable("taskId") String taskId) { return CommonResult.success(tasksService.getTask(taskId)); } @PutMapping("/{taskId}") @Operation(summary = "更新任务详情") - public CommonResult updateTask(@PathVariable("taskId") String taskId,@Validated(Ops.UpdateG.class) @RequestBody TaskRequest updatedTask) { + public CommonResult updateTask(@PathVariable("taskId") String taskId, @Validated(Ops.UpdateG.class) @RequestBody TaskRequest updatedTask) { tasksService.updateTask(taskId, updatedTask); return CommonResult.success(); } @DeleteMapping("/{taskId}") @Operation(summary = "删除指定任务") - public CommonResult deleteTask(@PathVariable("taskId") String taskId) throws ServerException { + public CommonResult deleteTask(@PathVariable("taskId") String taskId) throws ServerException { tasksService.deleteTask(taskId); return CommonResult.success(); } @GetMapping @Operation(summary = "获取所有任务列表") - public CommonResult tasksList(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + public CommonResult> tasksList(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { return CommonResult.success(tasksService.taskList(pageNum, pageSize)); } /** * 开始或继续一个【学习会话】 - * */ @GetMapping("/{taskNum}/study-sessions/start-or-continue") - public CommonResult startOrContinueStudySession(@NotEmpty(message = "taskNum不可为空") - @PathVariable String taskNum) throws NotFindEntitiesException { + public CommonResult startOrContinueStudySession(@NotEmpty(message = "taskNum不可为空") + @PathVariable String taskNum) throws NotFindEntitiesException { StudySessionResponce response = studySessionsServiceImpl.startOrContinueStudySession(taskNum); return CommonResult.success(response); @@ -88,8 +91,8 @@ public class TaskController { * 通过学习任务num获取该任务的未结束会话 */ @GetMapping("/{taskNum}/not-ended-study-session") - public CommonResult getNotEndedStudySessionByTaskNum(@NotEmpty(message = "taskNum不可为空") - @PathVariable String taskNum) throws ErrorParameterException { + public CommonResult getNotEndedStudySessionByTaskNum(@NotEmpty(message = "taskNum不可为空") + @PathVariable String taskNum) throws ErrorParameterException { StudySessionResponce response = studySessionsServiceImpl.getNotEndedStudySessionByTaskNum(taskNum); return CommonResult.success(response); } diff --git a/src/main/java/com/guo/learningprogresstracker/controller/reportFragmentsController.java b/src/main/java/com/guo/learningprogresstracker/controller/reportFragmentsController.java index 40f4b2b..7a0f0e7 100644 --- a/src/main/java/com/guo/learningprogresstracker/controller/reportFragmentsController.java +++ b/src/main/java/com/guo/learningprogresstracker/controller/reportFragmentsController.java @@ -28,7 +28,7 @@ public class reportFragmentsController { * @return */ @PostMapping - public CommonResult createFragments(@Valid @RequestBody CreateFragmentsRequest request) throws NotFindEntitiesException { + public CommonResult createFragments(@Valid @RequestBody CreateFragmentsRequest request) throws NotFindEntitiesException { studyReportFragmentsServiceImpl.createFragments(request); return CommonResult.success(); } diff --git a/src/main/java/com/guo/learningprogresstracker/entity/CommonResult.java b/src/main/java/com/guo/learningprogresstracker/entity/CommonResult.java index ed43bad..6cb6c8c 100644 --- a/src/main/java/com/guo/learningprogresstracker/entity/CommonResult.java +++ b/src/main/java/com/guo/learningprogresstracker/entity/CommonResult.java @@ -1,54 +1,50 @@ package com.guo.learningprogresstracker.entity; - import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; - @Data @AllArgsConstructor @NoArgsConstructor public class CommonResult { private Integer code; - private String message; - private T data; - public CommonResult(Integer code, String message){ - this(code,message, null); + public CommonResult(Integer code, String message) { + this(code, message, null); } - public static CommonResult success(){ - return new CommonResult(200,"请求成功",null); + public static CommonResult success() { + return new CommonResult<>(200, "请求成功", null); } - public static CommonResult success(String message){ - return new CommonResult(200,message,null); + public static CommonResult success(String message) { + return new CommonResult<>(200, message, null); } - public static CommonResult success(String message,Object data){ - return new CommonResult(200,message,data); + public static CommonResult success(T data) { + return new CommonResult<>(200, "请求成功", data); } - public static CommonResult success(Object data){ - return new CommonResult(200,"请求成功",data); + public static CommonResult success(String message, T data) { + return new CommonResult<>(200, message, data); } - public static CommonResult error(String message){ - return new CommonResult<>(400,message,null); + public static CommonResult error(String message) { + return new CommonResult<>(400, message, null); } - public static CommonResult notFind(){ - return new CommonResult<>(404,"请求的资源不存在",null); - } - public static CommonResult notFind(String message){ - return new CommonResult<>(404,message,null); + public static CommonResult notFind() { + return new CommonResult<>(404, "请求的资源不存在", null); } - public static CommonResult serverError(String message){ - return new CommonResult<>(500,message,null); + public static CommonResult notFind(String message) { + return new CommonResult<>(404, message, null); } + public static CommonResult serverError(String message) { + return new CommonResult<>(500, message, null); + } } diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java index 0383ab5..9648033 100644 --- a/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java @@ -1,6 +1,5 @@ package com.guo.learningprogresstracker.service.impl; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -8,23 +7,19 @@ import com.guo.learningprogresstracker.dto.PriorityDto; import com.guo.learningprogresstracker.dto.TaskInfo; import com.guo.learningprogresstracker.dto.request.TaskRequest; import com.guo.learningprogresstracker.dto.response.TaskInfoResponse; -import com.guo.learningprogresstracker.dto.response.TasksListInfoResponse; import com.guo.learningprogresstracker.entity.TaskEntity; import com.guo.learningprogresstracker.exception.ErrorParameterException; import com.guo.learningprogresstracker.mapStruct.RequestConvert; import com.guo.learningprogresstracker.mapStruct.TaskConvert; -import com.guo.learningprogresstracker.mapStruct.TaskConvertImpl; import com.guo.learningprogresstracker.service.TasksService; import com.guo.learningprogresstracker.mapper.TasksMapper; import com.guo.learningprogresstracker.utils.CalculatedPriorityTool; import com.guo.learningprogresstracker.utils.GenerateNumTool; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.exceptions.TooManyResultsException; import org.springframework.stereotype.Service; import java.rmi.ServerException; -import java.util.List; /** * @author guo @@ -44,7 +39,7 @@ public class TasksServiceImpl extends ServiceImpl public Page taskList(Integer pageNum, Integer pageSize) { Page page = tasksMapper.selectPage(new Page(pageNum, pageSize), Wrappers.lambdaQuery(TaskEntity.class)); Page response = TaskConvert.MAPPER.toTaskInfoPage(page); - + // todo 需要补充TaskInfo中的lastLearningStatus字段信息 return response; } diff --git a/src/main/resources/db/migration/LPT_dataBase_init.sql b/src/main/resources/db/migration/V20250629_1__LPT_dataBase_init.sql similarity index 100% rename from src/main/resources/db/migration/LPT_dataBase_init.sql rename to src/main/resources/db/migration/V20250629_1__LPT_dataBase_init.sql diff --git a/src/test/java/com/guo/learningprogresstracker/controller/LoginControllerTest.java b/src/test/java/com/guo/learningprogresstracker/controller/LoginControllerTest.java index 08116ed..de5893a 100644 --- a/src/test/java/com/guo/learningprogresstracker/controller/LoginControllerTest.java +++ b/src/test/java/com/guo/learningprogresstracker/controller/LoginControllerTest.java @@ -20,8 +20,8 @@ class LoginControllerTest { LoginBody loginBody = new LoginBody(); loginBody.setUsername("admin"); loginBody.setPassword("admin"); - CommonResult login = loginController.login(loginBody); - assertEquals(login.getMessage(), "登录成功!"); + CommonResult login = loginController.login(loginBody); + assertEquals("登录成功!", login.getMessage()); }