fix(chat): 聊天消息预览查询条件缺失
This commit is contained in:
@@ -73,6 +73,7 @@ async def get_chat_messages_preview(db_session: AsyncSession, chats):
|
||||
Message.chat_id,
|
||||
func.max(Message.created_at).label("max_created")
|
||||
)
|
||||
.where(Message.chat_id.in_(chats))
|
||||
.group_by(Message.chat_id)
|
||||
.subquery()
|
||||
)
|
||||
@@ -96,7 +97,7 @@ async def get_unread_messages_per_chat(
|
||||
"""获取聊天未读消息数和消息预览"""
|
||||
messages_info_per_chat: dict[int, dict] = {chat.id: {'message_count': 0} for chat in chats}
|
||||
|
||||
# 未读消息数和预览
|
||||
# 未读消息数
|
||||
unread_messages_count = await get_chat_unread_messages_count(
|
||||
db_session, login_user, messages_info_per_chat
|
||||
)
|
||||
@@ -105,12 +106,8 @@ async def get_unread_messages_per_chat(
|
||||
'message_count': messages_info[1],
|
||||
}
|
||||
|
||||
# 已读消息预览
|
||||
no_unread_message_chats = [
|
||||
chat_id
|
||||
for chat_id, message_info in messages_info_per_chat.items() if message_info.get('message') is None
|
||||
]
|
||||
messages_info = await get_chat_messages_preview(db_session, no_unread_message_chats)
|
||||
# 消息预览
|
||||
messages_info = await get_chat_messages_preview(db_session, messages_info_per_chat)
|
||||
for message_info in messages_info:
|
||||
messages_info_per_chat[message_info.chat_id].update({
|
||||
'message': message_info
|
||||
|
||||
Reference in New Issue
Block a user