diff --git a/go.mod b/go.mod index 40d9d1724..4b0d25949 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( firebase.google.com/go v3.13.0+incompatible - github.com/OpenIMSDK/openKeeper v0.0.3 + github.com/OpenIMSDK/openKeeper v0.0.4 github.com/OpenIMSDK/open_utils v1.0.8 github.com/Shopify/sarama v1.32.0 github.com/antonfisher/nested-logrus-formatter v1.3.1 diff --git a/go.sum b/go.sum index 80061fabc..62f4f5d7e 100644 --- a/go.sum +++ b/go.sum @@ -391,6 +391,8 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenIMSDK/openKeeper v0.0.3 h1:pkyLFuIau58SjQLeg4CWMSkP79nbmR3DP0NfBJZ7Kr8= github.com/OpenIMSDK/openKeeper v0.0.3/go.mod h1:RvyRXEcvWbonkmHLtT8KxGSCNlXY7OfDohhu53E6INU= +github.com/OpenIMSDK/openKeeper v0.0.4 h1:WwieeVzNCMYvd6HWRFh0cqrem3OoXDSJePA7taZ1ahQ= +github.com/OpenIMSDK/openKeeper v0.0.4/go.mod h1:RvyRXEcvWbonkmHLtT8KxGSCNlXY7OfDohhu53E6INU= github.com/OpenIMSDK/open_utils v1.0.8 h1:IopxWgJwEF5ZAPsRuiZZOfcxNOQOCt/p8VDENcHN9r4= github.com/OpenIMSDK/open_utils v1.0.8/go.mod h1:FLoaQblWUVKQgqt2LrNzfSZLT6D3DICBn1kcOMDLUOI= github.com/Shopify/sarama v1.29.0 h1:ARid8o8oieau9XrHI55f/L3EoRAhm9px6sonbD7yuUE= diff --git a/internal/tools/msg.go b/internal/tools/msg.go index f4b06e31f..b4d87d59c 100644 --- a/internal/tools/msg.go +++ b/internal/tools/msg.go @@ -137,7 +137,9 @@ func (c *MsgTool) fixGroupSeq(ctx context.Context, groupID string, userIDs []str func (c *MsgTool) GetAndFixUserSeqs(ctx context.Context, userID string) (maxSeqCache, maxSeqMongo int64, err error) { minSeqMongo, maxSeqMongo, minSeqCache, maxSeqCache, err := c.msgDatabase.GetUserMinMaxSeqInMongoAndCache(ctx, userID) if err != nil { - log.NewWarn(tracelog.GetOperationID(ctx), utils.GetSelfFuncName(), err.Error(), "GetUserMinMaxSeqInMongoAndCache failed", userID) + if err != unrelation.ErrMsgNotFound { + log.NewError(tracelog.GetOperationID(ctx), utils.GetSelfFuncName(), err.Error(), "GetUserMinMaxSeqInMongoAndCache failed", userID) + } return 0, 0, err } log.NewDebug(tracelog.GetOperationID(ctx), userID, minSeqMongo, maxSeqMongo, minSeqCache, maxSeqCache) diff --git a/pkg/common/db/controller/msg.go b/pkg/common/db/controller/msg.go index 56204f4db..0da2f18a3 100644 --- a/pkg/common/db/controller/msg.go +++ b/pkg/common/db/controller/msg.go @@ -573,12 +573,12 @@ func (db *msgDatabase) deleteMsgRecursion(ctx context.Context, sourceID string, if err != nil || msgs.DocID == "" { if err != nil { if err == unrelation.ErrMsgListNotExist { - //log.NewInfo(operationID, utils.GetSelfFuncName(), "ID:", sourceID, "index:", index, err.Error()) + log.NewDebug(tracelog.GetOperationID(ctx), utils.GetSelfFuncName(), "ID:", sourceID, "index:", index, err.Error()) } else { //log.NewError(operationID, utils.GetSelfFuncName(), "GetUserMsgListByIndex failed", err.Error(), index, ID) } } - // 获取报错,或者获取不到了,物理删除并且返回seq delMongoMsgsPhysical(delStruct.delDocIDList) + // 获取报错,或者获取不到了,物理删除并且返回seq delMongoMsgsPhysical(delStruct.delDocIDList), 结束递归 err = db.msgDocDatabase.Delete(ctx, delStruct.delDocIDs) if err != nil { return 0, err @@ -614,6 +614,7 @@ func (db *msgDatabase) deleteMsgRecursion(ctx context.Context, sourceID string, msg.SendTime = 0 hasMarkDelFlag = true } else { + // 到本条消息不需要删除, minSeq置为这条消息的seq if err := db.msgDocDatabase.Delete(ctx, delStruct.delDocIDs); err != nil { return 0, err } @@ -622,7 +623,7 @@ func (db *msgDatabase) deleteMsgRecursion(ctx context.Context, sourceID string, return delStruct.getSetMinSeq(), utils.Wrap(err, "") } } - return msgPb.Seq + 1, nil + return msgPb.Seq, nil } } }