user_admin_share.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package services
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_web_mfyx/models"
  6. "hongze/hongze_web_mfyx/utils"
  7. "strconv"
  8. "time"
  9. )
  10. // 判断用户是否属于销售,并且获取对应加密的分享码
  11. func GetInviteShareCode(mobile string) (inviteShareCode string) {
  12. if mobile == "" {
  13. return
  14. }
  15. var err error
  16. defer func() {
  17. if err != nil {
  18. fmt.Println(err)
  19. go utils.SendAlarmMsg(fmt.Sprint("判断用户是否属于销售,并且获取对应加密的分享码失败 GetInviteShareCode, err:", err.Error(), "mobile:", mobile), 2)
  20. }
  21. }()
  22. adminDetail, e := models.GetSysAdminByMobile(mobile)
  23. if e != nil && e.Error() != utils.ErrNoRow() {
  24. err = errors.New("GetSysAdminByMobile, Err: " + e.Error())
  25. return
  26. }
  27. if adminDetail == nil {
  28. return
  29. }
  30. inviteShareCode = utils.MD5(strconv.Itoa(adminDetail.AdminId)) //MD5 对ID进行加密
  31. total, e := models.GetCygxUserAdminShareCodeByShareCodeCount(inviteShareCode)
  32. if e != nil {
  33. err = errors.New("GetCygxUserAdminShareCodeByShareCodeCount, Err: " + e.Error())
  34. return
  35. }
  36. //如果不存在就新增一个
  37. if total == 0 {
  38. item := new(models.CygxUserAdminShareCode)
  39. item.SellerName = adminDetail.RealName
  40. item.SellerId = adminDetail.AdminId
  41. item.Mobile = adminDetail.Mobile
  42. item.CreateTime = time.Now()
  43. item.ModifyTime = time.Now()
  44. item.ShareCode = inviteShareCode
  45. e = models.AddCygxUserAdminShareCode(item)
  46. if e != nil {
  47. err = errors.New("AddCygxUserAdminShareCode, Err: " + e.Error())
  48. return
  49. }
  50. }
  51. return
  52. }
  53. // 记录分享来源
  54. func AddCygxUserAdminShareHistory(user *models.WxUserItem, source, sourceTitle, inviteShareCode string, sourceId int) {
  55. if inviteShareCode == "" {
  56. return
  57. }
  58. if user.UserId == 0 {
  59. return
  60. }
  61. //3秒之内多次请求,不重复记录
  62. key := "CYGX_" + source + "_" + strconv.Itoa(sourceId) + "_" + strconv.Itoa(user.UserId)
  63. if utils.Rc.IsExist(key) {
  64. return
  65. }
  66. utils.Rc.Put(key, 1, 3*time.Second)
  67. var err error
  68. defer func() {
  69. if err != nil {
  70. fmt.Println(err)
  71. go utils.SendAlarmMsg(fmt.Sprint("记录分享来源失败 AddCygxUserAdminShareHistory, err:", err.Error()), 2)
  72. }
  73. }()
  74. adminDetail, e := models.GetUserAdminShareCodeByShareCode(inviteShareCode)
  75. if e != nil {
  76. err = errors.New("GetUserAdminShareCodeByShareCode, Err: " + e.Error())
  77. return
  78. }
  79. if adminDetail == nil {
  80. return
  81. }
  82. //内部人员访问不做记录
  83. //adminUserDetail, e := models.GetSysAdminByMobile(user.Mobile)
  84. //if e != nil && e.Error() != utils.ErrNoRow() {
  85. // err = errors.New("GetSysAdminByMobile, Err: " + e.Error())
  86. // return
  87. //}
  88. //if adminUserDetail != nil {
  89. // return
  90. //}
  91. item := new(models.CygxUserAdminShareHistory)
  92. switch source {
  93. case utils.CYGX_OBJ_ACTIVITY:
  94. item.Action = "查看活动"
  95. case utils.CYGX_OBJ_ARTICLE:
  96. item.Action = "查看报告"
  97. case utils.CYGX_OBJ_YANXUANSPECIAL:
  98. item.Action = "查看专栏"
  99. case "login":
  100. item.Action = "注册"
  101. }
  102. item.UserId = user.UserId
  103. item.Mobile = user.Mobile
  104. item.Email = user.Email
  105. item.CompanyId = user.CompanyId
  106. item.CompanyName = user.CompanyName
  107. item.RealName = user.RealName
  108. item.SellerName, item.SellerId = GetSellerName(user) // 销售姓名
  109. item.Source = source
  110. item.SourceId = sourceId
  111. item.SourceTitle = sourceTitle
  112. item.ShareId = adminDetail.SellerId
  113. item.ShareName = adminDetail.SellerName
  114. item.RegisterPlatform = utils.REGISTER_PLATFORM
  115. item.CreateTime = time.Now()
  116. item.ModifyTime = time.Now()
  117. e = models.AddCygxUserAdminShareHistory(item)
  118. if e != nil {
  119. err = errors.New("AddCygxUserAdminShareHistory, Err: " + e.Error())
  120. return
  121. }
  122. return
  123. }
  124. // 根据分享码获取对应销售的ID以及姓名
  125. func GetAdminByInviteShareCode(inviteShareCode string) (shareName string, shareId int) {
  126. var err error
  127. defer func() {
  128. if err != nil {
  129. fmt.Println(err)
  130. go utils.SendAlarmMsg(fmt.Sprint("记录分享来源失败 GetAdminByInviteShareCode, err:", err.Error()), 2)
  131. }
  132. }()
  133. adminDetail, e := models.GetUserAdminShareCodeByShareCode(inviteShareCode)
  134. if e != nil && e.Error() != utils.ErrNoRow() {
  135. err = errors.New("GetUserAdminShareCodeByShareCode, Err: " + e.Error())
  136. return
  137. }
  138. if adminDetail == nil {
  139. return
  140. }
  141. shareId = adminDetail.SellerId
  142. shareName = adminDetail.SellerName
  143. return
  144. }