diff --git a/core/routers/chat/schema.py b/core/routers/chat/schema.py index bd3c21c..9e72b10 100644 --- a/core/routers/chat/schema.py +++ b/core/routers/chat/schema.py @@ -27,6 +27,7 @@ class ChatCreateIn(BaseModel): class PreviewMessage(BaseModel): + id: int message_type: MessageType content: str diff --git a/core/routers/chat/services.py b/core/routers/chat/services.py index 472078b..17fcfa3 100644 --- a/core/routers/chat/services.py +++ b/core/routers/chat/services.py @@ -50,7 +50,7 @@ async def get_unread_messages_per_chat( # 查询消息情况 read_status_alias = aliased(ReadStatus) query = ( - select(Message.chat_id, Message.content, Message.message_type, func.count().label("message_count")) + select(Message.id, Message.chat_id, Message.content, Message.message_type, func.count().label("message_count")) .join( read_status_alias, and_(read_status_alias.user_id == login_user.user_id, read_status_alias.chat_id == Message.chat_id), @@ -69,12 +69,13 @@ async def get_unread_messages_per_chat( unread_messages_info = result.fetchall() for messages_info in unread_messages_info: - unread_messages_info_per_chat[messages_info[0]] = { + unread_messages_info_per_chat[messages_info[1]] = { 'message': { - 'message_type': messages_info[2], - 'content': messages_info[1], + 'id': messages_info[0], + 'message_type': messages_info[3], + 'content': messages_info[2], }, - 'message_count': messages_info[3], + 'message_count': messages_info[4], } results = []