From 349a8cd9afaace99a527b469fc4aaaa095ea570d Mon Sep 17 00:00:00 2001 From: Monet Lee Date: Tue, 19 Aug 2025 17:22:09 +0800 Subject: [PATCH] fix: nil pointer when chatlog not found. (#3531) --- internal/rpc/conversation/conversation.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/internal/rpc/conversation/conversation.go b/internal/rpc/conversation/conversation.go index a2b72ddfb..c9bfd3c56 100644 --- a/internal/rpc/conversation/conversation.go +++ b/internal/rpc/conversation/conversation.go @@ -132,6 +132,7 @@ func (c *conversationServer) GetConversation(ctx context.Context, req *pbconvers return resp, nil } +// Deprecated: Use `GetConversations` instead. func (c *conversationServer) GetSortedConversationList(ctx context.Context, req *pbconversation.GetSortedConversationListReq) (resp *pbconversation.GetSortedConversationListResp, err error) { if err := authverify.CheckAccess(ctx, req.UserID); err != nil { return nil, err @@ -183,9 +184,21 @@ func (c *conversationServer) GetSortedConversationList(ctx context.Context, req conversation_isPinTime := make(map[int64]string) conversation_notPinTime := make(map[int64]string) + for _, v := range conversations { conversationID := v.ConversationID - time := conversationMsg[conversationID].MsgInfo.LatestMsgRecvTime + var time int64 + if _, ok := conversationMsg[conversationID]; ok { + time = conversationMsg[conversationID].MsgInfo.LatestMsgRecvTime + } else { + conversationMsg[conversationID] = &pbconversation.ConversationElem{ + ConversationID: conversationID, + IsPinned: v.IsPinned, + MsgInfo: nil, + } + time = v.CreateTime.UnixMilli() + } + conversationMsg[conversationID].RecvMsgOpt = v.RecvMsgOpt if v.IsPinned { conversationMsg[conversationID].IsPinned = v.IsPinned