feat: msg doc len changed

pull/819/head
wangchuxiao 2 years ago
parent 21bf1239df
commit 12dfd142bc

@ -27,6 +27,6 @@ func (c *MsgTool) ConvertTools() {
conversationIDs = append(conversationIDs, msgprocessor.GetConversationIDBySessionType(constant.SingleChatType, userID, userID)) conversationIDs = append(conversationIDs, msgprocessor.GetConversationIDBySessionType(constant.SingleChatType, userID, userID))
conversationIDs = append(conversationIDs, msgprocessor.GetNotificationConversationID(constant.SingleChatType, userID, userID)) conversationIDs = append(conversationIDs, msgprocessor.GetNotificationConversationID(constant.SingleChatType, userID, userID))
} }
log.ZDebug(ctx, "all conversationIDs", "conversationIDs", conversationIDs) log.ZDebug(ctx, "all userIDs", "len userIDs", len(conversationIDs))
c.msgDatabase.ConvertMsgsDocLen(ctx, conversationIDs) c.msgDatabase.ConvertMsgsDocLen(ctx, conversationIDs)
} }

@ -25,42 +25,43 @@ func (m *MsgMongoDriver) ConvertMsgsDocLen(ctx context.Context, conversationIDs
continue continue
} }
if len(msgDocs) < 1 { if len(msgDocs) < 1 {
// log.ZDebug(ctx, "len(msgs) < 1", "conversationID", conversationID)
continue continue
} }
log.ZInfo(ctx, "msg doc convert", "conversationID", conversationID, "len(msgDocs)", len(msgDocs)) log.ZInfo(ctx, "msg doc convert", "conversationID", conversationID, "len(msgDocs)", len(msgDocs))
if _, err := m.MsgCollection.DeleteMany(ctx, bson.M{"doc_id": regex}); err != nil { if len(msgDocs[0].Msg) == int(m.model.GetSingleGocMsgNum5000()) {
log.ZError(ctx, "convertAll delete many failed", err, "conversationID", conversationID) if _, err := m.MsgCollection.DeleteMany(ctx, bson.M{"doc_id": regex}); err != nil {
continue log.ZError(ctx, "convertAll delete many failed", err, "conversationID", conversationID)
}
var newMsgDocs []interface{}
for _, msgDoc := range msgDocs {
if int64(len(msgDoc.Msg)) == m.model.GetSingleGocMsgNum() {
continue continue
} }
var index int64 var newMsgDocs []interface{}
for index < int64(len(msgDoc.Msg)) { for _, msgDoc := range msgDocs {
msg := msgDoc.Msg[index] if int64(len(msgDoc.Msg)) == m.model.GetSingleGocMsgNum() {
if msg != nil && msg.Msg != nil { continue
msgDocModel := table.MsgDocModel{DocID: m.model.GetDocID(conversationID, msg.Msg.Seq)} }
end := index + m.model.GetSingleGocMsgNum() var index int64
if int(end) >= len(msgDoc.Msg) { for index < int64(len(msgDoc.Msg)) {
msgDocModel.Msg = msgDoc.Msg[index:] msg := msgDoc.Msg[index]
if msg != nil && msg.Msg != nil {
msgDocModel := table.MsgDocModel{DocID: m.model.GetDocID(conversationID, msg.Msg.Seq)}
end := index + m.model.GetSingleGocMsgNum()
if int(end) >= len(msgDoc.Msg) {
msgDocModel.Msg = msgDoc.Msg[index:]
} else {
msgDocModel.Msg = msgDoc.Msg[index:end]
}
newMsgDocs = append(newMsgDocs, msgDocModel)
index = end
} else { } else {
msgDocModel.Msg = msgDoc.Msg[index:end] break
} }
newMsgDocs = append(newMsgDocs, msgDocModel)
index = end
} else {
break
} }
} }
} _, err = m.MsgCollection.InsertMany(ctx, newMsgDocs)
_, err = m.MsgCollection.InsertMany(ctx, newMsgDocs) if err != nil {
if err != nil { log.ZError(ctx, "convertAll insert many failed", err, "conversationID", conversationID)
log.ZError(ctx, "convertAll insert many failed", err, "conversationID", conversationID) } else {
} else { log.ZInfo(ctx, "convertAll insert many success", "conversationID", conversationID)
log.ZInfo(ctx, "convertAll insert many success", "conversationID", conversationID) }
} }
} }
} }

Loading…
Cancel
Save