diff --git a/internal/cron_task/clear_msg.go b/internal/cron_task/clear_msg.go index 938a446ec..ba22eac38 100644 --- a/internal/cron_task/clear_msg.go +++ b/internal/cron_task/clear_msg.go @@ -166,6 +166,10 @@ func checkMaxSeqWithMongo(operationID, ID string, diffusionType int) error { if err != nil { return utils.Wrap(err, "GetNewestMsg failed") } + if msg == nil { + log.NewInfo(operationID, "msg has del") + return nil + } msgPb := &server_api_params.MsgData{} err = proto.Unmarshal(msg.Msg, msgPb) if err != nil { diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 724fd8d73..15ffbd88f 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -305,7 +305,7 @@ func (d *DataBases) ReplaceMsgToBlankByIndex(suffixID string, index int) error { msg.SendTime = 0 } } - _, err = c.UpdateOne(ctx, bson.M{"uid": suffixID}, userChat) + _, err = c.UpdateOne(ctx, bson.M{"uid": suffixID}, bson.M{"$set": bson.M{"msg": userChat.Msg}}) return err } @@ -329,7 +329,7 @@ func (d *DataBases) GetNewestMsg(ID string) (msg *MsgInfo, err error) { } return nil, errors.New("len(userChats[0].Msg) < 0") } - return nil, errors.New("len(userChats) < 0") + return nil, nil } func (d *DataBases) GetMsgBySeqListMongo2(uid string, seqList []uint32, operationID string) (seqMsg []*open_im_sdk.MsgData, err error) {