using MiaoYu.Api.Admin.ApplicationServices.Apps; using MiaoYu.Api.Admin.Models.Dtos.Apps.Cos; using MiaoYu.Core.Cos.Models; using MiaoYu.Repository.ChatAI.Admin.Entities; using Microsoft.AspNetCore.Http.Extensions; using Microsoft.AspNetCore.Mvc.ModelBinding; using NPOI.HPSF; using System.Net; namespace MiaoYu.Api.Admin.Controllers.Apps; /// /// 图片表 控制器 /// [ControllerDescriptor(MenuId = "44", DisplayName = "图片表")] public class TImageConfigController : AdminControllerBase { public TImageConfigController(TImageConfigService defaultService) : base(defaultService) { } /// /// 获取列表 /// /// /// [ActionDescriptor(PermissionFunctionConsts.Function_Display, DisplayName = "查看数据")] [HttpPost] public Task FindListAsync([FromBody] PagingSearchInput pagingSearchInput) { return this._defaultService.FindListAsync(pagingSearchInput); } /// /// 根据id数组删除 /// /// ids /// [ActionDescriptor(PermissionFunctionConsts.Function_Delete, DisplayName = "删除数据")] [HttpPost] public async Task DeleteListAsync([FromBody] List ids) { await this._defaultService.DeleteListAsync(ids); return true; } /// /// 查询表单数据 /// /// id /// [ActionDescriptor(DisplayName = "查看表单")] [HttpGet("{id?}")] public Task> FindFormAsync([FromRoute] int id) { return this._defaultService.FindFormAsync(id); } /// /// 添加 /// /// /// [RequestLimitFilter(Duration = 1, LimitCount = 1)] [ActionDescriptor(PermissionFunctionConsts.Function_Insert, DisplayName = "创建表单")] [HttpPost] [ApiCheckModel] public async Task CreateAsync([FromBody] T_Image_Config form) { form.UpdateAt = DateTime.Now; form.CreateAt = DateTime.Now; var image = await this._defaultService.SaveFormAsync(form, false); return image?.ImageId ?? 0; } /// /// 编辑 /// /// /// [RequestLimitFilter(Duration = 1, LimitCount = 1)] [ActionDescriptor(PermissionFunctionConsts.Function_Update, DisplayName = "编辑表单")] [HttpPost] [ApiCheckModel] public async Task UpdateAsync([FromBody] T_Image_Config form) { form.UpdateAt = DateTime.Now; var image = await this._defaultService.SaveFormAsync(form, true); return image?.ImageId ?? 0; } /// /// 导出Excel /// /// /// [ActionDescriptor(PermissionFunctionConsts.Function_Export, DisplayName = "导出数据")] [ApiResourceCacheFilter(10)] [HttpPost] public async Task ExportExcelAsync([FromBody] PagingSearchInput pagingSearchInput) { var data = await this._defaultService.ExportExcelAsync(pagingSearchInput); var name = $"{PermissionUtil.GetControllerDisplayName(this.GetType())}列表数据 {DateTime.Now.ToString("yyyy-MM-dd")}.xls"; base.HttpContext.DownLoadFile(data, Tools.GetFileContentType[".xls"].ToStr(), name); } /// /// /// /// [HttpGet] [ActionDescriptor(DisplayName = "获取cos加密")] public string GetCosSign() { return this._defaultService.GetCosSign(); } /// /// 获取临时密钥 /// /// [HttpGet] [ActionDescriptor(DisplayName = "获取cos临时密钥")] public GenerateTemporaryModel GetGenerateTemporaryKey(string fileName = "", string modelName = "") { return this._defaultService.GetGenerateTemporaryKey(fileName, modelName); } /// /// 获取临时密钥 /// /// [ActionDescriptor(DisplayName = "获取图片")] [HttpGet("{imageId?}")] [AllowAnonymous] public async Task Image([FromRoute] int imageId) { var url = await this._defaultService.GetImageUrl(imageId); if (!string.IsNullOrEmpty(url)) { Response.Redirect(url); } } /// /// 获取图片数据源 /// /// /// [ActionDescriptor(DisplayName = "获取图片数据源")] [HttpGet] public async Task GetImageList([FromQuery] string? name) { name = WebUtility.UrlDecode(name); return await this._defaultService.GetImageList(name); } }