activity_signin.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package services
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_cygx/models"
  6. "hongze/hongze_cygx/utils"
  7. "strconv"
  8. "time"
  9. )
  10. // AddCygxActivitySigninLog 扫码签到日志记录
  11. func AddCygxActivitySigninLog(item *models.CygxActivitySignin) (err error) {
  12. defer func() {
  13. if err != nil {
  14. fmt.Println(err)
  15. go utils.SendAlarmMsg("扫码签到日志记录,失败,活动ID:"+strconv.Itoa(item.ActivityId)+err.Error(), 2)
  16. }
  17. }()
  18. //添加日志记录
  19. itemLog := new(models.CygxActivitySigninLog)
  20. itemLog.ActivityId = item.ActivityId
  21. itemLog.UserId = item.UserId
  22. itemLog.Mobile = item.Mobile
  23. itemLog.Email = item.Email
  24. itemLog.CompanyId = item.CompanyId
  25. itemLog.RealName = item.RealName
  26. itemLog.CompanyName = item.CompanyName
  27. itemLog.IsSignup = item.IsSignup
  28. itemLog.BusinessCard = item.BusinessCard
  29. itemLog.CountryCode = item.CountryCode
  30. itemLog.OpenId = item.OpenId
  31. itemLog.CreateTime = time.Now()
  32. err = models.AddCygxActivitySigninLog(itemLog)
  33. if err != nil {
  34. return
  35. }
  36. err = models.UpdatedateCygxActivitySignin(item)
  37. return
  38. }
  39. // AddCygxActivityOfflineMeetingDetail 扫码签到日志记录
  40. func AddCygxActivityOfflineMeetingDetail(activityid int, user *models.WxUserItem) (err error) {
  41. defer func() {
  42. if err != nil {
  43. fmt.Println(err)
  44. go utils.SendAlarmMsg("扫码签到日志记录,失败,活动ID:"+strconv.Itoa(activityid)+err.Error(), 2)
  45. }
  46. }()
  47. var condition string
  48. var pars []interface{}
  49. condition = ` AND activity_id = ?`
  50. pars = append(pars, activityid)
  51. listOfflineMeeting, err := models.GetOfflineMeetingList(condition, pars)
  52. if err != nil {
  53. err = errors.New("GetOfflineMeetingList, Err: " + err.Error())
  54. return
  55. }
  56. mapOfflineMeeting := make(map[int]bool)
  57. for _, v := range listOfflineMeeting {
  58. mapOfflineMeeting[v.UserId] = true
  59. }
  60. pars = make([]interface{}, 0)
  61. condition = ` AND do_fail_type = 0 AND activity_id = ?`
  62. pars = append(pars, activityid)
  63. listSignup, e := models.GetActivitySignupList(condition, pars)
  64. if e != nil {
  65. err = errors.New("GetResourceDataList, Err: " + e.Error())
  66. return
  67. }
  68. var items []*models.CygxActivityOfflineMeetingDetail
  69. for _, v := range listSignup {
  70. if !mapOfflineMeeting[v.UserId] {
  71. item := new(models.CygxActivityOfflineMeetingDetail)
  72. item.UserId = v.UserId
  73. item.ActivityId = v.ActivityId
  74. item.CreateTime = v.CreateTime
  75. item.Mobile = v.Mobile
  76. item.CompanyId = v.CompanyId
  77. item.CompanyName = v.CompanyName
  78. if user.UserId == v.UserId {
  79. item.IsMeeting = 1
  80. item.SigninTime = time.Now().Format(utils.FormatDateTime)
  81. }
  82. items = append(items, item)
  83. }
  84. }
  85. //添加线下到会信息记录
  86. _, err = models.AddCygxActivityOfflineMeetingDetailList(items)
  87. if err != nil {
  88. err = errors.New("AddCygxActivityOfflineMeetingDetailList, Err: " + err.Error())
  89. return
  90. }
  91. //修改活动是否提交到会状态
  92. err = models.UpdateCygxActivitySubmitMeetingByActivityId(activityid)
  93. if err != nil {
  94. err = errors.New("UpdateCygxActivitySubmitMeetingByActivityId, Err: " + err.Error())
  95. return
  96. }
  97. //修改签到时间
  98. err = models.UpdateCygxActivityOfflineMeetingDetailSigninTime(activityid, user.UserId)
  99. if err != nil {
  100. err = errors.New("UpdateCygxActivityOfflineMeetingDetailSigninTime, Err: " + err.Error())
  101. return
  102. }
  103. return
  104. }