233 lines
9.1 KiB
Go
233 lines
9.1 KiB
Go
|
package task
|
||
|
|
||
|
const (
|
||
|
//StateDel for normal state
|
||
|
StateDel = int8(-1)
|
||
|
//StateNormal for normal state
|
||
|
StateNormal = int8(0)
|
||
|
//StateHide for hide state
|
||
|
StateHide = int8(1)
|
||
|
|
||
|
//TaskManagement 任务管理
|
||
|
TaskManagement = uint8(1)
|
||
|
//AchievementManagement 成就管理
|
||
|
AchievementManagement = uint8(2)
|
||
|
|
||
|
//LogClientTask 日志服务类型
|
||
|
LogClientTask = 301
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
_ uint8 = iota
|
||
|
//TaskTypeNewcomer 新手任务
|
||
|
TaskTypeNewcomer
|
||
|
//TaskTypeAdvanced 进阶任务
|
||
|
TaskTypeAdvanced
|
||
|
//TaskTypeMonthly 月常任务
|
||
|
TaskTypeMonthly
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
//TaskRootNameMap 管理分类, 1-任务管理、2-成就管理
|
||
|
TaskRootNameMap = map[uint8]string{
|
||
|
TaskManagement: "任务管理",
|
||
|
AchievementManagement: "成就管理",
|
||
|
}
|
||
|
|
||
|
//TaskGroupNameMap 任务分类, 1-新手任务、2-进阶任务、3-月常任务; 4-互动成就、5-投稿成就、6-行为成就、7-高级成就
|
||
|
TaskGroupNameMap = map[uint8]string{
|
||
|
TaskTypeNewcomer: "新手任务",
|
||
|
TaskTypeAdvanced: "进阶任务",
|
||
|
TaskTypeMonthly: "月常任务",
|
||
|
4: "互动成就",
|
||
|
5: "投稿成就",
|
||
|
6: "行为成就",
|
||
|
7: "高级成就",
|
||
|
}
|
||
|
)
|
||
|
|
||
|
//CheckRootType check task root type.
|
||
|
func CheckRootType(ty uint8) bool {
|
||
|
if ty == TaskTypeNewcomer || ty == TaskTypeAdvanced || ty == TaskTypeMonthly {
|
||
|
return true
|
||
|
}
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
var (
|
||
|
//TargetMap for target show
|
||
|
TargetMap = map[int8]string{
|
||
|
1: "开放浏览的稿件",
|
||
|
2: "分享自己视频的次数",
|
||
|
3: "创作学院的观看记录",
|
||
|
4: "所有avid的获得评论数",
|
||
|
5: "所有avid获得分享数",
|
||
|
6: "所有avid的获得收藏数",
|
||
|
7: "所有avid的获得硬币数",
|
||
|
8: "所有avid获得点赞数",
|
||
|
9: "所有avid的获得弹幕数",
|
||
|
10: "粉丝数",
|
||
|
11: "水印开关为打开状态",
|
||
|
12: "关注列表含有“哔哩哔哩创作中心”",
|
||
|
13: "用手机投稿上传视频",
|
||
|
14: "开放浏览的稿件",
|
||
|
15: "任意avid的获得点击量",
|
||
|
16: "任意avid的评论",
|
||
|
17: "任意avid的获得分享数",
|
||
|
18: "任意avid的获得收藏数",
|
||
|
19: "任意avid的获得硬币数",
|
||
|
20: "任意avid的获得点赞数",
|
||
|
21: "任意avid的获得弹幕数",
|
||
|
22: "激励计划状态为已开通",
|
||
|
23: "粉丝勋章为开启状态",
|
||
|
}
|
||
|
)
|
||
|
|
||
|
//TableName get table name
|
||
|
func (tg *TaskGroup) TableName() string {
|
||
|
return "newcomers_task_group"
|
||
|
}
|
||
|
|
||
|
//TableName get table name
|
||
|
func (tgr *TaskGroupReward) TableName() string {
|
||
|
return "newcomers_grouptask_reward"
|
||
|
}
|
||
|
|
||
|
//TaskGroup for task group.
|
||
|
type TaskGroup struct {
|
||
|
ID int64 `gorm:"column:id" form:"id" json:"id"`
|
||
|
Rank int64 `gorm:"column:rank" form:"rank" json:"rank"`
|
||
|
State int8 `gorm:"column:state" form:"state" json:"state"` //-1-删除, 0-正常, 1-隐藏
|
||
|
RootType uint8 `gorm:"column:root_type" form:"root_type" json:"root_type"`
|
||
|
Type int8 `gorm:"column:type" form:"type" json:"type"`
|
||
|
CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
|
||
|
MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
|
||
|
RewardIDs string `gorm:"-" form:"reward_ids" json:"-"`
|
||
|
Comment string `gorm:"-" form:"comment" json:"comment"`
|
||
|
Tasks []*Task `json:"tasks"`
|
||
|
Reward []*RewardResult `json:"reward"`
|
||
|
}
|
||
|
|
||
|
//TaskGroupReward for task group relation reward.
|
||
|
type TaskGroupReward struct {
|
||
|
ID int64 `gorm:"column:id" form:"id" json:"id"`
|
||
|
TaskGroupID int64 `gorm:"column:task_group_id" form:"task_group_id" json:"task_group_id"`
|
||
|
RewardID int64 `gorm:"column:reward_id" form:"reward_id" json:"reward_id"`
|
||
|
State int8 `gorm:"column:state" form:"state" json:"state"`
|
||
|
CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
|
||
|
MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
|
||
|
}
|
||
|
|
||
|
//OrderTask for task or task group order.
|
||
|
type OrderTask struct {
|
||
|
ID int64 `form:"id" validate:"required"`
|
||
|
Rank int64 `form:"rank" validate:"required"`
|
||
|
SwitchID int64 `form:"switch_id" validate:"required"`
|
||
|
SwitchRank int64 `form:"switch_rank" validate:"required"`
|
||
|
}
|
||
|
|
||
|
//RewardResult for task group relation reward result.
|
||
|
type RewardResult struct {
|
||
|
RewardID int64 `json:"reward_id"`
|
||
|
RewardName string `json:"reward_name"`
|
||
|
}
|
||
|
|
||
|
//TableName get table name
|
||
|
func (t *Task) TableName() string {
|
||
|
return "newcomers_task"
|
||
|
}
|
||
|
|
||
|
//TableName get table name
|
||
|
func (tr *TaskReward) TableName() string {
|
||
|
return "newcomers_task_reward"
|
||
|
}
|
||
|
|
||
|
// Task for def task struct.
|
||
|
type Task struct {
|
||
|
ID int64 `gorm:"column:id" form:"id" json:"id"`
|
||
|
GroupID int64 `gorm:"column:group_id" form:"group_id" json:"group_id"`
|
||
|
Title string `gorm:"column:title" form:"title" json:"title"`
|
||
|
Desc string `gorm:"column:desc" form:"desc" json:"desc"`
|
||
|
Comment string `gorm:"column:comment" form:"comment" json:"comment"`
|
||
|
Type int8 `gorm:"column:type" form:"type" json:"type"`
|
||
|
State int8 `gorm:"column:state" form:"state" json:"state"`
|
||
|
TargetType int8 `gorm:"column:target_type" form:"target_type" json:"target_type"`
|
||
|
TargetValue int32 `gorm:"column:target_value" form:"target_value" json:"target_value"`
|
||
|
Rank int64 `gorm:"column:rank" form:"rank" json:"rank"`
|
||
|
Extra string `gorm:"column:extra" form:"extra" json:"extra"` //跳转链接等附加信息,json格式
|
||
|
FanRange string `gorm:"column:fan_range" form:"fan_range" json:"fan_range"` //粉丝范围, json格式
|
||
|
UpTime string `gorm:"column:up_time" form:"up_time" json:"up_time"` //月常活动任务-上线时间
|
||
|
DownTime string `gorm:"column:down_time" form:"down_time" json:"down_time"` //月常活动任务-下线时间
|
||
|
CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
|
||
|
MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
|
||
|
RewardIDs string `gorm:"-" form:"reward_ids" json:"-"`
|
||
|
Reward []*RewardResult `json:"reward"`
|
||
|
}
|
||
|
|
||
|
//TaskReward for task relation reward.
|
||
|
type TaskReward struct {
|
||
|
ID int64 `gorm:"column:id" form:"id" json:"id"`
|
||
|
TaskID int64 `gorm:"column:task_id" form:"task_id" json:"task_id"`
|
||
|
RewardID int64 `gorm:"column:reward_id" form:"reward_id" json:"reward_id"`
|
||
|
State int8 `gorm:"column:state" form:"state" json:"state"`
|
||
|
Comment string `gorm:"column:comment" form:"comment" json:"comment"`
|
||
|
CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
|
||
|
MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
|
||
|
}
|
||
|
|
||
|
//TableName get table name
|
||
|
func (r *Reward) TableName() string {
|
||
|
return "newcomers_reward"
|
||
|
}
|
||
|
|
||
|
//Reward for task reward.
|
||
|
type Reward struct {
|
||
|
ID int64 `gorm:"column:id" form:"id" json:"id"`
|
||
|
ParentID int64 `gorm:"column:parent_id" form:"parent_id" json:"parent_id"`
|
||
|
Type int8 `gorm:"column:type" form:"type" json:"type"`
|
||
|
State int8 `gorm:"column:state" form:"state" json:"state"`
|
||
|
IsActive int8 `gorm:"column:is_active" form:"is_active" json:"is_active"`
|
||
|
Name string `gorm:"column:name" form:"name" json:"name"`
|
||
|
Logo string `gorm:"column:logo" form:"logo" json:"logo"`
|
||
|
Comment string `gorm:"column:comment" form:"comment" json:"comment"`
|
||
|
UnlockLogo string `gorm:"column:unlock_logo" form:"unlock_logo" json:"unlock_logo"` //奖励未解锁, logo url
|
||
|
NameExtra string `gorm:"column:name_extra" form:"name_extra" json:"name_extra"` //支持奖励名称展示,json格式
|
||
|
PrizeID string `gorm:"column:prize_id" form:"prize_id" json:"prize_id"` //业务方奖品id
|
||
|
PrizeUnit int8 `gorm:"column:prize_unit" form:"prize_unit" json:"prize_unit"` //奖品单位
|
||
|
Expire int16 `gorm:"column:expire" form:"expire" json:"expire"` //有效期 单位天
|
||
|
CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
|
||
|
MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
|
||
|
Children []*Reward `json:"children,omitempty"`
|
||
|
}
|
||
|
|
||
|
//TableName get table name
|
||
|
func (gf *GiftReward) TableName() string {
|
||
|
return "newcomers_gift_reward"
|
||
|
}
|
||
|
|
||
|
//GiftReward for task gift reward.
|
||
|
type GiftReward struct {
|
||
|
ID int64 `gorm:"column:id" form:"id" json:"id"`
|
||
|
RootType uint8 `gorm:"column:root_type" form:"root_type" json:"root_type"`
|
||
|
TaskType int64 `gorm:"column:task_type" form:"task_type" json:"task_type"`
|
||
|
RewardID int64 `gorm:"column:reward_id" form:"reward_id" json:"-"`
|
||
|
State int8 `gorm:"column:state" form:"state" json:"state"`
|
||
|
Comment string `gorm:"column:comment" form:"comment" json:"comment"`
|
||
|
CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
|
||
|
MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
|
||
|
RewardIDs string `gorm:"-" form:"reward_ids" json:"-"`
|
||
|
Reward []*RewardResult `json:"reward"`
|
||
|
}
|
||
|
|
||
|
// LogParam for manager.
|
||
|
type LogParam struct {
|
||
|
UID int64 `json:"uid"`
|
||
|
UName string `json:"uname"`
|
||
|
Action string `json:"action"`
|
||
|
OID int64 `json:"oid"`
|
||
|
OIDs string `json:"oids"`
|
||
|
OName string `json:"oname"`
|
||
|
OState int8 `json:"ostate"`
|
||
|
Content interface{} `json:"content"`
|
||
|
}
|