using Application.Dto.Email;
using Application;
namespace WebApi.Controllers;
[ApiController]
[Route("api/[controller]/[action]")]
public class EmailMessageController(
IEmailMessageApplication emailApplication
) : ControllerBase
{
///
/// 获取邮件列表(分页)
///
[HttpGet]
public async Task> 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();
}
///
/// 根据ID获取邮件详情
///
[HttpGet("{id}")]
public async Task> GetByIdAsync(long id)
{
var email = await emailApplication.GetByIdAsync(id);
return email.Ok();
}
public async Task DeleteByIdAsync(long id)
{
await emailApplication.DeleteByIdAsync(id);
return BaseResponse.Done();
}
///
/// 重新分析邮件并刷新交易记录
///
[HttpPost]
public async Task RefreshTransactionRecordsAsync([FromQuery] long id)
{
await emailApplication.RefreshTransactionRecordsAsync(id);
return BaseResponse.Done();
}
///
/// 立即同步邮件
///
[HttpPost]
public async Task SyncEmailsAsync()
{
await emailApplication.SyncEmailsAsync();
return "邮件同步成功".Ok();
}
}