refactor: 合并三级缓存为统一缓存 + 重命名 saveDraft → savePreview

1. 三个 Caffeine Cache 合并为一个 jsonCache,key 用 :published/:draft 后缀区分
2. saveDraft → savePreview,更准确反映「预览版」语义(非临时草稿)
3. getPreviewBundleJson 去掉独立缓存,直接查 DB(preview 是 draft+published 逻辑并集,缓存意义不大)
4. 前端按钮「保存草稿」→「保存预览版」,API 路径 /save-draft → /save-preview
This commit is contained in:
mediabot-pt
2026-07-07 11:45:04 +08:00
parent 3cc7b932a8
commit ebfb6395db
4 changed files with 65 additions and 81 deletions

View File

@@ -380,22 +380,22 @@ public class AdminController {
} catch (Exception e) { return ApiResponse.error(500, "发布失败: " + e.getMessage()); }
}
/** 保存站点配置草稿(预览版,不上传 CDN) */
@PostMapping("/sites/{siteId}/save-draft")
public ApiResponse<Map<String, Object>> saveDraft(@PathVariable("siteId") String siteId,
HttpServletRequest request) {
/** 保存站点配置预览版(不上传 CDN) */
@PostMapping("/sites/{siteId}/save-preview")
public ApiResponse<Map<String, Object>> savePreview(@PathVariable("siteId") String siteId,
HttpServletRequest request) {
checkAdmin(request);
try {
var draft = snapshotService.saveDraft(siteId);
if (draft == null) {
return ApiResponse.error(400, "该站点无有效配置,无法保存草稿");
var preview = snapshotService.savePreview(siteId);
if (preview == null) {
return ApiResponse.error(400, "该站点无有效配置,无法保存预览版");
}
return ApiResponse.success(Map.of(
"siteId", draft.getSiteId(),
"version", draft.getVersion(),
"checksum", draft.getChecksum().substring(0, 8)));
"siteId", preview.getSiteId(),
"version", preview.getVersion(),
"checksum", preview.getChecksum().substring(0, 8)));
} catch (Exception e) {
return ApiResponse.error(500, "保存草稿失败: " + e.getMessage());
return ApiResponse.error(500, "保存预览版失败: " + e.getMessage());
}
}
@@ -407,7 +407,7 @@ public class AdminController {
try {
var published = snapshotService.publish(siteId);
if (published == null) {
return ApiResponse.error(400, "该站点无 draft 快照可发布");
return ApiResponse.error(400, "该站点无预览版快照可发布");
}
return ApiResponse.success(Map.of(
"siteId", published.getSiteId(),