xingzai 11 miesięcy temu
rodzic
commit
9d6e7827d2
2 zmienionych plików z 13 dodań i 2 usunięć
  1. 9 1
      controllers/wechat.go
  2. 4 1
      services/user.go

+ 9 - 1
controllers/wechat.go

@@ -22,6 +22,7 @@ type WechatCommonController struct {
 // @Title 微信登录接口
 // @Description 微信登录接口
 // @Param   Code   query   string  true       "微信唯一编码code"
+// @Param   InviteShareCode   query   string  false       "销售账号邀请码"
 // @Success 200 {object} models.WxLoginResp
 // @router /login [get]
 func (this *WechatCommonController) WechatLogin() {
@@ -36,6 +37,7 @@ func (this *WechatCommonController) WechatLogin() {
 		br.ErrMsg = "Code 为空"
 		return
 	}
+	inviteShareCode := this.GetString("InviteShareCode")
 	wxInfo, err := weapp.Login(utils.WxAppId, utils.WxAppSecret, code)
 	if err != nil {
 		br.Msg = "获取用户信息失败"
@@ -54,7 +56,7 @@ func (this *WechatCommonController) WechatLogin() {
 	wxUserInfo.Errcode = wxInfo.ErrCode
 	wxUserInfo.Errmsg = wxInfo.ErrMSG
 	wxUserInfo.SessionKey = wxInfo.SessionKey
-	token, userId, firstLogin, _, err := services.WxLogin(code, wxInfo.OpenID, wxInfo.UnionID, wxUserInfo)
+	token, userId, firstLogin, _, err := services.WxLogin(code, wxInfo.OpenID, wxInfo.UnionID, inviteShareCode, wxUserInfo)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "微信登录失败"
 		br.ErrMsg = "微信登录失败,err:" + err.Error()
@@ -394,6 +396,7 @@ func (this *WechatCommonController) GetSmsCode() {
 // @Title 微信获取用户绑定的手机号
 // @Description 微信获取用户绑定的手机号接口
 // @Param   Code   query   string  true       "微信唯一编码code"
+// @Param   InviteShareCode   query   string  false       "销售账号邀请码"
 // @Success 200 {object} models.WxLoginResp
 // @router /getuserphonenumber [get]
 func (this *WechatController) Getuserphonenumber() {
@@ -415,6 +418,7 @@ func (this *WechatController) Getuserphonenumber() {
 		br.ErrMsg = "Code 为空"
 		return
 	}
+	inviteShareCode := this.GetString("InviteShareCode")
 
 	wxitem, err := services.Getuserphonenumber(code)
 	if err != nil {
@@ -442,6 +446,10 @@ func (this *WechatController) Getuserphonenumber() {
 		return
 	}
 
+	if inviteShareCode != "" { //记录分享来源
+		go services.AddCygxUserAdminShareHistory(user, "login", "", inviteShareCode, 0) //记录分享来源
+	}
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "登录成功"

+ 4 - 1
services/user.go

@@ -274,7 +274,7 @@ func BindWxUser(openid, mobile, email, countryCode string) (wxUser *models.WxUse
 //}
 
 // 微信登录
-func WxLogin(code, openId, unionId string, wxUserInfo *WxUserInfo) (token string, userId, firstLogin, permission int, err error) {
+func WxLogin(code, openId, unionId, inviteShareCode string, wxUserInfo *WxUserInfo) (token string, userId, firstLogin, permission int, err error) {
 	if unionId == "" {
 		unionId = wxUserInfo.Unionid
 	}
@@ -331,6 +331,9 @@ QUERY_WX_USER:
 		//获取用户权限
 		firstLogin = wxUser.FirstLogin
 		userId = wxUser.UserId
+		if inviteShareCode != "" { //记录分享来源
+			go AddCygxUserAdminShareHistory(wxUser, "login", "", inviteShareCode, 0) //记录分享来源
+		}
 		{
 			codeLog := new(models.WxUserCode)
 			codeLog.WxCode = code