diff --git a/server/HoneyBox/src/HoneyBox.Admin.Business/Controllers/ConfigController.cs b/server/HoneyBox/src/HoneyBox.Admin.Business/Controllers/ConfigController.cs
index fcb8fee0..48500a62 100644
--- a/server/HoneyBox/src/HoneyBox.Admin.Business/Controllers/ConfigController.cs
+++ b/server/HoneyBox/src/HoneyBox.Admin.Business/Controllers/ConfigController.cs
@@ -149,4 +149,23 @@ public class ConfigController : BusinessControllerBase
{
return Ok(ConfigKeys.AllKeys);
}
+
+ ///
+ /// 清除所有用户海报缓存
+ ///
+ /// 清除结果
+ [HttpDelete("poster-cache")]
+ [BusinessPermission("config:edit")]
+ public async Task ClearAllPosterCache()
+ {
+ try
+ {
+ var count = await _configService.ClearAllPosterCacheAsync();
+ return Ok(new { message = $"成功清除 {count} 条海报缓存", count });
+ }
+ catch (Exception)
+ {
+ return Error(BusinessErrorCodes.InternalError, "清除海报缓存失败");
+ }
+ }
}
diff --git a/server/HoneyBox/src/HoneyBox.Admin.Business/Services/AdminConfigService.cs b/server/HoneyBox/src/HoneyBox.Admin.Business/Services/AdminConfigService.cs
index 135c5c6e..f34cd584 100644
--- a/server/HoneyBox/src/HoneyBox.Admin.Business/Services/AdminConfigService.cs
+++ b/server/HoneyBox/src/HoneyBox.Admin.Business/Services/AdminConfigService.cs
@@ -189,6 +189,23 @@ public class AdminConfigService : IAdminConfigService
}
}
+ ///
+ public async Task ClearAllPosterCacheAsync()
+ {
+ try
+ {
+ // 删除所有海报缓存记录
+ var count = await _dbContext.Database.ExecuteSqlRawAsync("DELETE FROM user_poster_cache");
+ _logger.LogInformation("Cleared {Count} poster cache records", count);
+ return count;
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Failed to clear poster cache");
+ throw;
+ }
+ }
+
#region Private Validation Methods
///
diff --git a/server/HoneyBox/src/HoneyBox.Admin.Business/Services/Interfaces/IAdminConfigService.cs b/server/HoneyBox/src/HoneyBox.Admin.Business/Services/Interfaces/IAdminConfigService.cs
index 98e08792..c2202266 100644
--- a/server/HoneyBox/src/HoneyBox.Admin.Business/Services/Interfaces/IAdminConfigService.cs
+++ b/server/HoneyBox/src/HoneyBox.Admin.Business/Services/Interfaces/IAdminConfigService.cs
@@ -52,4 +52,10 @@ public interface IAdminConfigService
///
/// 配置键
Task ClearConfigCacheAsync(string key);
+
+ ///
+ /// 清除所有用户海报缓存
+ ///
+ /// 清除的记录数
+ Task ClearAllPosterCacheAsync();
}
diff --git a/server/HoneyBox/src/HoneyBox.Admin/admin-web/src/api/business/config.ts b/server/HoneyBox/src/HoneyBox.Admin/admin-web/src/api/business/config.ts
index 02ed6ff0..ae24dae2 100644
--- a/server/HoneyBox/src/HoneyBox.Admin/admin-web/src/api/business/config.ts
+++ b/server/HoneyBox/src/HoneyBox.Admin/admin-web/src/api/business/config.ts
@@ -708,3 +708,22 @@ export function getRankSettingSetting(): Promise> {
return updateConfig('rank_setting', value)
}
+
+// ==================== 海报缓存管理 ====================
+
+/** 清除海报缓存响应 */
+export interface ClearPosterCacheResponse {
+ message: string
+ count: number
+}
+
+/**
+ * 清除所有用户海报缓存
+ * @returns 清除结果
+ */
+export function clearPosterCache(): Promise> {
+ return request({
+ url: `${CONFIG_BASE_URL}/poster-cache`,
+ method: 'delete'
+ })
+}
diff --git a/server/HoneyBox/src/HoneyBox.Admin/admin-web/src/views/business/config/base.vue b/server/HoneyBox/src/HoneyBox.Admin/admin-web/src/views/business/config/base.vue
index 1ffe8e83..aeeee407 100644
--- a/server/HoneyBox/src/HoneyBox.Admin/admin-web/src/views/business/config/base.vue
+++ b/server/HoneyBox/src/HoneyBox.Admin/admin-web/src/views/business/config/base.vue
@@ -266,7 +266,7 @@
-
+
二维码在海报上的X坐标(像素)
-
+
二维码在海报上的Y坐标(像素)
-
+
二维码宽高(像素)
+
+
+
+ 清除所有缓存
+
+ 修改海报配置后需清除缓存才能生效
+
+
@@ -340,14 +348,15 @@