namespace CloudGaming.Shared.Admin.ApplicationServices;
///
/// 后台系统基础控制器
///
///
///
///
///
///
public abstract class ApplicationControllerBase(
IServiceProvider serviceProvider) :
ApplicationControllerBase(serviceProvider)
where TService : ApplicationService
where TEntity : class, new()
where TSearchDto : class, new()
where TSaveFormDto : class, new()
{
///
/// 获取列表
///
///
///
[ActionDescriptor(DisplayName = "查看数据列表")]
[ApiResourceCacheFilter(1)]
[Microsoft.AspNetCore.Mvc.HttpPost]
public virtual async Task FindListAsync([FromBody] PagingSearchInput pagingSearchInput)
{
return await Service.FindListAsync(pagingSearchInput);
}
///
///
///
///
[ActionDescriptor(DisplayName = "查看数据列表")]
[ApiResourceCacheFilter(1)]
[Microsoft.AspNetCore.Mvc.HttpGet]
public virtual async Task> FindListAsync()
{
return await Service.FindListAsync();
}
///
/// 根据id数组删除
///
///
///
[ActionDescriptor(DisplayName = "删除数据")]
[Microsoft.AspNetCore.Mvc.HttpPost]
public virtual async Task DeleteListAsync([FromBody] List ids)
{
await Service.DeleteListAsync(ids);
return true;
}
///
/// 查询表单数据
///
///
///
[ActionDescriptor(DisplayName = "查看表单")]
[Microsoft.AspNetCore.Mvc.HttpGet("{id?}")]
public virtual Task> FindFormAsync([FromRoute] TKey id)
{
return Service.FindFormAsync(id);
}
///
/// 添加
///
///
///
[RequestLimitFilter]
[ActionDescriptor(PermissionFunctionConsts.Function_Insert, DisplayName = "创建表单")]
[Microsoft.AspNetCore.Mvc.HttpPost]
[ApiCheckModel]
public virtual Task CreateAsync([FromBody] TSaveFormDto form)
{
return Service.SaveFormAsync(form);
}
///
/// 编辑
///
///
///
[RequestLimitFilter]
[ActionDescriptor(PermissionFunctionConsts.Function_Update, DisplayName = "编辑表单")]
[Microsoft.AspNetCore.Mvc.HttpPost]
[ApiCheckModel]
public virtual Task UpdateAsync([FromBody] TSaveFormDto form)
{
return Service.SaveFormAsync(form);
}
///
/// 导出Excel
///
///
///
[ActionDescriptor(DisplayName = "导出数据")]
[ApiResourceCacheFilter(10)]
[Microsoft.AspNetCore.Mvc.HttpPost]
public virtual async Task ExportExcelAsync([FromBody] PagingSearchInput pagingSearchInput)
=> HttpContext.DownLoadFile(await Service.ExportExcelAsync(pagingSearchInput),
Tools.GetFileContentType[".xls"].ToStr(),
$"{PermissionUtil.GetControllerDisplayName(GetType())}列表数据 {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}.xls");
///
/// 查询表单数据
///
///
///
[ActionDescriptor(DisplayName = "查询排序")]
[Microsoft.AspNetCore.Mvc.HttpGet]
public virtual int GetOrderId([FromQuery] string selectName, [FromQuery] string orderIdName, [FromQuery] string value)
{
return Service.GetOrderId(selectName, orderIdName, value) ?? 0;
}
}