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();
}
}