103 lines
5.3 KiB
Go
103 lines
5.3 KiB
Go
package taskser
|
|
|
|
import (
|
|
"time"
|
|
|
|
"91porn-server/models/v/dailytaskmod"
|
|
"91porn-server/models/v/oncetaskmod"
|
|
"91porn-server/models/v/prizemod"
|
|
"91porn-server/models/v/taskmod"
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
type TaskStatus int
|
|
|
|
const (
|
|
UnDone TaskStatus = iota + 1 // 未完成
|
|
Finish // 已完成
|
|
Receive // 已领取
|
|
ReDo // 重做
|
|
)
|
|
|
|
// 签到信息返回
|
|
type SignDetailsResponse struct {
|
|
List []Config `json:"list"` // 列表
|
|
Value int64 `json:"value"` // 累计签到天数
|
|
}
|
|
|
|
type Config struct {
|
|
ID primitive.ObjectID `json:"id"` // 文档ID
|
|
Title string `json:"title"` // 任务标题
|
|
Desc string `json:"desc"` // 任务描述
|
|
Prizes []prizemod.Prize `json:"prizes"` // 奖品列表
|
|
FinishCondition int64 `json:"finishCondition"` // 达成条件
|
|
FinishValue int64 `json:"finishValue"` // 完成数量
|
|
Status TaskStatus `json:"status"` // 任务状态 1:未完成 2:已完成 3:已领取
|
|
BoonType taskmod.ConfigType `json:"boonType"` // 福利类型
|
|
IsToday bool `json:"isToday"` // 是否是今日任务
|
|
}
|
|
|
|
type TaskResponse struct {
|
|
JewelBoxDetails struct {
|
|
List []Config `json:"list"` // 列表
|
|
Value int64 `json:"value"` // 累计活跃值
|
|
TotalValue int64 `json:"totalValue"` // 总活跃值
|
|
} `json:"jewelBoxDetails"` // 宝箱详情
|
|
TaskList []Config `json:"taskList"` // 任务列表
|
|
}
|
|
|
|
type TaskDetailsResponse struct {
|
|
TaskList []Config `json:"taskList"` // 任务列表
|
|
Value int64 `json:"value"` // 累计金币/充值金额
|
|
}
|
|
|
|
type DailyTaskResponse struct {
|
|
ID primitive.ObjectID `json:"id"` // 任务id
|
|
Title string `json:"title"` // 任务标题
|
|
Img string `json:"img"` // 任务图标
|
|
Type dailytaskmod.DailyTaskTypeEnum `json:"type"` // 0 每日广告点击; 1 每日邀请
|
|
Desc string `json:"desc"` // 任务说明
|
|
Link string `json:"link"` // 跳转地址
|
|
Status int `json:"status"` // 0 未完成; 1 已完成未领取; 2 已领取
|
|
StartAt time.Time `json:"startAt"` // 场次开始时间;CountdownType=1 时为红包雨场次时间,否则零值
|
|
EndAt time.Time `json:"endAt"` // 场次结束时间;CountdownType=1 时为红包雨场次时间,否则零值
|
|
CountdownType int `json:"countdownType"` // 倒计时类型 0-无 1-红包雨倒计时
|
|
}
|
|
|
|
type DailyTaskResponseDetail struct {
|
|
Prizes []*prizemod.Prize `json:"prizes"` // 奖品列表, 与签到相同
|
|
FinishCondition uint64 `json:"finishCondition"` // 达成条件. 比如点击广告任务中, 表示3次点击才可以领取奖励
|
|
FinishCount uint64 `json:"finishCount"` // 已完成数量. 比如比如点击广告任务中 2表示已经点击2次广告
|
|
Status int `json:"status"` // 0 未完成; 1 已完成未领取; 2 已领取
|
|
}
|
|
|
|
type OnceTaskResponse struct {
|
|
ID primitive.ObjectID `json:"id"` // 任务id
|
|
Title string `json:"title"` // 任务标题
|
|
Img string `json:"img"` // 任务图标
|
|
Type oncetaskmod.OnceTaskTypeEnum `json:"type"` // 0 每日广告点击; 1 每日邀请
|
|
Prizes []*prizemod.Prize `json:"prizes"` // 奖品列表, 与签到相同
|
|
Desc string `json:"desc"` // 任务说明
|
|
Link string `json:"link"` // 跳转地址
|
|
Status int `json:"status"` // 0 未完成; 1 已完成未领取; 2 已领取
|
|
StartAt time.Time `json:"startAt"` // 场次开始时间;CountdownType=1 时为红包雨场次时间,否则零值
|
|
EndAt time.Time `json:"endAt"` // 场次结束时间;CountdownType=1 时为红包雨场次时间,否则零值
|
|
CountdownType int `json:"countdownType"` // 倒计时类型 0-无 1-红包雨倒计时
|
|
}
|
|
|
|
type NewTaskResponse struct {
|
|
DailyTasks []DailyTaskResponse `json:"dailyTask"`
|
|
OnceTasks []OnceTaskResponse `json:"onceTask"`
|
|
GrowthTasks []*GrowthTaskResponse `json:"growthTasks"`
|
|
}
|
|
|
|
type GrowthTaskResponse struct {
|
|
ID primitive.ObjectID `json:"id"` // 任务id
|
|
Title string `json:"title"` // 任务标题
|
|
Img string `json:"img"` // 任务图标
|
|
Type int `json:"type" bson:"type"` // 配置类型 1-购买金币
|
|
SubTitle string `json:"subTitle"` // 子标题
|
|
Status int `json:"status"` // 0 未完成; 1 已完成未领取; 2 已领取
|
|
}
|