88 lines
2.9 KiB
Go
88 lines
2.9 KiB
Go
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
|
|
}
|