task.go 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. package task
  2. const (
  3. //StateDel for normal state
  4. StateDel = int8(-1)
  5. //StateNormal for normal state
  6. StateNormal = int8(0)
  7. //StateHide for hide state
  8. StateHide = int8(1)
  9. //TaskManagement 任务管理
  10. TaskManagement = uint8(1)
  11. //AchievementManagement 成就管理
  12. AchievementManagement = uint8(2)
  13. //LogClientTask 日志服务类型
  14. LogClientTask = 301
  15. )
  16. const (
  17. _ uint8 = iota
  18. //TaskTypeNewcomer 新手任务
  19. TaskTypeNewcomer
  20. //TaskTypeAdvanced 进阶任务
  21. TaskTypeAdvanced
  22. //TaskTypeMonthly 月常任务
  23. TaskTypeMonthly
  24. )
  25. var (
  26. //TaskRootNameMap 管理分类, 1-任务管理、2-成就管理
  27. TaskRootNameMap = map[uint8]string{
  28. TaskManagement: "任务管理",
  29. AchievementManagement: "成就管理",
  30. }
  31. //TaskGroupNameMap 任务分类, 1-新手任务、2-进阶任务、3-月常任务; 4-互动成就、5-投稿成就、6-行为成就、7-高级成就
  32. TaskGroupNameMap = map[uint8]string{
  33. TaskTypeNewcomer: "新手任务",
  34. TaskTypeAdvanced: "进阶任务",
  35. TaskTypeMonthly: "月常任务",
  36. 4: "互动成就",
  37. 5: "投稿成就",
  38. 6: "行为成就",
  39. 7: "高级成就",
  40. }
  41. )
  42. //CheckRootType check task root type.
  43. func CheckRootType(ty uint8) bool {
  44. if ty == TaskTypeNewcomer || ty == TaskTypeAdvanced || ty == TaskTypeMonthly {
  45. return true
  46. }
  47. return false
  48. }
  49. var (
  50. //TargetMap for target show
  51. TargetMap = map[int8]string{
  52. 1: "开放浏览的稿件",
  53. 2: "分享自己视频的次数",
  54. 3: "创作学院的观看记录",
  55. 4: "所有avid的获得评论数",
  56. 5: "所有avid获得分享数",
  57. 6: "所有avid的获得收藏数",
  58. 7: "所有avid的获得硬币数",
  59. 8: "所有avid获得点赞数",
  60. 9: "所有avid的获得弹幕数",
  61. 10: "粉丝数",
  62. 11: "水印开关为打开状态",
  63. 12: "关注列表含有“哔哩哔哩创作中心”",
  64. 13: "用手机投稿上传视频",
  65. 14: "开放浏览的稿件",
  66. 15: "任意avid的获得点击量",
  67. 16: "任意avid的评论",
  68. 17: "任意avid的获得分享数",
  69. 18: "任意avid的获得收藏数",
  70. 19: "任意avid的获得硬币数",
  71. 20: "任意avid的获得点赞数",
  72. 21: "任意avid的获得弹幕数",
  73. 22: "激励计划状态为已开通",
  74. 23: "粉丝勋章为开启状态",
  75. }
  76. )
  77. //TableName get table name
  78. func (tg *TaskGroup) TableName() string {
  79. return "newcomers_task_group"
  80. }
  81. //TableName get table name
  82. func (tgr *TaskGroupReward) TableName() string {
  83. return "newcomers_grouptask_reward"
  84. }
  85. //TaskGroup for task group.
  86. type TaskGroup struct {
  87. ID int64 `gorm:"column:id" form:"id" json:"id"`
  88. Rank int64 `gorm:"column:rank" form:"rank" json:"rank"`
  89. State int8 `gorm:"column:state" form:"state" json:"state"` //-1-删除, 0-正常, 1-隐藏
  90. RootType uint8 `gorm:"column:root_type" form:"root_type" json:"root_type"`
  91. Type int8 `gorm:"column:type" form:"type" json:"type"`
  92. CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
  93. MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
  94. RewardIDs string `gorm:"-" form:"reward_ids" json:"-"`
  95. Comment string `gorm:"-" form:"comment" json:"comment"`
  96. Tasks []*Task `json:"tasks"`
  97. Reward []*RewardResult `json:"reward"`
  98. }
  99. //TaskGroupReward for task group relation reward.
  100. type TaskGroupReward struct {
  101. ID int64 `gorm:"column:id" form:"id" json:"id"`
  102. TaskGroupID int64 `gorm:"column:task_group_id" form:"task_group_id" json:"task_group_id"`
  103. RewardID int64 `gorm:"column:reward_id" form:"reward_id" json:"reward_id"`
  104. State int8 `gorm:"column:state" form:"state" json:"state"`
  105. CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
  106. MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
  107. }
  108. //OrderTask for task or task group order.
  109. type OrderTask struct {
  110. ID int64 `form:"id" validate:"required"`
  111. Rank int64 `form:"rank" validate:"required"`
  112. SwitchID int64 `form:"switch_id" validate:"required"`
  113. SwitchRank int64 `form:"switch_rank" validate:"required"`
  114. }
  115. //RewardResult for task group relation reward result.
  116. type RewardResult struct {
  117. RewardID int64 `json:"reward_id"`
  118. RewardName string `json:"reward_name"`
  119. }
  120. //TableName get table name
  121. func (t *Task) TableName() string {
  122. return "newcomers_task"
  123. }
  124. //TableName get table name
  125. func (tr *TaskReward) TableName() string {
  126. return "newcomers_task_reward"
  127. }
  128. // Task for def task struct.
  129. type Task struct {
  130. ID int64 `gorm:"column:id" form:"id" json:"id"`
  131. GroupID int64 `gorm:"column:group_id" form:"group_id" json:"group_id"`
  132. Title string `gorm:"column:title" form:"title" json:"title"`
  133. Desc string `gorm:"column:desc" form:"desc" json:"desc"`
  134. Comment string `gorm:"column:comment" form:"comment" json:"comment"`
  135. Type int8 `gorm:"column:type" form:"type" json:"type"`
  136. State int8 `gorm:"column:state" form:"state" json:"state"`
  137. TargetType int8 `gorm:"column:target_type" form:"target_type" json:"target_type"`
  138. TargetValue int32 `gorm:"column:target_value" form:"target_value" json:"target_value"`
  139. Rank int64 `gorm:"column:rank" form:"rank" json:"rank"`
  140. Extra string `gorm:"column:extra" form:"extra" json:"extra"` //跳转链接等附加信息,json格式
  141. FanRange string `gorm:"column:fan_range" form:"fan_range" json:"fan_range"` //粉丝范围, json格式
  142. UpTime string `gorm:"column:up_time" form:"up_time" json:"up_time"` //月常活动任务-上线时间
  143. DownTime string `gorm:"column:down_time" form:"down_time" json:"down_time"` //月常活动任务-下线时间
  144. CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
  145. MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
  146. RewardIDs string `gorm:"-" form:"reward_ids" json:"-"`
  147. Reward []*RewardResult `json:"reward"`
  148. }
  149. //TaskReward for task relation reward.
  150. type TaskReward struct {
  151. ID int64 `gorm:"column:id" form:"id" json:"id"`
  152. TaskID int64 `gorm:"column:task_id" form:"task_id" json:"task_id"`
  153. RewardID int64 `gorm:"column:reward_id" form:"reward_id" json:"reward_id"`
  154. State int8 `gorm:"column:state" form:"state" json:"state"`
  155. Comment string `gorm:"column:comment" form:"comment" json:"comment"`
  156. CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
  157. MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
  158. }
  159. //TableName get table name
  160. func (r *Reward) TableName() string {
  161. return "newcomers_reward"
  162. }
  163. //Reward for task reward.
  164. type Reward struct {
  165. ID int64 `gorm:"column:id" form:"id" json:"id"`
  166. ParentID int64 `gorm:"column:parent_id" form:"parent_id" json:"parent_id"`
  167. Type int8 `gorm:"column:type" form:"type" json:"type"`
  168. State int8 `gorm:"column:state" form:"state" json:"state"`
  169. IsActive int8 `gorm:"column:is_active" form:"is_active" json:"is_active"`
  170. Name string `gorm:"column:name" form:"name" json:"name"`
  171. Logo string `gorm:"column:logo" form:"logo" json:"logo"`
  172. Comment string `gorm:"column:comment" form:"comment" json:"comment"`
  173. UnlockLogo string `gorm:"column:unlock_logo" form:"unlock_logo" json:"unlock_logo"` //奖励未解锁, logo url
  174. NameExtra string `gorm:"column:name_extra" form:"name_extra" json:"name_extra"` //支持奖励名称展示,json格式
  175. PrizeID string `gorm:"column:prize_id" form:"prize_id" json:"prize_id"` //业务方奖品id
  176. PrizeUnit int8 `gorm:"column:prize_unit" form:"prize_unit" json:"prize_unit"` //奖品单位
  177. Expire int16 `gorm:"column:expire" form:"expire" json:"expire"` //有效期 单位天
  178. CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
  179. MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
  180. Children []*Reward `json:"children,omitempty"`
  181. }
  182. //TableName get table name
  183. func (gf *GiftReward) TableName() string {
  184. return "newcomers_gift_reward"
  185. }
  186. //GiftReward for task gift reward.
  187. type GiftReward struct {
  188. ID int64 `gorm:"column:id" form:"id" json:"id"`
  189. RootType uint8 `gorm:"column:root_type" form:"root_type" json:"root_type"`
  190. TaskType int64 `gorm:"column:task_type" form:"task_type" json:"task_type"`
  191. RewardID int64 `gorm:"column:reward_id" form:"reward_id" json:"-"`
  192. State int8 `gorm:"column:state" form:"state" json:"state"`
  193. Comment string `gorm:"column:comment" form:"comment" json:"comment"`
  194. CTime string `gorm:"column:ctime" form:"ctime" json:"-"`
  195. MTime string `gorm:"column:mtime" form:"mtime" json:"-"`
  196. RewardIDs string `gorm:"-" form:"reward_ids" json:"-"`
  197. Reward []*RewardResult `json:"reward"`
  198. }
  199. // LogParam for manager.
  200. type LogParam struct {
  201. UID int64 `json:"uid"`
  202. UName string `json:"uname"`
  203. Action string `json:"action"`
  204. OID int64 `json:"oid"`
  205. OIDs string `json:"oids"`
  206. OName string `json:"oname"`
  207. OState int8 `json:"ostate"`
  208. Content interface{} `json:"content"`
  209. }