Files
EmailBill/WebApi/Controllers/EmailMessageController.cs
SunCheng d052ae5197 fix
2026-02-10 17:49:19 +08:00

66 lines
1.7 KiB
C#

using Application.Dto.Email;
using Application;
namespace WebApi.Controllers;
[ApiController]
[Route("api/[controller]/[action]")]
public class EmailMessageController(
IEmailMessageApplication emailApplication
) : ControllerBase
{
/// <summary>
/// 获取邮件列表(分页)
/// </summary>
[HttpGet]
public async Task<BaseResponse<EmailPagedResult>> GetListAsync(
[FromQuery] DateTime? lastReceivedDate = null,
[FromQuery] long? lastId = null
)
{
var request = new EmailQueryRequest
{
LastReceivedDate = lastReceivedDate,
LastId = lastId
};
var result = await emailApplication.GetListAsync(request);
return result.Ok();
}
/// <summary>
/// 根据ID获取邮件详情
/// </summary>
[HttpGet("{id}")]
public async Task<BaseResponse<EmailMessageResponse>> GetByIdAsync(long id)
{
var email = await emailApplication.GetByIdAsync(id);
return email.Ok();
}
public async Task<BaseResponse> DeleteByIdAsync(long id)
{
await emailApplication.DeleteByIdAsync(id);
return BaseResponse.Done();
}
/// <summary>
/// 重新分析邮件并刷新交易记录
/// </summary>
[HttpPost]
public async Task<BaseResponse> RefreshTransactionRecordsAsync([FromQuery] long id)
{
await emailApplication.RefreshTransactionRecordsAsync(id);
return BaseResponse.Done();
}
/// <summary>
/// 立即同步邮件
/// </summary>
[HttpPost]
public async Task<BaseResponse> SyncEmailsAsync()
{
await emailApplication.SyncEmailsAsync();
return "邮件同步成功".Ok();
}
}