user_admin_share.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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 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()), 2)
  20. }
  21. }()
  22. adminDetail, e := models.GetSysAdminByMobile(mobile)
  23. if e != nil {
  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. //3秒之内多次请求,不重复记录
  59. key := "CYGX_" + source + "_" + strconv.Itoa(sourceId) + "_" + strconv.Itoa(user.UserId)
  60. if utils.Rc.IsExist(key) {
  61. return
  62. }
  63. utils.Rc.Put(key, 1, 3*time.Second)
  64. var err error
  65. defer func() {
  66. if err != nil {
  67. fmt.Println(err)
  68. go utils.SendAlarmMsg(fmt.Sprint("记录分享来源失败 AddCygxUserAdminShareHistory, err:", err.Error()), 2)
  69. }
  70. }()
  71. adminDetail, e := models.GetUserAdminShareCodeByShareCode(inviteShareCode)
  72. if e != nil {
  73. err = errors.New("GetSysAdminByMobile, Err: " + e.Error())
  74. return
  75. }
  76. if adminDetail == nil {
  77. return
  78. }
  79. item := new(models.CygxUserAdminShareHistory)
  80. switch source {
  81. case utils.CYGX_OBJ_ACTIVITY:
  82. item.Action = "查看活动"
  83. case utils.CYGX_OBJ_ARTICLE:
  84. item.Action = "查看报告"
  85. case "login":
  86. item.Action = "注册"
  87. }
  88. item.UserId = user.UserId
  89. item.Mobile = user.Mobile
  90. item.Email = user.Email
  91. item.CompanyId = user.CompanyId
  92. item.CompanyName = user.CompanyName
  93. item.RealName = user.RealName
  94. item.SellerName, item.SellerId = GetSellerName(user) // 销售姓名
  95. item.Source = source
  96. item.SourceId = sourceId
  97. item.SourceTitle = sourceTitle
  98. item.ShareId = adminDetail.SellerId
  99. item.ShareName = adminDetail.SellerName
  100. item.RegisterPlatform = utils.REGISTER_PLATFORM
  101. item.CreateTime = time.Now()
  102. item.ModifyTime = time.Now()
  103. e = models.AddCygxUserAdminShareHistory(item)
  104. if e != nil {
  105. err = errors.New("AddCygxUserAdminShareHistory, Err: " + e.Error())
  106. return
  107. }
  108. return
  109. }