From 510cf9ff294ba1fcd8701313ff40e2dc5ea3a38e Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 May 2023 20:04:01 +0800 Subject: [PATCH] pull notification --- pkg/common/db/controller/msg.go | 21 ++++++++++++++------- pkg/common/db/unrelation/msg.go | 2 +- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/pkg/common/db/controller/msg.go b/pkg/common/db/controller/msg.go index d544e0595..d1742123f 100644 --- a/pkg/common/db/controller/msg.go +++ b/pkg/common/db/controller/msg.go @@ -313,15 +313,22 @@ func (db *commonMsgDatabase) unmarshalMsg(msgInfo *unRelationTb.MsgInfoModel) (m return msgPb, nil } -func (db *commonMsgDatabase) getMsgBySeqs(ctx context.Context, conversationID string, seqs []int64) (seqMsgs []*sdkws.MsgData, err error) { - seqMsgs, unexistSeqs, err := db.findMsgBySeq(ctx, conversationID, seqs) - if err != nil { - return nil, err +func (db *commonMsgDatabase) getMsgBySeqs(ctx context.Context, conversationID string, seqs []int64) (totalMsgs []*sdkws.MsgData, err error) { + m := db.msg.GetDocIDSeqsMap(conversationID, seqs) + var totalUnExistSeqs []int64 + for docID, seqs := range m { + log.ZDebug(ctx, "getMsgBySeqsRange", "docID", docID, "seqs", seqs) + seqMsgs, unexistSeqs, err := db.findMsgBySeq(ctx, conversationID, seqs) + if err != nil { + return nil, err + } + totalMsgs = append(totalMsgs, seqMsgs...) + totalUnExistSeqs = append(totalUnExistSeqs, unexistSeqs...) } - for _, unexistSeq := range unexistSeqs { - seqMsgs = append(seqMsgs, db.msg.GenExceptionMessageBySeqs([]int64{unexistSeq})...) + for _, unexistSeq := range totalUnExistSeqs { + totalMsgs = append(totalMsgs, db.msg.GenExceptionMessageBySeqs([]int64{unexistSeq})...) } - return seqMsgs, nil + return totalMsgs, nil } func (db *commonMsgDatabase) refetchDelSeqsMsgs(ctx context.Context, conversationID string, delNums, rangeBegin, begin int64) (seqMsgs []*sdkws.MsgData, err error) { diff --git a/pkg/common/db/unrelation/msg.go b/pkg/common/db/unrelation/msg.go index 7e738864b..0db2f2faf 100644 --- a/pkg/common/db/unrelation/msg.go +++ b/pkg/common/db/unrelation/msg.go @@ -197,7 +197,7 @@ func (m *MsgMongoDriver) GetMsgBySeqIndexIn1Doc(ctx context.Context, docID strin break } } - log.ZDebug(ctx, "msgInfos", "num", len(doc.Msg)) + log.ZDebug(ctx, "msgInfos", "num", len(doc.Msg), "docID", docID) for _, v := range doc.Msg { var msg sdkws.MsgData if err := proto.Unmarshal(v.Msg, &msg); err != nil {