From a66a78a0f3cd8ea43bc8c1deed584c3901adb79f Mon Sep 17 00:00:00 2001 From: Peanut Date: Sun, 28 Jun 2026 18:09:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20EpicScriptController=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=20createWithDialogue=20=E5=92=8C=20switchVersion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EpicScriptController.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/server/src/main/java/com/emotion/controller/EpicScriptController.java b/server/src/main/java/com/emotion/controller/EpicScriptController.java index c13c8f3..db4d3c9 100644 --- a/server/src/main/java/com/emotion/controller/EpicScriptController.java +++ b/server/src/main/java/com/emotion/controller/EpicScriptController.java @@ -3,12 +3,16 @@ package com.emotion.controller; import com.emotion.common.PageResult; import com.emotion.common.Result; import com.emotion.dto.request.EpicScriptCreateRequest; +import com.emotion.dto.request.EpicScriptCreateWithDialogueRequest; import com.emotion.dto.request.EpicScriptInspirationRequest; import com.emotion.dto.request.EpicScriptPageRequest; import com.emotion.dto.request.EpicScriptUpdateRequest; +import com.emotion.dto.request.SwitchVersionRequest; +import com.emotion.dto.response.EpicScriptCreateWithDialogueResponse; import com.emotion.dto.response.EpicScriptInspirationResponse; import com.emotion.dto.response.EpicScriptResponse; import com.emotion.dto.response.InspirationSuggestionResponse; +import com.emotion.service.EpicScriptDialogueService; import com.emotion.service.EpicScriptService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -34,6 +38,9 @@ public class EpicScriptController { @Autowired private EpicScriptService epicScriptService; + @Autowired + private EpicScriptDialogueService epicScriptDialogueService; + /** * 分页查询当前用户的爽文剧本 */ @@ -109,6 +116,14 @@ public class EpicScriptController { return Result.success(script); } + @Operation(summary = "创建剧本并创建对话", description = "用户输入心愿后,创建剧本、创建对话并生成第一条 AI 剧本消息。") + @PostMapping(value = "/createWithDialogue") + public Result createWithDialogue( + @Valid @RequestBody EpicScriptCreateWithDialogueRequest request) { + EpicScriptCreateWithDialogueResponse response = epicScriptDialogueService.createWithDialogue(request); + return Result.success(response); + } + /** * 更新爽文剧本 */ @@ -135,6 +150,16 @@ public class EpicScriptController { return Result.success(script); } + @Operation(summary = "切换剧本当前版本", description = "将指定消息设为剧本当前生效版本。") + @PutMapping(value = "/switchVersion") + public Result switchVersion(@Valid @RequestBody SwitchVersionRequest request) { + EpicScriptResponse response = epicScriptService.switchVersion(request.getScriptId(), request.getMessageId()); + if (response == null) { + return Result.error("切换失败"); + } + return Result.success(response); + } + /** * 删除爽文剧本 */