diff --git a/modules/rtask/updateHandle.go b/modules/rtask/updateHandle.go index 25a69679c..52b91c527 100644 --- a/modules/rtask/updateHandle.go +++ b/modules/rtask/updateHandle.go @@ -10,6 +10,7 @@ import ( cfg "go_dreamfactory/sys/configure/structs" "github.com/pkg/errors" + "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" ) @@ -20,9 +21,14 @@ func (this *ModelRtaskRecord) overrideUpdate(uid string, cfg *cfg.GameRdtaskCond return err } - record := &pb.DBRtaskRecord{} + record := &pb.DBRtaskRecord{Uid: uid} if err := this.Get(uid, record); err != nil { - if err != mongo.ErrNoDocuments { + if err == mongo.ErrNoDocuments { + record.Id = primitive.NewObjectID().Hex() + if err := this.Add(uid, record); err != nil { + return errors.Wrapf(err, "创建玩家任务记录 err: %v rtype[%v]", uid, cfg.Id) + } + } else { return errors.Wrapf(err, "获取玩家任务记录 err: %v rtype[%v]", uid, cfg.Id) } } @@ -67,7 +73,12 @@ func (this *ModelRtaskRecord) addUpdate(uid string, cfg *cfg.GameRdtaskCondiData record := &pb.DBRtaskRecord{Uid: uid} err = this.Get(uid, record) if err != nil { - if err != mongo.ErrNoDocuments { + if err == mongo.ErrNoDocuments { + record.Id = primitive.NewObjectID().Hex() + if err := this.Add(uid, record); err != nil { + return errors.Wrapf(err, "创建玩家任务记录 err: %v rtype[%v]", uid, cfg.Id) + } + } else { return errors.Wrapf(err, "获取玩家任务记录 err: %v rtype[%v]", uid, cfg.Id) } }