From 4c751b658623fcf1b29a68fe3b9914ea493cc290 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Sun, 5 Jul 2026 23:55:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=BB=98=E8=AE=A4=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=B7=E7=AE=A1=E7=90=86+=E6=AF=8F?= =?UTF-8?q?=E6=AC=A1=E4=B8=8A=E4=BC=A0=E9=80=92=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../par/api/controller/ScriptController.java | 3 ++- .../par/core/adapter/GroovyScriptEngine.java | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/par-api/src/main/java/com/par/api/controller/ScriptController.java b/par-api/src/main/java/com/par/api/controller/ScriptController.java index 9463cd1..5794ed5 100644 --- a/par-api/src/main/java/com/par/api/controller/ScriptController.java +++ b/par-api/src/main/java/com/par/api/controller/ScriptController.java @@ -70,7 +70,8 @@ public class ScriptController { public ApiResponse> getDefaultScript(@PathVariable String siteType, HttpServletRequest request) { checkAdmin(request); String script = GroovyScriptEngine.loadDefaultByType(siteType); - return ApiResponse.success(Map.of("siteType", siteType, "script", script != null ? script : "")); + int version = GroovyScriptEngine.getDefaultVersion(siteType); + return ApiResponse.success(Map.of("siteType", siteType, "script", script != null ? script : "", "version", String.valueOf(version))); } /** 保存站点类型默认脚本到本地 */ diff --git a/par-core/src/main/java/com/par/core/adapter/GroovyScriptEngine.java b/par-core/src/main/java/com/par/core/adapter/GroovyScriptEngine.java index 71e7ddd..cb46821 100644 --- a/par-core/src/main/java/com/par/core/adapter/GroovyScriptEngine.java +++ b/par-core/src/main/java/com/par/core/adapter/GroovyScriptEngine.java @@ -70,7 +70,7 @@ public class GroovyScriptEngine { } /** - * 上传默认脚本到七牛云+本地缓存 + * 上传默认脚本到七牛云+本地缓存,自动递增版本号 */ public static void saveDefaultScript(String siteType, String script) { if (siteType == null || script == null) return; @@ -78,10 +78,26 @@ public class GroovyScriptEngine { DEFAULT_SCRIPTS_CACHE.put(key, script); if (storageService != null) { storageService.store(DEFAULT_SCRIPTS_PATH + key + ".groovy", script); + // 版本号递增 + int ver = getDefaultVersion(key) + 1; + storageService.store(DEFAULT_SCRIPTS_PATH + key + ".version", String.valueOf(ver)); } log.info("Default script uploaded: default-{}.groovy", key); } + /** 获取默认脚本版本号 */ + public static int getDefaultVersion(String siteType) { + if (siteType == null) return 0; + String key = siteType.toLowerCase(); + if (storageService != null) { + try { + String v = storageService.read(DEFAULT_SCRIPTS_PATH + key + ".version"); + if (v != null) return Integer.parseInt(v.trim()); + } catch (Exception ignored) {} + } + return 0; + } + /** * 加载站点类型默认脚本(优先七牛云/本地缓存,回退到 classpath) */