From 57f1e311b64ba6bb9c1b130d97af4240f3c3af41 Mon Sep 17 00:00:00 2001 From: Peanut Date: Sun, 28 Jun 2026 18:00:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=20EpicScriptService.?= =?UTF-8?q?switchVersion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- .../service/impl/EpicScriptServiceImpl.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/server/src/main/java/com/emotion/service/impl/EpicScriptServiceImpl.java b/server/src/main/java/com/emotion/service/impl/EpicScriptServiceImpl.java index 4a97253..0077625 100644 --- a/server/src/main/java/com/emotion/service/impl/EpicScriptServiceImpl.java +++ b/server/src/main/java/com/emotion/service/impl/EpicScriptServiceImpl.java @@ -14,11 +14,15 @@ import com.emotion.dto.response.ai.AiRuntimeTestResponse; import com.emotion.dto.response.EpicScriptInspirationResponse; import com.emotion.dto.response.EpicScriptResponse; import com.emotion.dto.response.InspirationSuggestionResponse; +import com.emotion.entity.Conversation; import com.emotion.entity.EpicScript; +import com.emotion.entity.Message; import com.emotion.mapper.EpicScriptMapper; import com.emotion.service.AiRuntimeService; +import com.emotion.service.ConversationService; import com.emotion.service.EpicScriptService; import com.emotion.service.LifePathService; +import com.emotion.service.MessageService; import com.emotion.service.ScriptContextService; import com.emotion.service.TtsTaskService; import com.emotion.util.UserContextHolder; @@ -79,6 +83,12 @@ public class EpicScriptServiceImpl extends ServiceImpl getPageByCurrentUser(EpicScriptPageRequest request) { String currentUserId = UserContextHolder.getCurrentUserId(); @@ -675,6 +685,46 @@ public class EpicScriptServiceImpl extends ServiceImpl metadata = parseMetadata(message.getMetadata()); + script.setTitle((String) metadata.getOrDefault("title", script.getTitle())); + script.setPlotIntro((String) metadata.getOrDefault("plotIntro", "")); + script.setPlotTurning((String) metadata.getOrDefault("plotTurning", "")); + script.setPlotClimax((String) metadata.getOrDefault("plotClimax", "")); + script.setPlotEnding((String) metadata.getOrDefault("plotEnding", "")); + + Map plotJson = script.getPlotJson(); + if (plotJson == null) { + plotJson = new java.util.HashMap<>(); + } + plotJson.putAll(metadata); + script.setPlotJson(plotJson); + this.updateById(script); + + Conversation conversation = conversationService.getById(script.getConversationId()); + if (conversation != null) { + conversation.setCurrentMessageId(messageId); + conversationService.updateById(conversation); + } + + return convertToResponse(script); + } + @Override public boolean deleteScript(String id) { EpicScript script = this.getById(id); @@ -695,6 +745,20 @@ public class EpicScriptServiceImpl extends ServiceImpl parseMetadata(String metadataJson) { + if (!StringUtils.hasText(metadataJson)) { + return new java.util.HashMap<>(); + } + try { + return com.alibaba.fastjson2.JSON.parseObject(metadataJson, Map.class); + } catch (Exception e) { + return new java.util.HashMap<>(); + } + } + /** * 转换为响应对象 */