package signtaskmod import ( "time" "91porn-server/models/commod" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo/options" ) type AddConfigCond struct { Title string `json:"title"` // 任务标题 Desc string `json:"desc"` // 任务描述 FinishCondition int64 `json:"finishCondition"` // 达成条件 Todo:连续签到多少天 Prizes []primitive.ObjectID `json:"prizes"` // 奖品列表 ExtraPrizes []primitive.ObjectID `json:"extraPrizes"` // 额外奖品列表 Img string `json:"img" bson:"img"` // 任务图片 Link string `json:"link" bson:"link"` // 跳转链接 Status bool `json:"status"` // 启用/禁用 } type ModifyConfigCond struct { ID primitive.ObjectID `json:"id"` // 任务id Title *string `json:"title"` // 任务标题 Desc *string `json:"desc"` // 任务描述 FinishCondition *int64 `json:"finishCondition"` // 达成条件 Todo:连续签到多少天 Prizes []primitive.ObjectID `json:"prizes"` // 奖品列表 ExtraPrizes []primitive.ObjectID `json:"extraPrizes"` // 额外奖品列表 Img *string `json:"img" bson:"img"` // 任务图片 Link *string `json:"link" bson:"link"` // 跳转链接 Status *bool `json:"status"` // 启用/禁用 } func (m *ModifyConfigCond) Cond() primitive.M { return bson.M{"_id": m.ID} } func (m *ModifyConfigCond) Bson() primitive.M { set := bson.M{"updateTime": time.Now()} if m.FinishCondition != nil { set["finishCondition"] = m.FinishCondition } if m.Title != nil { set["title"] = m.Title } if m.Desc != nil { set["desc"] = m.Desc } if m.FinishCondition != nil { set["finishCondition"] = m.FinishCondition } if m.Prizes != nil { set["prizes"] = m.Prizes } if m.ExtraPrizes != nil { set["extraPrizes"] = m.ExtraPrizes } if m.Img != nil { set["img"] = m.Img } if m.Link != nil { set["link"] = m.Link } if m.Status != nil { set["status"] = m.Status } return bson.M{"$set": set} } type QueryAllConfigCond struct { Status *bool `form:"status,omitempty"` // 启用/禁用 commod.Page } func (q *QueryAllConfigCond) Options() *options.FindOptions { return options.Find().SetLimit(int64(q.PageSize)).SetSkip(int64((q.PageNumber - 1) * q.PageSize)).SetSort(bson.M{"finishCondition": 1}) } func (q *QueryAllConfigCond) Query() primitive.M { fliter := bson.M{} if q.Status != nil { fliter["status"] = q.Status } return fliter }