From 159822e207508a280445486585f8081fb15412e2 Mon Sep 17 00:00:00 2001 From: luhaoling <2198702716@qq.com> Date: Tue, 9 Jan 2024 18:58:17 +0800 Subject: [PATCH] fix: fix the getSortedConversation api --- internal/rpc/conversation/conversaion.go | 11 +++++++++-- internal/rpc/user/user.go | 5 +++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index 9ce5a3b67..d0d59547c 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -90,7 +90,7 @@ func (c *conversationServer) GetConversation(ctx context.Context, req *pbconvers } func (m *conversationServer) GetSortedConversationList(ctx context.Context, req *pbconversation.GetSortedConversationListReq) (resp *pbconversation.GetSortedConversationListResp, err error) { - log.ZDebug(ctx, "GetConversationList", "seqs", req, "userID", req.UserID) + log.ZDebug(ctx, "GetSortedConversationList", "seqs", req, "userID", req.UserID) var conversationIDs []string if len(req.ConversationIDs) == 0 { conversationIDs, err = m.conversationDatabase.GetConversationIDs(ctx, req.UserID) @@ -129,9 +129,12 @@ func (m *conversationServer) GetSortedConversationList(ctx context.Context, req return nil, err } + var unreadTotal int64 conversation_unreadCount := make(map[string]int64) for conversationID, maxSeq := range maxSeqs { - conversation_unreadCount[conversationID] = maxSeq - hasReadSeqs[conversationID] + unreadCount := maxSeq - hasReadSeqs[conversationID] + conversation_unreadCount[conversationID] = unreadCount + unreadTotal += unreadCount } conversation_isPinTime := make(map[int64]string) @@ -148,11 +151,15 @@ func (m *conversationServer) GetSortedConversationList(ctx context.Context, req conversation_notPinTime[time] = conversationID } resp = &pbconversation.GetSortedConversationListResp{ + ConversationTotal: int64(len(chatLogs)), ConversationElems: []*pbconversation.ConversationElem{}, + UnreadTotal: unreadTotal, } m.conversationSort(conversation_isPinTime, resp, conversation_unreadCount, conversationMsg) m.conversationSort(conversation_notPinTime, resp, conversation_unreadCount, conversationMsg) + + resp.ConversationElems = utils.Paginate(resp.ConversationElems, int(req.Pagination.GetPageNumber()), int(req.Pagination.GetShowNumber())) return resp, nil } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 74d4a7512..5680c2b3d 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -429,6 +429,11 @@ func (s *userServer) AddNotificationAccount(ctx context.Context, req *pbuser.Add if req.UserID == "" { return nil, errs.ErrInternalServer.Wrap("gen user id failed") } + } else { + _, err := s.UserDatabase.FindWithError(ctx, []string{req.UserID}) + if err == nil { + return nil, errs.ErrArgs.Wrap("userID is used") + } } user := &tablerelation.UserModel{