From cf4c97daf5ab1f4ff5a57eadb489b8cfa7a2ca63 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Mon, 6 Jul 2026 00:35:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=BB=98=E8=AE=A4=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=A2=9E=E5=8A=A0=E4=B8=8A=E4=BC=A0=E6=8C=89?= =?UTF-8?q?=E9=92=AE+=E5=AF=B9=E5=BA=94=E5=90=8E=E7=AB=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../par/api/controller/SitePagesController.java | 16 ++++++++++++++++ web/src/views/SitePages.vue | 14 +++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/par-api/src/main/java/com/par/api/controller/SitePagesController.java b/par-api/src/main/java/com/par/api/controller/SitePagesController.java index a3ab39a..ac0af5a 100644 --- a/par-api/src/main/java/com/par/api/controller/SitePagesController.java +++ b/par-api/src/main/java/com/par/api/controller/SitePagesController.java @@ -17,6 +17,7 @@ public class SitePagesController { private final SitePagesService sitePagesService; private final com.par.core.mapper.SiteMapper siteMapper; + private final com.par.core.storage.CachedStorageService storageService; @GetMapping("/api/v1/sites/{siteId}/pages") public ApiResponse> getPages(@PathVariable String siteId) { @@ -109,6 +110,21 @@ public class SitePagesController { return ApiResponse.success(); } + /** 发布默认页面模板到云存储 */ + @PutMapping("/api/v1/admin/default-pages/{type}/upload") + public ApiResponse uploadDefaultPages( + @PathVariable String type, @RequestBody Map payload, HttpServletRequest request) { + checkAdmin(request); + @SuppressWarnings("unchecked") + var entries = (List>) payload.get("entries"); + sitePagesService.savePages("default:" + type, entries != null ? entries : List.of()); + String json = payload.containsKey("entries") + ? new com.fasterxml.jackson.databind.ObjectMapper().writeValueAsString(entries) + : "[]"; + storageService.store("pages/default/" + type + ".json", json); + return ApiResponse.success(); + } + private void checkAdmin(HttpServletRequest request) { var level = request.getAttribute("trustLevel"); if (level == null || !"ADMIN".equals(level.toString())) { diff --git a/web/src/views/SitePages.vue b/web/src/views/SitePages.vue index 9266eec..dd73ecd 100644 --- a/web/src/views/SitePages.vue +++ b/web/src/views/SitePages.vue @@ -46,6 +46,7 @@

编辑: {{ editSiteId }}

保存 + 上传 删除 返回列表
@@ -86,9 +87,10 @@