From e556248938920aa761d6920383208788dced86d1 Mon Sep 17 00:00:00 2001 From: luoweijian <1329394916@qq.com> Date: Mon, 22 Jun 2026 17:59:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=97=E9=A2=98=E7=AE=A1=E7=90=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/ClassicPaperApplicationService.java | 6 ++++++ .../application/ClassicPaperSetApplicationService.java | 5 +++++ .../impl/ClassicPaperApplicationServiceImpl.java | 10 ++++++++++ .../impl/ClassicPaperSetApplicationServiceImpl.java | 10 ++++++++++ .../controller/ClassicPaperController.java | 9 +++++++++ .../controller/ClassicPaperSetController.java | 8 ++++++++ 6 files changed, 48 insertions(+) diff --git a/src/main/java/com/project/classicpaper/application/ClassicPaperApplicationService.java b/src/main/java/com/project/classicpaper/application/ClassicPaperApplicationService.java index b9646a4..998c751 100644 --- a/src/main/java/com/project/classicpaper/application/ClassicPaperApplicationService.java +++ b/src/main/java/com/project/classicpaper/application/ClassicPaperApplicationService.java @@ -1,6 +1,7 @@ package com.project.classicpaper.application; import com.project.base.domain.result.Result; +import com.project.classicpaper.domain.dto.ClassicPaperDTO; import com.project.classicpaper.domain.dto.ClassicPaperQuestionDTO; public interface ClassicPaperApplicationService { @@ -9,4 +10,9 @@ public interface ClassicPaperApplicationService { * 单题重抽(仅 DRAFT 状态的版本可操作) */ Result regenerateQuestion(Long paperId, Long questionId) throws Exception; + + /** + * 切tab暂存:保存单个版本的编辑(名称、描述、题目排序/替换) + */ + Result draft(ClassicPaperDTO request) throws Exception; } diff --git a/src/main/java/com/project/classicpaper/application/ClassicPaperSetApplicationService.java b/src/main/java/com/project/classicpaper/application/ClassicPaperSetApplicationService.java index 2755ebd..2b874ec 100644 --- a/src/main/java/com/project/classicpaper/application/ClassicPaperSetApplicationService.java +++ b/src/main/java/com/project/classicpaper/application/ClassicPaperSetApplicationService.java @@ -26,4 +26,9 @@ public interface ClassicPaperSetApplicationService { * 废弃套题组(连带所有版本) */ Result delete(Long setId) throws Exception; + + /** + * 保存固化:全量保存套题组所有版本,校验通过后锁定为CONFIRMED + */ + Result save(ClassicPaperSetDTO request) throws Exception; } diff --git a/src/main/java/com/project/classicpaper/application/impl/ClassicPaperApplicationServiceImpl.java b/src/main/java/com/project/classicpaper/application/impl/ClassicPaperApplicationServiceImpl.java index fb6c30f..9fd9d45 100644 --- a/src/main/java/com/project/classicpaper/application/impl/ClassicPaperApplicationServiceImpl.java +++ b/src/main/java/com/project/classicpaper/application/impl/ClassicPaperApplicationServiceImpl.java @@ -2,7 +2,9 @@ package com.project.classicpaper.application.impl; import com.project.base.domain.result.Result; import com.project.classicpaper.application.ClassicPaperApplicationService; +import com.project.classicpaper.domain.dto.ClassicPaperDTO; import com.project.classicpaper.domain.dto.ClassicPaperQuestionDTO; +import com.project.classicpaper.domain.service.DraftPaperDomainService; import com.project.classicpaper.domain.service.RegenerateQuestionDomainService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -13,8 +15,16 @@ public class ClassicPaperApplicationServiceImpl implements ClassicPaperApplicati @Autowired private RegenerateQuestionDomainService regenerateQuestionDomainService; + @Autowired + private DraftPaperDomainService draftPaperDomainService; + @Override public Result regenerateQuestion(Long paperId, Long questionId) throws Exception { return regenerateQuestionDomainService.regenerate(paperId, questionId); } + + @Override + public Result draft(ClassicPaperDTO request) throws Exception { + return draftPaperDomainService.draft(request); + } } diff --git a/src/main/java/com/project/classicpaper/application/impl/ClassicPaperSetApplicationServiceImpl.java b/src/main/java/com/project/classicpaper/application/impl/ClassicPaperSetApplicationServiceImpl.java index b3cf794..1f8ea55 100644 --- a/src/main/java/com/project/classicpaper/application/impl/ClassicPaperSetApplicationServiceImpl.java +++ b/src/main/java/com/project/classicpaper/application/impl/ClassicPaperSetApplicationServiceImpl.java @@ -45,6 +45,9 @@ public class ClassicPaperSetApplicationServiceImpl implements ClassicPaperSetApp @Autowired private QuestionBaseService questionBaseService; + @Autowired + private SavePaperSetDomainService savePaperSetDomainService; + @Override public Result generate(ClassicPaperSetDTO request) throws Exception { return generateClassicPaperDomainService.generate(request); @@ -158,4 +161,11 @@ public class ClassicPaperSetApplicationServiceImpl implements ClassicPaperSetApp return Result.success("废弃成功"); } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result save(ClassicPaperSetDTO request) throws Exception { + savePaperSetDomainService.save(request); + return getDetail(request.getId()); + } } diff --git a/src/main/java/com/project/classicpaper/controller/ClassicPaperController.java b/src/main/java/com/project/classicpaper/controller/ClassicPaperController.java index c64e271..346d7ba 100644 --- a/src/main/java/com/project/classicpaper/controller/ClassicPaperController.java +++ b/src/main/java/com/project/classicpaper/controller/ClassicPaperController.java @@ -2,6 +2,7 @@ package com.project.classicpaper.controller; import com.project.base.domain.result.Result; import com.project.classicpaper.application.ClassicPaperApplicationService; +import com.project.classicpaper.domain.dto.ClassicPaperDTO; import com.project.classicpaper.domain.dto.ClassicPaperQuestionDTO; import com.project.operation.annotation.OperationLog; import lombok.extern.slf4j.Slf4j; @@ -21,4 +22,12 @@ public class ClassicPaperController { public Result regenerateQuestion(Long paperId, Long questionId) throws Exception { return classicPaperApplicationService.regenerateQuestion(paperId, questionId); } + + /** + * 切tab暂存:保存当前版本的编辑(名称、描述、题目排序/替换) + */ + @PostMapping("/draft") + public Result draft(@RequestBody ClassicPaperDTO request) throws Exception { + return classicPaperApplicationService.draft(request); + } } diff --git a/src/main/java/com/project/classicpaper/controller/ClassicPaperSetController.java b/src/main/java/com/project/classicpaper/controller/ClassicPaperSetController.java index a7ff13b..cc383f9 100644 --- a/src/main/java/com/project/classicpaper/controller/ClassicPaperSetController.java +++ b/src/main/java/com/project/classicpaper/controller/ClassicPaperSetController.java @@ -39,4 +39,12 @@ public class ClassicPaperSetController { public Result delete(Long setId) throws Exception { return classicPaperSetApplicationService.delete(setId); } + + /** + * 保存固化:全量保存套题组所有版本,校验通过后锁定为CONFIRMED + */ + @PostMapping("/save") + public Result save(@RequestBody ClassicPaperSetDTO request) throws Exception { + return classicPaperSetApplicationService.save(request); + } }