From 2132024dd9f3a1a513e6d980a5bd3ab5f2c972d9 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 17 Jul 2023 19:08:37 +0800 Subject: [PATCH] fix bug: msg destruct --- internal/tools/conversation.go | 8 ++++---- pkg/common/db/controller/msg.go | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/internal/tools/conversation.go b/internal/tools/conversation.go index 837f7f90a..26cf3842d 100644 --- a/internal/tools/conversation.go +++ b/internal/tools/conversation.go @@ -50,11 +50,11 @@ func (c *MsgTool) ConversationsDestructMsgs() { log.ZError(ctx, "user msg destruct failed", err, "conversationID", conversation.ConversationID, "ownerUserID", conversation.OwnerUserID) continue } - if err := c.conversationDatabase.UpdateUsersConversationFiled(ctx, []string{conversation.OwnerUserID}, conversation.ConversationID, map[string]interface{}{"latest_msg_destruct_time": time.Now()}); err != nil { - log.ZError(ctx, "updateUsersConversationFiled failed", err, "conversationID", conversation.ConversationID, "ownerUserID", conversation.OwnerUserID) - continue - } if len(seqs) > 0 { + if err := c.conversationDatabase.UpdateUsersConversationFiled(ctx, []string{conversation.OwnerUserID}, conversation.ConversationID, map[string]interface{}{"latest_msg_destruct_time": time.Now()}); err != nil { + log.ZError(ctx, "updateUsersConversationFiled failed", err, "conversationID", conversation.ConversationID, "ownerUserID", conversation.OwnerUserID) + continue + } if err := c.msgNotificationSender.UserDeleteMsgsNotification(ctx, conversation.OwnerUserID, conversation.ConversationID, seqs); err != nil { log.ZError(ctx, "userDeleteMsgsNotification failed", err, "conversationID", conversation.ConversationID, "ownerUserID", conversation.OwnerUserID) } diff --git a/pkg/common/db/controller/msg.go b/pkg/common/db/controller/msg.go index f930fab2e..d3c4d8e75 100644 --- a/pkg/common/db/controller/msg.go +++ b/pkg/common/db/controller/msg.go @@ -653,6 +653,7 @@ func (db *commonMsgDatabase) UserMsgsDestruct(ctx context.Context, userID string //&& msgDocModel.Msg[0].Msg.SendTime > lastMsgDestructTime.UnixMilli() if len(msgDocModel.Msg) > 0 { i := 0 + var over bool for _, msg := range msgDocModel.Msg { i++ if msg != nil && msg.Msg != nil && msg.Msg.SendTime+destructTime*1000 <= time.Now().UnixMilli() { @@ -661,9 +662,13 @@ func (db *commonMsgDatabase) UserMsgsDestruct(ctx context.Context, userID string } } else { log.ZDebug(ctx, "all msg need destruct is found", "conversationID", conversationID, "userID", userID, "index", index, "stop index", i) + over = true break } } + if over { + break + } } }