From becc999d6302805e95df4c8ada636fa3a7f12d61 Mon Sep 17 00:00:00 2001 From: Monet Lee Date: Mon, 28 Jul 2025 11:29:51 +0800 Subject: [PATCH] fix: solve batch incorrect error in Find DocIDs (#3476) --- pkg/common/storage/controller/msg.go | 10 ++++++++-- pkg/common/storage/model/msg.go | 12 ++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/pkg/common/storage/controller/msg.go b/pkg/common/storage/controller/msg.go index 53dd7f13d..f833008e8 100644 --- a/pkg/common/storage/controller/msg.go +++ b/pkg/common/storage/controller/msg.go @@ -671,12 +671,18 @@ func (db *commonMsgDatabase) SearchMessage(ctx context.Context, req *pbmsg.Searc func (db *commonMsgDatabase) FindOneByDocIDs(ctx context.Context, conversationIDs []string, seqs map[string]int64) (map[string]*sdkws.MsgData, error) { totalMsgs := make(map[string]*sdkws.MsgData) for _, conversationID := range conversationIDs { - seq := seqs[conversationID] + seq, ok := seqs[conversationID] + if !ok { + log.ZWarn(ctx, "seq not found for conversationID", errs.New("seq not found for conversation"), "conversationID", conversationID) + continue + } docID := db.msgTable.GetDocID(conversationID, seq) msgs, err := db.msgDocDatabase.FindOneByDocID(ctx, docID) if err != nil { - return nil, err + log.ZWarn(ctx, "FindOneByDocID failed", err, "conversationID", conversationID, "docID", docID, "seq", seq) + continue } + index := db.msgTable.GetMsgIndex(seq) totalMsgs[conversationID] = convert.MsgDB2Pb(msgs.Msg[index].Msg) } diff --git a/pkg/common/storage/model/msg.go b/pkg/common/storage/model/msg.go index 6cf63bfcd..9d5b56b42 100644 --- a/pkg/common/storage/model/msg.go +++ b/pkg/common/storage/model/msg.go @@ -120,15 +120,11 @@ func (m *MsgDocModel) GetDocID(conversationID string, seq int64) string { func (m *MsgDocModel) GetDocIDSeqsMap(conversationID string, seqs []int64) map[string][]int64 { t := make(map[string][]int64) - for i := 0; i < len(seqs); i++ { - docID := m.GetDocID(conversationID, seqs[i]) - if value, ok := t[docID]; !ok { - var temp []int64 - t[docID] = append(temp, seqs[i]) - } else { - t[docID] = append(value, seqs[i]) - } + for _, seq := range seqs { + docID := m.GetDocID(conversationID, seq) + t[docID] = append(t[docID], seq) } + return t }