From 0a866bde14be862e18739f10b9dda62e8cc1c06a Mon Sep 17 00:00:00 2001 From: cat_shark <1716967236@qq.com> Date: Sun, 5 Jul 2026 11:05:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E4=BC=9A=E8=AF=9D)=EF=BC=9A=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=B4=BB=E8=B7=83=E4=BC=9A=E8=AF=9D=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit StudySessionsServiceImpl.getActiveSession(excludeTaskNum): - 查询所有 ONGOING/PAUSED 状态的 session - 如果活跃会话属于 excludeTaskNum 则返回 null(同一任务继续) - 否则返回活跃会话的 StudySessionResponse Controller 新增 GET /study-sessions/active?excludeTaskNum= 用于前端页面恢复 + 阻止多任务同时开始 --- .../controller/StudySessionController.java | 7 ++++ .../service/StudySessionsService.java | 2 ++ .../impl/StudySessionsServiceImpl.java | 35 +++++++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/src/main/java/com/guo/learningprogresstracker/controller/StudySessionController.java b/src/main/java/com/guo/learningprogresstracker/controller/StudySessionController.java index 62011e5..d0b5bda 100644 --- a/src/main/java/com/guo/learningprogresstracker/controller/StudySessionController.java +++ b/src/main/java/com/guo/learningprogresstracker/controller/StudySessionController.java @@ -130,4 +130,11 @@ public class StudySessionController { @RequestParam(required = false) String keyword) { return CommonResult.success(studySessionsServiceImpl.getTaskReports(taskNum, page, size, keyword)); } + + /** 查询当前是否有活跃会话(用于跨页面恢复 + 阻止多任务) */ + @GetMapping("/active") + public CommonResult getActiveSession( + @RequestParam(required = false) String excludeTaskNum) { + return CommonResult.success(studySessionsServiceImpl.getActiveSession(excludeTaskNum)); + } } diff --git a/src/main/java/com/guo/learningprogresstracker/service/StudySessionsService.java b/src/main/java/com/guo/learningprogresstracker/service/StudySessionsService.java index 3348823..9932da1 100644 --- a/src/main/java/com/guo/learningprogresstracker/service/StudySessionsService.java +++ b/src/main/java/com/guo/learningprogresstracker/service/StudySessionsService.java @@ -33,4 +33,6 @@ public interface StudySessionsService extends IService { Page getTaskFragments(String taskNum, int page, int size, String keyword); Page getTaskReports(String taskNum, int page, int size, String keyword); + + StudySessionResponse getActiveSession(String excludeTaskNum); } diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/StudySessionsServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/StudySessionsServiceImpl.java index 159e57d..7628d07 100644 --- a/src/main/java/com/guo/learningprogresstracker/service/impl/StudySessionsServiceImpl.java +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/StudySessionsServiceImpl.java @@ -217,4 +217,39 @@ public class StudySessionsServiceImpl extends ServiceImpl