activity.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package v1
  2. import (
  3. "demo/internal/model/entity"
  4. "github.com/gogf/gf/v2/frame/g"
  5. "github.com/gogf/gf/v2/os/gtime"
  6. )
  7. type RuleStruct struct {
  8. Text string `json:"text"`
  9. }
  10. type ShareCopyStruct struct {
  11. PC struct {
  12. Title string `json:"title"`
  13. Subtitle string `json:"subtitle"`
  14. Pic string `json:"pic"`
  15. Href string `json:"href"`
  16. } `json:"PC"`
  17. APP struct {
  18. Title string `json:"title"`
  19. Subtitle string `json:"subtitle"`
  20. Pic string `json:"pic"`
  21. Href string `json:"href"`
  22. } `json:"APP"`
  23. H5 struct {
  24. Title string `json:"title"`
  25. Subtitle string `json:"subtitle"`
  26. Pic string `json:"pic"`
  27. Href string `json:"href"`
  28. } `json:"H5"`
  29. WX struct {
  30. Title string `json:"title"`
  31. Subtitle string `json:"subtitle"`
  32. Pic string `json:"pic"`
  33. Href string `json:"href"`
  34. } `json:"WX"`
  35. }
  36. type PicStruct struct {
  37. Pc string `json:"pc"`
  38. App string `json:"app"`
  39. }
  40. type ActivityState int
  41. const (
  42. ActivityStateValid ActivityState = iota
  43. ActivityStateInvalid ActivityState = 1
  44. )
  45. type CreateReq struct {
  46. g.Meta `path:"/activity" method:"post" tags:"Activity" summary:"Create activity"`
  47. Id string `v:"required" dc:"活动id"`
  48. Name string `v:"required" dc:"活动名称"`
  49. StartTime *gtime.Time `v:"required|datetime" dc:"活动开始时间:2024-04-13 00:00:00"`
  50. EndTime *gtime.Time `v:"required|datetime" dc:"活动结束时间:2024-05-27 23:59:59"`
  51. LotteryStartTime string `v:"required-if:mold,2,mold,1|date-format:H:i:s" dc:"抽奖开始时间:0:00:00"`
  52. LotteryEndTime string `v:"required-if:mold,2,mold,1|date-format:H:i:s" dc:"抽奖结束时间:23:59:59"`
  53. Cost int `v:"required-if:mold,2,mold,1" dc:"'抽奖花费:1、默X个剑鱼币兑换1次抽奖机会;传X 2、订单抽奖: 抽奖次数动态根据下单次数判断 传-1'"`
  54. DailyNum int `v:"required|min:0" dc:" 每人每个身份每天抽奖次数限制"`
  55. DeviceNum int `v:"required|min:0" dc:" 每个设备每天抽奖次数限制"`
  56. IpNum int `v:"required|min:0" dc:" 每个IP每天抽奖次数限制"`
  57. Pic *PicStruct `v:"required-if:mold,2,mold,1" dc:" 活动图片"`
  58. Rule *[]RuleStruct `v:"required" dc:" 活动规则:[ { \"text\": \"活动时间:2024.5.13-2024.5.31,00:00至24:00。\" }]"`
  59. ShareCopy *ShareCopyStruct `v:"required|json" dc:" 分享文案"`
  60. State ActivityState `v:"required|enums" dc:" 活动状态默认0:有效;1:已取消"`
  61. Mold int `v:"required|enums|in:1,2" dc:" 活动类型 0:购买奖励;1:剑鱼币抽奖;2:订单抽奖 当前现状不支持新增mold为0的活动,mold固定为活动6"`
  62. OrderType string `v:"required-if:mold,2|in:m_1,v_1,v_2,v_3" dc:"订单类型: 该字段仅当mold值为2时生效;m_1-大会员购买; v_1-购买超级订阅;v_2-续费超级订阅;v_3-升级超级订阅 支持多个时使用英文逗号分割"`
  63. BgPic PicStruct `dc:"背景图片"`
  64. }
  65. type CreateRes struct {
  66. }
  67. type UpdateReq struct {
  68. g.Meta `path:"/activity/{id}" method:"put" tags:"Activity" summary:"Update activity"`
  69. Id int64 `v:"required" dc:"活动 id"`
  70. StartTime *gtime.Time `v:"datetime" dc:"活动开始时间"`
  71. EndTime *gtime.Time `v:"datetime" dc:"活动结束时间"`
  72. LotteryStartTime string `v:"date-format:H:i:s" dc:"抽奖开始时间:00:00:00"`
  73. LotteryEndTime string `v:"date-format:H:i:s" dc:"抽奖结束时间:09:00:00"`
  74. Cost int `dc:"'抽奖花费:1、默X个剑鱼币兑换1次抽奖机会;传X 2、订单抽奖: 抽奖次数动态根据下单次数判断 传-1"`
  75. DailyNum int `v:"min:0" dc:" 每人每个身份每天抽奖次数限制"`
  76. DeviceNum int `v:"min:0" dc:" 每个设备每天抽奖次数限制"`
  77. IpNum int `v:"min:0" dc:" 每个IP每天抽奖次数限制"`
  78. Pic string `dc:"活动图片"`
  79. Rule string `dc:"活动规则:[ { \"text\": \"活动时间:2024.5.13-2024.5.31,00:00至24:00。\" }]"`
  80. ShareCopy string `v:"json" dc:"分享文案:{ \"PC\": { \"title\": \"\", \"subtitle\": \"\", \"pic\": \"\", \"href\": \"\" }, \"APP\": { \"title\": \"\", \"subtitle\": \"\", \"pic\": \"\", \"href\": \"\" }, \"H5\": { \"title\": \"\", \"subtitle\": \"!\", \"pic\": \"\", \"href\": \"\" }, \"WX\": { \"title\": \"\", \"subtitle\": \"\", \"pic\": \"\", \"href\": \"\" }}"`
  81. State int `v:"in:0,1" dc:" 活动状态默认0:有效;1:已取消"`
  82. }
  83. type UpdateRes struct{}
  84. type GetListReq struct {
  85. g.Meta `path:"/activity" method:"get" tags:"Activity" summary:"Get Activitys"`
  86. StartTime *gtime.Time `v:"datetime" dc:"活动开始时间"`
  87. EndTime *gtime.Time `v:"datetime" dc:"活动结束时间"`
  88. State int `v:"in:0,1" dc:" 活动状态默认0:有效;1:已取消"`
  89. Mold int `v:"in:0,1,2" dc:" 活动类型 0:购买奖励;1:剑鱼币抽奖;2:订单抽奖"`
  90. Name string `dc:"活动名称"`
  91. Id int
  92. Offset int `d:"0" dc:"分页开始条数"`
  93. Limit int `d:"10" dc:"每页条数"`
  94. }
  95. type GetListRes struct {
  96. List []*entity.ActivityInfo `json:"list" dc:"Activity list"`
  97. Total int `json:"total" dc:"Activity list total"`
  98. }
  99. type GetActivityConfigReq struct {
  100. g.Meta `path:"/activity-config" method:"get" tags:"ActivityConfig" summary:"Get Activitys config"`
  101. }
  102. type GetActivityConfigRes map[string]interface{}