fix
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 24s
Docker Build & Deploy / Deploy to Production (push) Successful in 6s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 3s
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 24s
Docker Build & Deploy / Deploy to Production (push) Successful in 6s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 3s
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
public interface IEmailMessageRepository : IBaseRepository<EmailMessage>
|
||||
{
|
||||
Task<EmailMessage?> ExistsAsync(string md5);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 分页获取邮件列表(游标分页)
|
||||
/// </summary>
|
||||
@@ -12,7 +12,7 @@ public interface IEmailMessageRepository : IBaseRepository<EmailMessage>
|
||||
/// <param name="pageSize">每页数量</param>
|
||||
/// <returns>邮件列表、最后接收时间和最后ID</returns>
|
||||
Task<(List<EmailMessage> list, DateTime? lastReceivedDate, long lastId)> GetPagedListAsync(DateTime? lastReceivedDate, long? lastId, int pageSize = 20);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取总数
|
||||
/// </summary>
|
||||
@@ -31,20 +31,20 @@ public class EmailMessageRepository(IFreeSql freeSql) : BaseRepository<EmailMess
|
||||
public async Task<(List<EmailMessage> list, DateTime? lastReceivedDate, long lastId)> GetPagedListAsync(DateTime? lastReceivedDate, long? lastId, int pageSize = 20)
|
||||
{
|
||||
var query = FreeSql.Select<EmailMessage>();
|
||||
|
||||
|
||||
// 如果提供了游标,则获取小于游标位置的记录
|
||||
if (lastReceivedDate.HasValue && lastId.HasValue)
|
||||
{
|
||||
query = query.Where(e => e.ReceivedDate < lastReceivedDate.Value ||
|
||||
query = query.Where(e => e.ReceivedDate < lastReceivedDate.Value ||
|
||||
(e.ReceivedDate == lastReceivedDate.Value && e.Id < lastId.Value));
|
||||
}
|
||||
|
||||
|
||||
var list = await query
|
||||
.OrderByDescending(e => e.ReceivedDate)
|
||||
.OrderByDescending(e => e.Id)
|
||||
.Page(1, pageSize)
|
||||
.ToListAsync();
|
||||
|
||||
|
||||
var lastRecord = list.Count > 0 ? list.Last() : null;
|
||||
return (list, lastRecord?.ReceivedDate, lastRecord?.Id ?? 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user