|
|
@ -87,6 +87,8 @@ namespace Wood.Service.Controllers |
|
|
|
await _repository.DeleteAsync(id); |
|
|
|
return new JsonResult(new { Code = 200, Message = "删除成功!" }); ; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[HttpGet] |
|
|
|
public async Task<ActionResult<PagedResult<T>>> GetPaged( |
|
|
|
[FromQuery] int pageNumber = 1, |
|
|
@ -110,11 +112,13 @@ namespace Wood.Service.Controllers |
|
|
|
var pagedResult = await _repository.GetPagedAsync(filter, pagingParams); |
|
|
|
return Ok(pagedResult); |
|
|
|
} |
|
|
|
public async Task<FileStreamResult> Export([FromQuery] int pageNumber = 1, |
|
|
|
[FromQuery] int pageSize = 10, |
|
|
|
[FromQuery] string sortBy = "", |
|
|
|
[FromQuery] bool isAscending = true, |
|
|
|
[FromQuery] Dictionary<string, string> filters = null) |
|
|
|
|
|
|
|
|
|
|
|
public async Task<FileStreamResult> Export<T>([FromQuery] int pageNumber = 1, |
|
|
|
[FromQuery] int pageSize = 10, |
|
|
|
[FromQuery] string sortBy = "", |
|
|
|
[FromQuery] bool isAscending = true, |
|
|
|
[FromQuery] Dictionary<string, string> filters = null) where T : class, new() |
|
|
|
{ |
|
|
|
var pagingParams = new PagingParams |
|
|
|
{ |
|
|
@ -133,7 +137,7 @@ namespace Wood.Service.Controllers |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
protected async Task<FileStreamResult> ExportFile(ICollection<T> dtos, string fileName) |
|
|
|
protected async Task<FileStreamResult> ExportFile<T>(ICollection<T> dtos, string fileName) where T: class, new() |
|
|
|
{ |
|
|
|
var excelExporter = HttpContext.RequestServices.GetRequiredService<IExcelExporter>(); |
|
|
|
var res = await excelExporter.ExportAsByteArray<T>(dtos); |
|
|
@ -142,7 +146,7 @@ namespace Wood.Service.Controllers |
|
|
|
|
|
|
|
|
|
|
|
[HttpGet] |
|
|
|
public async Task<IActionResult> GetImportTemplate() |
|
|
|
public async Task<IActionResult> GetImportTemplate<T>() where T: class, new() |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
@ -150,8 +154,8 @@ namespace Wood.Service.Controllers |
|
|
|
var importer = new ExcelImporter(); |
|
|
|
|
|
|
|
// 生成导入模板流(这里假设使用 YourModel 作为导入模型)
|
|
|
|
using var stream = new MemoryStream(); |
|
|
|
await importer.GenerateTemplate(stream, typeof(T)); |
|
|
|
byte[] by = await importer.GenerateTemplateBytes<T>(); |
|
|
|
using var stream = new MemoryStream(by); |
|
|
|
stream.Seek(0, SeekOrigin.Begin); |
|
|
|
|
|
|
|
// 设置友好的文件名,例如:"导入模板_20250530.xlsx"
|
|
|
|