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);
}
}