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 @@