fix: align backend APIs and upload flow

This commit is contained in:
2026-09-11 18:18:59 +08:00
parent 32177a7293
commit 898cf5dba0
69 changed files with 1081 additions and 153 deletions
@@ -26,30 +26,32 @@ namespace MessageService.Infrastructure.Reposities
public async Task<(IEnumerable<Message> messages, bool hasMore)> GetAsync(string streamKey, long? cusor, int direction, int limit)
{
var query = db.Messages.Where(x => x.StreamKey == streamKey);
List<Message> messages = [];
List<Message> fetched;
if (direction == 0) // Before: 找比锚点小的,按倒序排
{
if (cusor.HasValue)
query = query.Where(m => m.SequenceId < cusor.Value);
var list = await query
fetched = await query
.OrderByDescending(m => m.SequenceId) // 最新消息在最前
.Take(limit + 1)
.ToListAsync();
messages = [.. list.OrderBy(s => s.SequenceId)];
}
else
{
if (cusor is null)
return (messages, false);
return (Array.Empty<Message>(), false);
messages = await query.OrderBy(o => o.SequenceId)
fetched = await query
.Where(m => m.SequenceId > cusor.Value)
.OrderBy(o => o.SequenceId)
.Take(limit + 1)
.ToListAsync();
}
return (messages, messages.Count > limit);
var hasMore = fetched.Count > limit;
var messages = fetched.Take(limit).OrderBy(s => s.SequenceId).ToList();
return (messages, hasMore);
}
}
}