task.go 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package services
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "hongze/hongze_api/cache"
  6. "hongze/hongze_api/models"
  7. "hongze/hongze_api/services/go_redis"
  8. "hongze/hongze_api/utils"
  9. )
  10. func Task() {
  11. fmt.Println("start")
  12. //InitSetUnionId()
  13. //FixUnionId()
  14. fmt.Println("end")
  15. go AutoUpdateUserView()
  16. }
  17. // AutoUpdateUserView 自动添加阅读记录
  18. func AutoUpdateUserView() {
  19. defer func() {
  20. if err := recover(); err != nil {
  21. fmt.Println("[AutoUpdateUserView]", err)
  22. }
  23. }()
  24. for {
  25. go_redis.BRPop2Func(utils.CACHE_KEY_USER_VIEW, func(b []byte) {
  26. var userViewRedisData cache.UserViewRedisData
  27. if err := json.Unmarshal(b, &userViewRedisData); err != nil {
  28. go utils.SendEmail(utils.APPNAME+" "+utils.RunMode+" 失败提醒", fmt.Sprint("AutoUpdateUserView ERR:", err, ";response data:", string(b)), utils.EmailSendToUsers)
  29. //}
  30. //if _, err := models.AddLogs(&log); err != nil {
  31. // fmt.Println("AddLogs:", err.Error(), log)
  32. } else {
  33. // 客户的阅读时间
  34. err = models.UpdateCompanyProductViewData(userViewRedisData.CompanyId, userViewRedisData.ProductId, userViewRedisData.ViewTime)
  35. if err != nil {
  36. go utils.SendEmail(utils.APPNAME+" "+utils.RunMode+" 失败提醒", fmt.Sprint("AutoUpdateUserView Update UpdateCompanyProductViewData ERR:", err, ";response data:", string(b)), utils.EmailSendToUsers)
  37. }
  38. // 添加报告阅读汇总记录
  39. item := &models.UserReportViewRecord{
  40. Id: 1,
  41. Source: 1,
  42. UserId: userViewRedisData.UserId,
  43. ReportId: userViewRedisData.ReportId,
  44. ReportChapterId: userViewRedisData.ReportChapterId,
  45. Mobile: userViewRedisData.Mobile,
  46. Email: userViewRedisData.Email,
  47. RealName: userViewRedisData.RealName,
  48. CompanyName: userViewRedisData.CompanyName,
  49. StopTime: userViewRedisData.StopTime,
  50. OutId: fmt.Sprint(userViewRedisData.OutId),
  51. CreateTime: userViewRedisData.ViewTime,
  52. }
  53. err = item.Insert(2021, item)
  54. if err != nil {
  55. go utils.SendEmail(utils.APPNAME+" "+utils.RunMode+" 失败提醒", fmt.Sprint("AutoUpdateUserView ADD UserReportViewRecord ERR:", err, ";response data:", string(b)), utils.EmailSendToUsers)
  56. }
  57. // 联系人的阅读时间
  58. err = models.UpdateWxUserViewData(userViewRedisData.UserId, userViewRedisData.ProductId, userViewRedisData.ViewTime)
  59. if err != nil {
  60. go utils.SendEmail(utils.APPNAME+" "+utils.RunMode+" 失败提醒", fmt.Sprint("AutoUpdateUserView Update UpdateWxUserViewData ERR:", err, ";response data:", string(b)), utils.EmailSendToUsers)
  61. }
  62. }
  63. })
  64. }
  65. }