修复用户状态问题

This commit is contained in:
咕谷酱
2025-08-22 13:06:23 +08:00
parent 592d2e39ff
commit 6136b9fed3
8 changed files with 322 additions and 36 deletions

View File

@@ -206,12 +206,19 @@ async def get_message(
query = select(ChatMessage).where(ChatMessage.channel_id == channel_id)
if since > 0:
query = query.where(col(ChatMessage.message_id) > since)
if until is not None:
query = query.where(col(ChatMessage.message_id) < until)
query = query.order_by(col(ChatMessage.message_id).desc()).limit(limit)
messages = (await session.exec(query)).all()
resp = [await ChatMessageResp.from_db(msg, session) for msg in messages]
# 获取 since 之后的消息,按时间正序
query = query.order_by(col(ChatMessage.message_id).asc()).limit(limit)
messages = (await session.exec(query)).all()
resp = [await ChatMessageResp.from_db(msg, session) for msg in messages]
else:
# 获取最新消息,先按倒序获取最新的,然后反转为时间正序
if until is not None:
query = query.where(col(ChatMessage.message_id) < until)
query = query.order_by(col(ChatMessage.message_id).desc()).limit(limit)
messages = (await session.exec(query)).all()
resp = [await ChatMessageResp.from_db(msg, session) for msg in messages]
# 反转为时间正序(最老的在前面)
resp.reverse()
return resp