From f0b4c2807c463698719d2f3de037f2225118cf9a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 12 三月 2026 14:22:46 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/ai/service/impl/AiPromptTemplateServiceImpl.java |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/ai/service/impl/AiPromptTemplateServiceImpl.java b/src/main/java/com/zy/ai/service/impl/AiPromptTemplateServiceImpl.java
index fedfd7f..004d3fb 100644
--- a/src/main/java/com/zy/ai/service/impl/AiPromptTemplateServiceImpl.java
+++ b/src/main/java/com/zy/ai/service/impl/AiPromptTemplateServiceImpl.java
@@ -34,13 +34,15 @@
             synchronized (("ai_prompt_scene_init_" + scene.getCode()).intern()) {
                 prompt = findPublished(scene.getCode());
                 if (prompt == null) {
-                    prompt = ensurePublishedScene(scene);
+                    if (findLatest(scene.getCode()) == null) {
+                        prompt = ensurePublishedScene(scene);
+                    }
                 }
             }
         }
 
         if (prompt == null) {
-            throw new IllegalStateException("鏈壘鍒板凡鍙戝竷鐨� Prompt锛宻ceneCode=" + scene.getCode());
+            throw new IllegalStateException("褰撳墠鍦烘櫙娌℃湁宸插彂甯� Prompt锛宻ceneCode=" + scene.getCode());
         }
         return prompt;
     }
@@ -126,6 +128,26 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+    public AiPromptTemplate cancelPublish(Long id, Long operatorUserId) {
+        if (id == null) {
+            throw new IllegalArgumentException("id 涓嶈兘涓虹┖");
+        }
+        AiPromptTemplate db = this.getById(id);
+        if (db == null) {
+            throw new IllegalArgumentException("Prompt 涓嶅瓨鍦�");
+        }
+        if (!Short.valueOf((short) 1).equals(db.getPublished())) {
+            throw new IllegalArgumentException("褰撳墠 Prompt 涓嶆槸宸插彂甯冪姸鎬�");
+        }
+        db.setPublished((short) 0);
+        db.setPublishedBy(operatorUserId);
+        db.setPublishedTime(null);
+        this.updateById(db);
+        return db;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean deletePrompt(Long id) {
         if (id == null) {
             return false;
@@ -145,8 +167,8 @@
     public int initDefaultsIfMissing() {
         int changed = 0;
         for (AiPromptScene scene : AiPromptScene.values()) {
-            AiPromptTemplate prompt = findPublished(scene.getCode());
-            if (prompt == null) {
+            AiPromptTemplate latest = findLatest(scene.getCode());
+            if (latest == null) {
                 ensurePublishedScene(scene);
                 changed++;
             }

--
Gitblit v1.9.1