using DouyinApi.Common.Caches; using DouyinApi.Common.Caches.Interface; using DouyinApi.Controllers; using DouyinApi.Model; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace DouyinApi.Api.Controllers.Systems; /// /// 缓存管理 /// [Route("api/Systems/[controller]")] [ApiController] [Authorize(Permissions.Name)] public class CacheManageController(ICaching caching) : BaseApiController { /// /// 获取全部缓存 /// /// [HttpGet] public MessageModel> Get() { return Success(caching.GetAllCacheKeys()); } /// /// 获取缓存 /// /// [HttpGet("{key}")] public async Task> Get(string key) { return Success(await caching.GetStringAsync(key)); } /// /// 新增 /// /// [HttpPost] public async Task Post([FromQuery] string key, [FromQuery] string value, [FromQuery] int? expire) { if (expire.HasValue) await caching.SetStringAsync(key, value, TimeSpan.FromMilliseconds(expire.Value)); else await caching.SetStringAsync(key, value); return Success(); } /// /// 删除全部缓存 /// /// [HttpDelete] public MessageModel Delete() { caching.RemoveAll(); return Success(); } /// /// 删除缓存 /// /// [Route("{key}")] [HttpDelete] public async Task Delete(string key) { await caching.RemoveAsync(key); return Success(); } }