diff --git a/API/Wood.Admin.WebApi/Startup.cs b/API/Wood.Admin.WebApi/Startup.cs index 5f9f4d4..d3a25ad 100644 --- a/API/Wood.Admin.WebApi/Startup.cs +++ b/API/Wood.Admin.WebApi/Startup.cs @@ -70,9 +70,6 @@ namespace Wood.Admin.WebApi //初始化数据库 services.AddSqlSugar(Configuration); - - - services.AddHttpClient(); services.AddScoped(); services.AddScoped(); diff --git a/API/Wood.Admin.WebApi/appsettings.json b/API/Wood.Admin.WebApi/appsettings.json index 85671ec..9fdde1b 100644 --- a/API/Wood.Admin.WebApi/appsettings.json +++ b/API/Wood.Admin.WebApi/appsettings.json @@ -20,7 +20,7 @@ "DBEnableDiffLog": true, //是否开启差异化日志 "LogDays": 90, //系统日志保存的天数 "RunAutoJob": true, //是否执行自动job - "CustomerDb": "Server=192.168.1.228; Database=TaskManager1; User ID = sa; Password=ChangkeTec@2021; TrustServerCertificate = True" + "CustomerDb": "Server=192.168.1.228; Database=TaskManager2; User ID = sa; Password=ChangkeTec@2021; TrustServerCertificate = True" }, "JwtConfig": { "SecretKey": "3c1cac3f546eda35168c3aa3cn91780fbe703f0996c6d123ea96dc85c70bbc0a", // 密钥,string 类型,必须是复杂密钥,长度大于16 diff --git a/API/Wood.Service/Controllers/RecurringJobBaseController.cs b/API/Wood.Service/Controllers/RecurringJobBaseController.cs index 9048666..cb168f2 100644 --- a/API/Wood.Service/Controllers/RecurringJobBaseController.cs +++ b/API/Wood.Service/Controllers/RecurringJobBaseController.cs @@ -1,4 +1,5 @@  +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; @@ -22,6 +23,7 @@ using TaskManager.EntityFramework; namespace TaskManager.Controllers { + [AllowAnonymous] public class RecurringJobBaseController :ControllerBase, IDoExecute { protected string appKey = "8EG566b9bedd2bf46d"; diff --git a/API/Wood.Service/Controllers/RecurringJobOutPageController.cs b/API/Wood.Service/Controllers/RecurringJobOutPageController.cs index 5fd118e..5a09666 100644 --- a/API/Wood.Service/Controllers/RecurringJobOutPageController.cs +++ b/API/Wood.Service/Controllers/RecurringJobOutPageController.cs @@ -1,5 +1,8 @@ -using Microsoft.AspNetCore.Mvc; +using Magicodes.ExporterAndImporter.Excel; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; using Omu.ValueInjecter; using System.Linq.Expressions; using System.Text.Json; @@ -24,6 +27,44 @@ namespace TaskManager.Controllers { _repository = repository; } + + protected async Task ExportFile(ICollection dtos, string fileName) where T : class, new() + { + var excelExporter = HttpContext.RequestServices.GetRequiredService(); + var res = await excelExporter.ExportAsByteArray(dtos); + return new FileStreamResult(new MemoryStream(res), "application/octet-stream") { FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "_" + fileName }; + } + + public async Task Export([FromQuery] int pageNumber = 1, + [FromQuery] int pageSize = 10, + [FromQuery] string sortBy = "", + [FromQuery] bool isAscending = true, + [FromQuery] Dictionary filters = null) + { + var pagingParams = new PagingParams + { + PageNumber = pageNumber, + PageSize = pageSize, + SortBy = sortBy, + IsAscending = isAscending, + Filters = filters + }; + + // 可以在这里构建表达式树过滤条件 + Expression> filter = null; + + var pagedResult = await _repository.GetPagedAsync(filter, pagingParams); + return await ExportFile(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx"); + + + } + + + + + + + [NonAction] public async Task> FetchAllDataAsync(string inputdate) { diff --git a/API/Wood.Service/Controllers/TaskConifgureController.cs b/API/Wood.Service/Controllers/TaskConifgureController.cs index c534af9..a248b15 100644 --- a/API/Wood.Service/Controllers/TaskConifgureController.cs +++ b/API/Wood.Service/Controllers/TaskConifgureController.cs @@ -1,4 +1,6 @@ using Hangfire; +using Magicodes.ExporterAndImporter.Excel; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -7,7 +9,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; + using System; using System.IO; using System.Linq.Expressions; @@ -21,6 +23,8 @@ namespace TaskManager.Controllers { //[ApiController] //[Route("[controller]")] + + [AllowAnonymous] public class TaskConifgureController : ControllerBase { private readonly JobDbContext _context; @@ -34,6 +38,15 @@ namespace TaskManager.Controllers _configuration = configuration; _repository = repository; } + + protected async Task ExportFile(ICollection dtos, string fileName) where T : class, new() + { + var excelExporter = HttpContext.RequestServices.GetRequiredService(); + var res = await excelExporter.ExportAsByteArray(dtos); + return new FileStreamResult(new MemoryStream(res), "application/octet-stream") { FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "_" + fileName }; + } + + /// /// 请除所有任务 /// @@ -72,6 +85,34 @@ namespace TaskManager.Controllers } + public async Task Export([FromQuery] int pageNumber = 1, + [FromQuery] int pageSize = 10, + [FromQuery] string sortBy = "", + [FromQuery] bool isAscending = true, + [FromQuery] Dictionary filters = null) + { + var pagingParams = new PagingParams + { + PageNumber = pageNumber, + PageSize = pageSize, + SortBy = sortBy, + IsAscending = isAscending, + Filters = filters + }; + + // 可以在这里构建表达式树过滤条件 + Expression> filter = null; + + var pagedResult = await _repository.GetPagedAsync(null, pagingParams); + return await ExportFile(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx"); + + + } + + + + + /// /// 执行铁定任务 ///