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 {