cygx_activity_video_history.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package services
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_mfyx/models"
  6. "hongze/hongze_mfyx/utils"
  7. "strconv"
  8. "time"
  9. )
  10. // 记录用户活动音频播放记录
  11. func AddActivityVoiceHistory(user *models.WxUserItem, activityId, playSeconds int) {
  12. if playSeconds == 0 {
  13. return
  14. }
  15. key := utils.CYGX_VIDEO_HISTORY_KEY + utils.CYGX_OBJ_ACTIVITYVOICE + strconv.Itoa(activityId) + "_" + strconv.Itoa(user.UserId)
  16. var err error
  17. defer func() {
  18. if err != nil {
  19. go utils.SendAlarmMsg(fmt.Sprint("记录用户活动音频播放记录失败 AddActivityVoiceHistory Err:", err.Error(), "活动ID:", activityId, "UserId:", user.UserId), 2)
  20. }
  21. }()
  22. item := new(models.CygxActivityVoiceHistory)
  23. item.UserId = user.UserId
  24. item.RealName = user.RealName
  25. item.ActivityId = activityId
  26. item.PlaySeconds = strconv.Itoa(playSeconds)
  27. item.Mobile = user.Mobile
  28. item.Email = user.Email
  29. item.CompanyId = user.CompanyId
  30. item.CompanyName = user.CompanyName
  31. item.CreateTime = time.Now()
  32. item.ModifyTime = time.Now()
  33. item.RegisterPlatform = utils.REGISTER_PLATFORM
  34. sellerItem, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
  35. if e != nil && e.Error() != utils.ErrNoRow() {
  36. err = errors.New("GetSellerByCompanyIdCheckFicc, Err: " + e.Error())
  37. return
  38. }
  39. if sellerItem != nil {
  40. item.SellerName = sellerItem.RealName
  41. }
  42. if !utils.Rc.IsExist(key) {
  43. //添加记录
  44. e = models.AddCygxActivityVoiceHistory(item)
  45. if e != nil {
  46. err = errors.New("AddCygxActivityVoiceHistory, Err: " + e.Error())
  47. return
  48. }
  49. //播放记录加1
  50. e = models.UpdateCygxActivityVoiceCounts(activityId)
  51. if e != nil {
  52. err = errors.New("UpdateCygxActivityVoiceCounts, Err: " + e.Error())
  53. return
  54. }
  55. utils.Rc.Put(key, 1, 10*time.Minute)
  56. //设置消息提醒
  57. go ActivityVideoUserRmind(user, activityId, 2)
  58. } else {
  59. lastItem, e := models.GetLastCygxActivityVoiceHistory(activityId, user.UserId)
  60. if e != nil {
  61. err = errors.New("GetLastCygxActivityVoiceHistory, Err: " + e.Error())
  62. return
  63. }
  64. e = models.UpdateLastCygxActivityVoiceHistory(strconv.Itoa(playSeconds), lastItem.Id)
  65. if e != nil {
  66. err = errors.New("UpdateLastCygxActivityVoiceHistory, Err: " + e.Error())
  67. return
  68. }
  69. }
  70. //小程序端的回传两次,第一次没有播放时长,第二次有播放时长
  71. //if playSeconds != 0 {
  72. // lastItem, e := models.GetLastCygxActivityVoiceHistory(activityId, user.UserId)
  73. // if e != nil {
  74. // err = errors.New("GetLastCygxActivityVoiceHistory, Err: " + e.Error())
  75. // return
  76. // }
  77. // e = models.UpdateLastCygxActivityVoiceHistory(strconv.Itoa(playSeconds), lastItem.Id)
  78. // if e != nil {
  79. // err = errors.New("UpdateLastCygxActivityVoiceHistory, Err: " + e.Error())
  80. // return
  81. // }
  82. // utils.Rc.Put(key, 1, 10*time.Second)
  83. //} else {
  84. // //添加记录
  85. // e = models.AddCygxActivityVoiceHistory(item)
  86. // if e != nil {
  87. // err = errors.New("AddCygxActivityVoiceHistory, Err: " + e.Error())
  88. // return
  89. // }
  90. // //播放记录加1
  91. // e = models.UpdateCygxActivityVoiceCounts(activityId)
  92. // if e != nil {
  93. // err = errors.New("UpdateCygxActivityVoiceCounts, Err: " + e.Error())
  94. // return
  95. // }
  96. // //设置消息提醒
  97. // go ActivityVideoUserRmind(user, activityId, 2)
  98. //}
  99. return
  100. }