From 3476c71c3df9f174f43f2079218cf93f1f0538db Mon Sep 17 00:00:00 2001 From: MingxuanGame Date: Sun, 17 Aug 2025 15:59:21 +0000 Subject: [PATCH] fix(chat): don't record last_msg & last_read_id --- app/router/chat/message.py | 3 ++- app/router/chat/server.py | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/router/chat/message.py b/app/router/chat/message.py index 84f5c41..e6caf05 100644 --- a/app/router/chat/message.py +++ b/app/router/chat/message.py @@ -167,7 +167,8 @@ async def mark_as_read( if db_channel is None: raise HTTPException(status_code=404, detail="Channel not found") assert db_channel.channel_id - await server.mark_as_read(db_channel.channel_id, message) + assert current_user.id + await server.mark_as_read(db_channel.channel_id, current_user.id, message) class PMReq(BaseModel): diff --git a/app/router/chat/server.py b/app/router/chat/server.py index b91dd02..61e0877 100644 --- a/app/router/chat/server.py +++ b/app/router/chat/server.py @@ -69,8 +69,8 @@ class ChatServer: if client: await self.send_event(client, event) - async def mark_as_read(self, channel_id: int, message_id: int): - await self.redis.set(f"chat:{channel_id}:last_msg", message_id) + async def mark_as_read(self, channel_id: int, user_id: int, message_id: int): + await self.redis.set(f"chat:{channel_id}:last_read:{user_id}", message_id) async def send_message_to_channel( self, message: ChatMessageResp, is_bot_command: bool = False @@ -91,7 +91,10 @@ class ChatServer: ) ) assert message.message_id - await self.mark_as_read(message.channel_id, message.message_id) + await self.mark_as_read( + message.channel_id, message.sender_id, message.message_id + ) + await self.redis.set(f"chat:{message.channel_id}:last_msg", message.message_id) async def batch_join_channel( self, users: list[User], channel: ChatChannel, session: AsyncSession