package taskmod 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:连续签到多少天 Type ConfigType `json:"type" binding:"required"` // 配置类型 1-购买金币 //Prizes []primitive.ObjectID `json:"prizes"` // 奖品列表(暂时不需要) Img string `json:"img" bson:"img"` // 任务图片 Detail []TaskDetail `json:"detail" bson:"detail"` // 任务详情(进阶任务使用) 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:连续签到多少天 Type *ConfigType `json:"type" binding:"required"` // 配置类型 1-购买金币 //Prizes []primitive.ObjectID `json:"prizes"` // 奖品列表(暂时不需要) Img *string `json:"img" bson:"img"` // 任务图片 Detail []TaskDetail `json:"detail" bson:"detail"` // 任务详情(进阶任务使用) 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.Type != nil { set["type"] = m.Type } //if len(m.Prizes) > 0 { // set["prizes"] = m.Prizes //} if len(m.Detail) > 0 { set["detail"] = m.Detail } if m.Img != nil { set["img"] = m.Img } 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 }