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:
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user