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