mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-09-02 13:09:49 +08:00
fix: solve batch incorrect error in Find DocIDs (#3476)
This commit is contained in:
parent
f9475bdd87
commit
becc999d63
@ -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) {
|
func (db *commonMsgDatabase) FindOneByDocIDs(ctx context.Context, conversationIDs []string, seqs map[string]int64) (map[string]*sdkws.MsgData, error) {
|
||||||
totalMsgs := make(map[string]*sdkws.MsgData)
|
totalMsgs := make(map[string]*sdkws.MsgData)
|
||||||
for _, conversationID := range conversationIDs {
|
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)
|
docID := db.msgTable.GetDocID(conversationID, seq)
|
||||||
msgs, err := db.msgDocDatabase.FindOneByDocID(ctx, docID)
|
msgs, err := db.msgDocDatabase.FindOneByDocID(ctx, docID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
log.ZWarn(ctx, "FindOneByDocID failed", err, "conversationID", conversationID, "docID", docID, "seq", seq)
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
index := db.msgTable.GetMsgIndex(seq)
|
index := db.msgTable.GetMsgIndex(seq)
|
||||||
totalMsgs[conversationID] = convert.MsgDB2Pb(msgs.Msg[index].Msg)
|
totalMsgs[conversationID] = convert.MsgDB2Pb(msgs.Msg[index].Msg)
|
||||||
}
|
}
|
||||||
|
@ -120,15 +120,11 @@ func (m *MsgDocModel) GetDocID(conversationID string, seq int64) string {
|
|||||||
|
|
||||||
func (m *MsgDocModel) GetDocIDSeqsMap(conversationID string, seqs []int64) map[string][]int64 {
|
func (m *MsgDocModel) GetDocIDSeqsMap(conversationID string, seqs []int64) map[string][]int64 {
|
||||||
t := make(map[string][]int64)
|
t := make(map[string][]int64)
|
||||||
for i := 0; i < len(seqs); i++ {
|
for _, seq := range seqs {
|
||||||
docID := m.GetDocID(conversationID, seqs[i])
|
docID := m.GetDocID(conversationID, seq)
|
||||||
if value, ok := t[docID]; !ok {
|
t[docID] = append(t[docID], seq)
|
||||||
var temp []int64
|
|
||||||
t[docID] = append(temp, seqs[i])
|
|
||||||
} else {
|
|
||||||
t[docID] = append(value, seqs[i])
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return t
|
return t
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user