Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

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 已领取
}