using Application; using Application.Dto; namespace WebApi.Controllers; /// /// 账单导入控制器 /// [ApiController] [Route("api/[controller]/[action]")] public class BillImportController( IImportApplication importApplication ) : ControllerBase { /// /// 上传账单文件 /// /// 账单文件 /// 账单类型(Alipay | WeChat) /// [HttpPost] public async Task UploadFile( [FromForm] IFormFile file, [FromForm] string type ) { // 将IFormFile转换为ImportRequest var stream = new MemoryStream(); await file.CopyToAsync(stream); stream.Position = 0; var request = new ImportRequest { FileStream = stream, FileExtension = Path.GetExtension(file.FileName).ToLowerInvariant(), FileName = file.FileName, FileSize = file.Length }; ImportResponse result; if (type == "Alipay") { result = await importApplication.ImportAlipayAsync(request); } else if (type == "WeChat") { result = await importApplication.ImportWeChatAsync(request); } else { return "账单类型参数错误,必须是 Alipay 或 WeChat".Fail(); } return result.Message.Ok(); } }