activity_signup_detail.go 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  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. //处理研选扣点信息
  177. YanXuanActivityPointsBillSubmitMeeting(activityId, 0)
  178. return err
  179. }
  180. //func GetCygxActivityAttendanceDetail() {
  181. // listAll, err := models.GetActivityAttendanceDetailListAll()
  182. // if err != nil {
  183. // fmt.Println(err)
  184. // }
  185. // mapDetal := make(map[int][]*models.CygxActivityAttendanceDetail)
  186. //
  187. // for _, v := range listAll {
  188. // mapDetal[v.ActivityId] = append(mapDetal[v.ActivityId], v)
  189. // }
  190. //
  191. // for k, v := range mapDetal {
  192. // AddctivitySignupDetailByJmcj(v, k)
  193. // }
  194. // //fmt.Println(mapDetal)
  195. //}
  196. // AddctivitySignupDetailByJmcj 通过进门财经添加用户参数信息
  197. func AddctivitySignupDetailByJmcjNew(itemsDetail []*models.CygxActivityAttendanceDetail, activityIds []int) (err error) {
  198. defer func() {
  199. if err != nil {
  200. fmt.Println(err)
  201. go utils.SendAlarmMsg("通过进门财经添加用户参数信息失败 ErrMsg:"+err.Error(), 2)
  202. }
  203. }()
  204. actLen := len(activityIds)
  205. var condition string
  206. var pars []interface{}
  207. if actLen > 0 {
  208. condition += ` AND activity_id IN (` + utils.GetOrmInReplace(actLen) + `)`
  209. pars = append(pars, activityIds)
  210. }
  211. signUpDetailList, err := models.GetSignupDetailList(condition, pars)
  212. if err != nil && err.Error() != utils.ErrNoRow() {
  213. return err
  214. }
  215. mapsignUpDetai := make(map[string]string)
  216. if len(signUpDetailList) > 0 {
  217. for _, v := range signUpDetailList {
  218. mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", v.Mobile)] = v.Mobile
  219. }
  220. }
  221. //获取当天已经结束了 活动的报名人数
  222. signUpList, err := models.GetSignupDetailBySignup(condition, pars)
  223. if err != nil && err.Error() != utils.ErrNoRow() {
  224. return err
  225. }
  226. //建立外呼号与手机号的绑定
  227. mapsignUp := make(map[string]string)
  228. if len(signUpList) > 0 {
  229. for _, v := range signUpList {
  230. mapsignUp[fmt.Sprint(v.OutboundMobile)] = v.Mobile
  231. }
  232. }
  233. var itemsAdd []*models.CygxActivitySignupDetail
  234. var itemsUpdate []*models.CygxActivitySignupDetail
  235. for _, v := range itemsDetail {
  236. var item = new(models.CygxActivitySignupDetail)
  237. item.ActivityId = v.ActivityId
  238. item.RealName = v.RealName
  239. //如果手机号存在那么就是报名的,不存在就是直接参与的
  240. if _, ok := mapsignUp[v.Mobile]; ok {
  241. item.Mobile = mapsignUp[v.Mobile]
  242. } else {
  243. item.Mobile = v.Mobile
  244. }
  245. item.OutboundMobile = v.Mobile
  246. item.CompanyName = v.CompanyName
  247. item.CompanyId = v.CompanyId
  248. item.SellerName = v.SellerName
  249. item.FirstMeetingTime = v.FirstMeetingTime
  250. item.LastMeetingTime = v.LastMeetingTime
  251. item.Duration = v.Duration
  252. item.MeetingTypeStr = v.MeetingTypeStr
  253. item.MeetingAuthentication = v.MeetingAuthentication
  254. item.MeetingStatusStr = v.MeetingStatusStr
  255. item.CreateTime = v.CreateTime
  256. item.Position = v.Position
  257. item.IsMeeting = 1
  258. item.UseridEntity = v.UseridEntity
  259. item.ActivityTime = v.ActivityTime
  260. item.CrmCompanyMapStatusId = v.CrmCompanyMapStatusId
  261. if _, ok := mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", item.Mobile)]; !ok {
  262. itemsAdd = append(itemsAdd, item)
  263. } else {
  264. itemsUpdate = append(itemsUpdate, item)
  265. }
  266. }
  267. if len(itemsAdd) > 0 {
  268. err = models.AddCygxActivitySignupDetail(itemsAdd)
  269. if err != nil {
  270. return
  271. }
  272. }
  273. if len(itemsUpdate) > 0 {
  274. err = models.UpdateActivitySignupDetailMulti(itemsUpdate)
  275. if err != nil {
  276. return
  277. }
  278. }
  279. //获取所有研选扣点的活动,如果是就行扣点流水处理
  280. mapActivityPoints, _ := GetActivityPointsAll()
  281. for _, v := range activityIds {
  282. if mapActivityPoints[v] {
  283. YanXuanActivityPointsBillSubmitMeeting(v, 0)
  284. }
  285. }
  286. return err
  287. }