From b806a01f137837b58772539eccff3b3112705b84 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Mon, 29 Jun 2026 23:21:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=A1=E6=A0=B8=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E6=96=87=E4=BB=B6=E5=88=B0approved=EF=BC=8C?= =?UTF-8?q?=E6=8B=92=E7=BB=9D=E5=88=A0=E9=99=A4pending=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - StorageService 新增 delete() - approve: 文件 pending → approved - reject: 删除 pending 文件 --- .../java/com/par/api/controller/AdminController.java | 4 ++++ .../com/par/core/storage/CachedStorageService.java | 6 ++++++ .../com/par/core/storage/LocalStorageService.java | 9 +++++++++ .../com/par/core/storage/QiniuStorageService.java | 11 +++++++++++ .../java/com/par/core/storage/StorageService.java | 3 +++ 5 files changed, 33 insertions(+) diff --git a/par-api/src/main/java/com/par/api/controller/AdminController.java b/par-api/src/main/java/com/par/api/controller/AdminController.java index 44ad570..41a8408 100644 --- a/par-api/src/main/java/com/par/api/controller/AdminController.java +++ b/par-api/src/main/java/com/par/api/controller/AdminController.java @@ -135,6 +135,10 @@ public class AdminController { Long reviewerId = (Long) request.getAttribute("accountId"); + // 删除 pending 文件 + storageService.delete(config.getStoragePath()); + + config.setStoragePath(null); config.setStatus(ConfigStatus.REJECTED); config.setReviewerId(reviewerId); config.setReviewedAt(LocalDateTime.now()); diff --git a/par-core/src/main/java/com/par/core/storage/CachedStorageService.java b/par-core/src/main/java/com/par/core/storage/CachedStorageService.java index 69a5429..766f88c 100644 --- a/par-core/src/main/java/com/par/core/storage/CachedStorageService.java +++ b/par-core/src/main/java/com/par/core/storage/CachedStorageService.java @@ -55,4 +55,10 @@ public class CachedStorageService implements StorageService { if (isQiniuMode()) return local.exists(path) || qiniu.exists(path); return local.exists(path); } + + @Override + public void delete(String path) { + local.delete(path); + if (isQiniuMode()) qiniu.delete(path); + } } diff --git a/par-core/src/main/java/com/par/core/storage/LocalStorageService.java b/par-core/src/main/java/com/par/core/storage/LocalStorageService.java index c113e99..ab4cd66 100644 --- a/par-core/src/main/java/com/par/core/storage/LocalStorageService.java +++ b/par-core/src/main/java/com/par/core/storage/LocalStorageService.java @@ -63,4 +63,13 @@ public class LocalStorageService implements StorageService { public boolean exists(String path) { return Files.exists(baseDir.resolve(path)); } + + @Override + public void delete(String path) { + try { + Files.deleteIfExists(baseDir.resolve(path)); + } catch (IOException e) { + log.warn("删除文件失败 {}: {}", path, e.getMessage()); + } + } } diff --git a/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java b/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java index fd43ea9..ebde71f 100644 --- a/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java +++ b/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java @@ -93,6 +93,17 @@ public class QiniuStorageService implements StorageService { } } + @Override + public void delete(String path) { + ensureInit(); + try { + bucketManager.delete(bucket, path); + log.debug("Qiniu 删除: {}", path); + } catch (QiniuException e) { + log.warn("Qiniu 删除失败 {}: {}", path, e.response != null ? e.response.error : e.getMessage()); + } + } + private static String env(String key) { return System.getenv(key); } private static String env(String key, String def) { String v = System.getenv(key); diff --git a/par-core/src/main/java/com/par/core/storage/StorageService.java b/par-core/src/main/java/com/par/core/storage/StorageService.java index 875f06c..bc45ed9 100644 --- a/par-core/src/main/java/com/par/core/storage/StorageService.java +++ b/par-core/src/main/java/com/par/core/storage/StorageService.java @@ -15,4 +15,7 @@ public interface StorageService { /** 检查是否存在 */ boolean exists(String path); + + /** 删除文件 */ + void delete(String path); }