task.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. package timetask
  2. import (
  3. "app.yhyue.com/moapp/jybase/date"
  4. "github.com/robfig/cron/v3"
  5. "log"
  6. "telemarketingEtl/entity"
  7. "time"
  8. _ "github.com/gogf/gf/contrib/drivers/mysql/v2"
  9. "github.com/gogf/gf/v2/os/gcfg"
  10. "github.com/gogf/gf/v2/os/gctx"
  11. )
  12. /*
  13. #查看
  14. eventInfoTime: 5
  15. #搜索
  16. searchInfoTime: 5
  17. #每日
  18. visitInfoTime: 5
  19. #定时
  20. openSeaTime: 5
  21. #退出
  22. deleteOpenSeaTime: 5
  23. #自动退出
  24. returnOpenSeaTime: 5
  25. */
  26. func today() int64 {
  27. now := time.Now()
  28. today := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
  29. return today.Unix()
  30. }
  31. func GetStartEnd() (start, end int64) {
  32. now := time.Now()
  33. today := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
  34. start = today.AddDate(0, 0, -1).Unix()
  35. end = today.Unix()
  36. return
  37. }
  38. type TaskEventInfo struct{}
  39. func (t *TaskEventInfo) Run() {
  40. log.Println("开始TaskEventInfo")
  41. now := time.Now()
  42. end := now.Unix()
  43. min := gcfg.Instance().MustGet(gctx.New(), "eventInfoTime", "").Int()
  44. start := now.Add(-time.Minute * time.Duration(min)).Unix()
  45. //查看事件
  46. entity.EventInfoAdd(start, end)
  47. log.Println("结束TaskEventInfo")
  48. }
  49. type TaskSearchInfo struct{}
  50. func (t *TaskSearchInfo) Run() {
  51. log.Println("开始TaskSearchInfo")
  52. now := time.Now()
  53. end := now.Unix()
  54. min := gcfg.Instance().MustGet(gctx.New(), "searchInfoTime", "").Int()
  55. start := now.Add(-time.Minute * time.Duration(min)).Unix()
  56. //搜索事件
  57. entity.SearchInfoAdd(start, end)
  58. log.Println("结束TaskSearchInfo")
  59. }
  60. type TaskVisitInfo struct{}
  61. func (t *TaskVisitInfo) Run() {
  62. log.Println("开始TaskVisitInfo")
  63. now := time.Now()
  64. end := now.Unix()
  65. min := gcfg.Instance().MustGet(gctx.New(), "visitInfoTime", "").Int()
  66. start := now.Add(-time.Minute * time.Duration(min)).Unix()
  67. entity.VisitInfoAdd(start, end)
  68. //entity.VisitInfoAdd(1721404800, 1724947200)
  69. log.Println("结束TaskVisitInfo")
  70. }
  71. type TaskOpenSea struct{}
  72. func (t *TaskOpenSea) Run() {
  73. log.Println("开始TaskOpenSea")
  74. entity.GetOpenSea()
  75. log.Println("结束TaskOpenSea")
  76. }
  77. type TaskCountMaxVisit struct{}
  78. func (t *TaskCountMaxVisit) Run() {
  79. log.Println("开始TaskCountMaxVisit")
  80. entity.CountMaxVisit()
  81. log.Println("结束TaskCountMaxVisit")
  82. }
  83. type TaskCountCalled struct{}
  84. func (t *TaskCountCalled) Run() {
  85. log.Println("开始TaskCountCalled")
  86. entity.CountCalled()
  87. log.Println("结束TaskCountCalled")
  88. }
  89. type TaskMissedCalls struct{}
  90. func (t *TaskMissedCalls) Run() {
  91. log.Println("开始TaskMissedCalls")
  92. entity.MissedCalls()
  93. log.Println("结束TaskMissedCalls")
  94. }
  95. type TaskJyList struct{}
  96. func (t *TaskJyList) Run() {
  97. log.Println("开始TaskJyList")
  98. entity.Count30DaysSearch()
  99. log.Println("结束TaskJyList")
  100. }
  101. type TaskJyDetail struct{}
  102. func (t *TaskJyDetail) Run() {
  103. log.Println("开始TaskJyDetail")
  104. entity.Count30DaysDetail()
  105. log.Println("结束TaskJyDetail")
  106. }
  107. type TaskVipExpire struct{}
  108. func (t *TaskVipExpire) Run() {
  109. log.Println("开始TaskVipExpire")
  110. entity.VipExpire()
  111. log.Println("结束TaskVipExpire")
  112. }
  113. // 定时任务
  114. func Run() {
  115. timetaskBl := gcfg.Instance().MustGet(gctx.New(), "timetaskBl", "").Bool()
  116. if timetaskBl {
  117. var (
  118. c = cron.New()
  119. )
  120. eventInfoTask := gcfg.Instance().MustGet(gctx.New(), "eventInfoTask", "").String()
  121. searchInfoTask := gcfg.Instance().MustGet(gctx.New(), "searchInfoTask", "").String()
  122. visitInfoTask := gcfg.Instance().MustGet(gctx.New(), "visitInfoTask", "").String()
  123. openSeaTask := gcfg.Instance().MustGet(gctx.New(), "openSeaTask", "").String()
  124. countMaxVisitTask := gcfg.Instance().MustGet(gctx.New(), "countMaxVisitTask", "").String()
  125. countCalledVoice := gcfg.Instance().MustGet(gctx.New(), "countCallsTask", "").String()
  126. missedCallsTask := gcfg.Instance().MustGet(gctx.New(), "missedCallsTask", "").String()
  127. jyListAndDetailTask := gcfg.Instance().MustGet(gctx.New(), "jyListAndDetailTask", "").String()
  128. vipExpireTask := gcfg.Instance().MustGet(gctx.New(), "vipExpireTask", "").String()
  129. c.AddJob(eventInfoTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskEventInfo{}))
  130. c.AddJob(searchInfoTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskSearchInfo{}))
  131. c.AddJob(visitInfoTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskVisitInfo{}))
  132. c.AddJob(openSeaTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskOpenSea{}))
  133. entity.CurrentDate = date.NowFormat(date.Date_Short_Layout)
  134. //近30天连续访问天数
  135. c.AddJob(countMaxVisitTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskCountMaxVisit{}))
  136. //最近7天外呼次数
  137. c.AddJob(countCalledVoice, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskCountCalled{}))
  138. //最近连续未接听次数
  139. c.AddJob(missedCallsTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskMissedCalls{}))
  140. //近3天招标采购搜索次数
  141. c.AddJob(jyListAndDetailTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskJyList{}))
  142. //近3天点击标讯三级页次数
  143. c.AddJob(jyListAndDetailTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskJyDetail{}))
  144. //会员是否到期
  145. c.AddJob(vipExpireTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskVipExpire{}))
  146. c.Start()
  147. }
  148. }