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) */