93 lines
2.8 KiB
Go
93 lines
2.8 KiB
Go
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
|
|
}
|