activity_signup_detail.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. package services
  2. import (
  3. "context"
  4. "fmt"
  5. "hongze/hongze_cygx/models"
  6. "hongze/hongze_cygx/utils"
  7. )
  8. //AddctivitySignupDetail 获取当天已结束的活动的报名信息。添加到到会详情
  9. func AddctivitySignupDetail(cont context.Context) (err error) {
  10. defer func() {
  11. if err != nil {
  12. fmt.Println(err)
  13. go utils.SendAlarmMsg(" 获取当天已结束的活动的报名信息。添加到到会详情失败, ErrMsg:"+err.Error(), 2)
  14. }
  15. }()
  16. actList, err := models.GetActivitySattusToComplete()
  17. if err != nil && err.Error() != utils.ErrNoRow() {
  18. return err
  19. }
  20. if len(actList) == 0 {
  21. return err
  22. }
  23. activityIds := make([]int, 0)
  24. for _, v := range actList {
  25. activityIds = append(activityIds, v.ActivityId)
  26. }
  27. actLen := len(activityIds)
  28. var condition string
  29. var pars []interface{}
  30. if actLen > 0 {
  31. condition += ` AND activity_id IN (` + utils.GetOrmInReplace(actLen) + `)`
  32. pars = append(pars, activityIds)
  33. } else {
  34. return err
  35. }
  36. //condition = ""
  37. //获取当天已经结束了 活动的报名人数
  38. signUpList, err := models.GetSignupDetailBySignup(condition, pars)
  39. if err != nil && err.Error() != utils.ErrNoRow() {
  40. return err
  41. }
  42. signUpDetailList, err := models.GetSignupDetailList(condition, pars)
  43. if err != nil && err.Error() != utils.ErrNoRow() {
  44. return err
  45. }
  46. mapsignUpDetai := make(map[string]string)
  47. if len(signUpDetailList) > 0 {
  48. for _, v := range signUpDetailList {
  49. mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", v.Mobile)] = v.Mobile
  50. }
  51. }
  52. var items []*models.CygxActivitySignupDetail
  53. if len(signUpList) > 0 {
  54. for _, v := range signUpList {
  55. if _, ok := mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", v.Mobile)]; !ok {
  56. item := new(models.CygxActivitySignupDetail)
  57. item.UserId = v.UserId
  58. item.RealName = v.RealName
  59. item.SellerName = v.SellerName
  60. item.ActivityId = v.ActivityId
  61. item.CreateTime = v.CreateTime
  62. item.Mobile = v.Mobile
  63. item.OutboundMobile = v.OutboundMobile
  64. item.Email = v.Email
  65. item.CompanyId = v.CompanyId
  66. item.CompanyName = v.CompanyName
  67. item.SignupType = v.SignupType
  68. item.FailType = v.FailType
  69. item.DoFailType = v.DoFailType
  70. items = append(items, item)
  71. if len(items)%2000 == 0 {
  72. err = models.AddCygxActivitySignupDetail(items)
  73. if err != nil {
  74. return
  75. }
  76. items = make([]*models.CygxActivitySignupDetail, 0)
  77. }
  78. }
  79. }
  80. }
  81. if len(items) > 0 {
  82. err = models.AddCygxActivitySignupDetail(items)
  83. if err != nil {
  84. return
  85. }
  86. }
  87. return err
  88. }
  89. //AddctivitySignupDetailByJmcj 通过进门财经添加用户参数信息
  90. func AddctivitySignupDetailByJmcj(itemsDetail []*models.CygxActivityAttendanceDetail, activityId int) (err error) {
  91. defer func() {
  92. if err != nil {
  93. fmt.Println(err)
  94. go utils.SendAlarmMsg("通过进门财经添加用户参数信息失败 ErrMsg:"+err.Error(), 2)
  95. }
  96. }()
  97. fmt.Println("活动ID", activityId)
  98. activityIds := make([]int, 0)
  99. activityIds = append(activityIds, activityId)
  100. actLen := len(activityIds)
  101. var condition string
  102. var pars []interface{}
  103. if actLen > 0 {
  104. condition += ` AND activity_id IN (` + utils.GetOrmInReplace(actLen) + `)`
  105. pars = append(pars, activityIds)
  106. }
  107. signUpDetailList, err := models.GetSignupDetailList(condition, pars)
  108. if err != nil && err.Error() != utils.ErrNoRow() {
  109. return err
  110. }
  111. mapsignUpDetai := make(map[string]string)
  112. if len(signUpDetailList) > 0 {
  113. for _, v := range signUpDetailList {
  114. mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", v.Mobile)] = v.Mobile
  115. }
  116. }
  117. //获取当天已经结束了 活动的报名人数
  118. signUpList, err := models.GetSignupDetailBySignup(condition, pars)
  119. if err != nil && err.Error() != utils.ErrNoRow() {
  120. return err
  121. }
  122. //建立外呼号与手机号的绑定
  123. mapsignUp := make(map[string]string)
  124. if len(signUpList) > 0 {
  125. for _, v := range signUpList {
  126. mapsignUp[fmt.Sprint(v.OutboundMobile)] = v.Mobile
  127. }
  128. }
  129. var itemsAdd []*models.CygxActivitySignupDetail
  130. var itemsUpdate []*models.CygxActivitySignupDetail
  131. for _, v := range itemsDetail {
  132. var item = new(models.CygxActivitySignupDetail)
  133. item.ActivityId = v.ActivityId
  134. item.RealName = v.RealName
  135. //如果手机号存在那么就是报名的,不存在就是直接参与的
  136. if _, ok := mapsignUp[v.Mobile]; ok {
  137. item.Mobile = mapsignUp[v.Mobile]
  138. } else {
  139. item.Mobile = v.Mobile
  140. }
  141. item.OutboundMobile = v.Mobile
  142. item.CompanyName = v.CompanyName
  143. item.CompanyId = v.CompanyId
  144. item.SellerName = v.SellerName
  145. item.FirstMeetingTime = v.FirstMeetingTime
  146. item.LastMeetingTime = v.LastMeetingTime
  147. item.Duration = v.Duration
  148. item.MeetingTypeStr = v.MeetingTypeStr
  149. item.MeetingAuthentication = v.MeetingAuthentication
  150. item.MeetingStatusStr = v.MeetingStatusStr
  151. item.CreateTime = v.CreateTime
  152. item.Position = v.Position
  153. item.IsMeeting = 1
  154. item.UseridEntity = v.UseridEntity
  155. item.ActivityTime = v.ActivityTime
  156. item.CrmCompanyMapStatusId = v.CrmCompanyMapStatusId
  157. if _, ok := mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", item.Mobile)]; !ok {
  158. itemsAdd = append(itemsAdd, item)
  159. } else {
  160. itemsUpdate = append(itemsUpdate, item)
  161. }
  162. }
  163. //return err
  164. if len(itemsAdd) > 0 {
  165. err = models.AddCygxActivitySignupDetail(itemsAdd)
  166. if err != nil {
  167. return
  168. }
  169. }
  170. if len(itemsUpdate) > 0 {
  171. err = models.UpdateActivitySignupDetailMulti(itemsUpdate)
  172. if err != nil {
  173. return
  174. }
  175. }
  176. return err
  177. }
  178. func GetCygxActivityAttendanceDetail() {
  179. listAll, err := models.GetActivityAttendanceDetailListAll()
  180. if err != nil {
  181. fmt.Println(err)
  182. }
  183. mapDetal := make(map[int][]*models.CygxActivityAttendanceDetail)
  184. for _, v := range listAll {
  185. mapDetal[v.ActivityId] = append(mapDetal[v.ActivityId], v)
  186. }
  187. for k, v := range mapDetal {
  188. AddctivitySignupDetailByJmcj(v, k)
  189. }
  190. //fmt.Println(mapDetal)
  191. }