using Microsoft.AspNetCore.Mvc; using MiniExcelLibs; using NPOI.SS.UserModel; using SqlSugar; using System.Xml.Linq; using WCS.BLL.DbModels; using WCS.BLL.Manager; using WCS.BLL.Services.IService; using WCS.BLL.Services.Service; using WCS.DAL.Db; using WCS.Model; using WCS.Model.ApiModel; using WCS.WebApi.Helper; namespace WCS.WebApi.Controllers { /// /// 接口记录 /// [ApiController] [Route("[controller]")] public class InterfaceRecordController : ControllerBase { public IInterfaceRecordService _interfaceRecordService { get; set; } public InterfaceRecordController(IInterfaceRecordService interfaceRecordService) { _interfaceRecordService = interfaceRecordService; } [Route("getInterfaceRecord")] [HttpPost(Name = "getInterfaceRecord")] public async Task getInterfaceRecord(GetInterfaceRecordsRequest request) { return await _interfaceRecordService.getInterfaceRecord(request); } [HttpPost("exportInterfaceRecord")] public async Task exportInterfaceRecord([FromBody] GetInterfaceRecordsRequest request) { var result = await _interfaceRecordService.exportInterfaceRecord(request); var data = result.Data?.Lists; var columns = new[] { new ExportableColumn("序号","RowNumber"), new ExportableColumn("接口地址","RequestUrl"), new ExportableColumn("设备IP","DeviceIp"), new ExportableColumn("请求参数","RequestBody"), new ExportableColumn("QueryString","QueryString"), new ExportableColumn("请求时间","RequestTime"), new ExportableColumn("返回参数","ResponseJson"), new ExportableColumn("返回时间","ResponseTime"), new ExportableColumn("耗时(ms)", "ExecutionTime"), }; if (data == null) { return NotFound(); } else return ExportExcelHelper.Export("导出数据", columns, data); // 导出到Excel //using (var stream = new MemoryStream()) //{ // // 获取当前工作目录 // string currentPath = Directory.GetCurrentDirectory(); // // 创建文件路径 // string filePath = Path.Combine(currentPath, "data.xlsx"); // //MiniExcel.SaveAs(filePath, data); // MiniExcel.SaveAs(stream, data); // // 重置位置 // //stream.Position = 0; // //// 通过接口下载文件 // //return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "data.xlsx"); // var isXlsx = true; // var saveAsFileName = string.Format("{0}-{1:d}.{2}", "测试", DateTime.Now, (isXlsx ? "xlsx" : "xls")).Replace("/", "-"); // var contentType = isXlsx ? "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" : "application/vnd.ms-excel"; // return new FileContentResult(stream.ToArray(), contentType) { FileDownloadName = saveAsFileName }; //} } } }