|
@@ -0,0 +1,114 @@
|
|
|
+package services
|
|
|
+
|
|
|
+import (
|
|
|
+ "errors"
|
|
|
+ "fmt"
|
|
|
+ "hongze/hongze_mfyx/models"
|
|
|
+ "hongze/hongze_mfyx/utils"
|
|
|
+ "strconv"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+// 判断用户是否属于销售,并且获取对应加密的分享码
|
|
|
+func GetInviteShareCode(mobile string) (inviteShareCode string) {
|
|
|
+ if mobile == "" {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var err error
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("判断用户是否属于销售,并且获取对应加密的分享码失败 GetInviteShareCode, err:", err.Error()), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ adminDetail, e := models.GetSysAdminByMobile(mobile)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetSysAdminByMobile, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if adminDetail == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ inviteShareCode = utils.MD5(strconv.Itoa(adminDetail.AdminId)) //MD5 对ID进行加密
|
|
|
+ total, e := models.GetCygxUserAdminShareCodeByShareCodeCount(inviteShareCode)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxUserAdminShareCodeByShareCodeCount, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //如果不存在就新增一个
|
|
|
+ if total == 0 {
|
|
|
+ item := new(models.CygxUserAdminShareCode)
|
|
|
+ item.SellerName = adminDetail.RealName
|
|
|
+ item.SellerId = adminDetail.AdminId
|
|
|
+ item.Mobile = adminDetail.Mobile
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ item.ShareCode = inviteShareCode
|
|
|
+ e = models.AddCygxUserAdminShareCode(item)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddCygxUserAdminShareCode, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 记录分享来源
|
|
|
+func AddCygxUserAdminShareHistory(user *models.WxUserItem, source, sourceTitle, inviteShareCode string, sourceId int) {
|
|
|
+ if inviteShareCode == "" {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //3秒之内多次请求,不重复记录
|
|
|
+ key := "CYGX_" + source + "_" + strconv.Itoa(sourceId) + "_" + strconv.Itoa(user.UserId)
|
|
|
+ if utils.Rc.IsExist(key) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ utils.Rc.Put(key, 1, 3*time.Second)
|
|
|
+ var err error
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("记录分享来源失败 AddCygxUserAdminShareHistory, err:", err.Error()), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ adminDetail, e := models.GetUserAdminShareCodeByShareCode(inviteShareCode)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetSysAdminByMobile, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if adminDetail == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := new(models.CygxUserAdminShareHistory)
|
|
|
+ switch source {
|
|
|
+ case utils.CYGX_OBJ_ACTIVITY:
|
|
|
+ item.Action = "查看活动"
|
|
|
+ case utils.CYGX_OBJ_ARTICLE:
|
|
|
+ item.Action = "查看报告"
|
|
|
+ case "login":
|
|
|
+ item.Action = "注册"
|
|
|
+ }
|
|
|
+ item.UserId = user.UserId
|
|
|
+ item.Mobile = user.Mobile
|
|
|
+ item.Email = user.Email
|
|
|
+ item.CompanyId = user.CompanyId
|
|
|
+ item.CompanyName = user.CompanyName
|
|
|
+ item.RealName = user.RealName
|
|
|
+ item.SellerName, item.SellerId = GetSellerName(user) // 销售姓名
|
|
|
+ item.Source = source
|
|
|
+ item.SourceId = sourceId
|
|
|
+ item.SourceTitle = sourceTitle
|
|
|
+ item.ShareId = adminDetail.SellerId
|
|
|
+ item.ShareName = adminDetail.SellerName
|
|
|
+ item.RegisterPlatform = utils.REGISTER_PLATFORM
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+
|
|
|
+ e = models.AddCygxUserAdminShareHistory(item)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddCygxUserAdminShareHistory, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|