|
@@ -1,6 +1,7 @@
|
|
|
package controllers
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"fmt"
|
|
|
"hongze/hongze_api/models"
|
|
|
"hongze/hongze_api/services"
|
|
@@ -42,73 +43,66 @@ func (this *WechatCommonController) WechatLogin() {
|
|
|
return
|
|
|
}
|
|
|
openId := item.Openid
|
|
|
+ accessToken, err := services.WxGetAccessToken()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取用户信息失败"
|
|
|
+ br.ErrMsg = "获取access_token失败,err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //获取用户信息
|
|
|
+ wxUserInfo, err := services.WxGetUserInfo(openId, accessToken)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取用户信息失败"
|
|
|
+ br.ErrMsg = "获取微信用户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if wxUserInfo.Errcode != 0 {
|
|
|
+ userInfoJson, _ := json.Marshal(wxUserInfo)
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "获取用户信息失败,err:" + string(userInfoJson)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
unionid := item.Unionid
|
|
|
+ if unionid == "" {
|
|
|
+ unionid = wxUserInfo.Unionid
|
|
|
+ }
|
|
|
firstLogin := 1
|
|
|
userId := 0
|
|
|
+ utils.FileLog.Info("openId:%s", openId)
|
|
|
+ utils.FileLog.Info("unionid:%s", unionid)
|
|
|
//获取成功
|
|
|
- if openId != "" {
|
|
|
- wxUser, err := models.GetWxUserItemByOpenId(openId)
|
|
|
+ if unionid != "" {
|
|
|
+ wxUser, err := models.GetWxUserItemByUnionid(unionid)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取用户信息失败"
|
|
|
br.ErrMsg = "根据openid获取用户信息失败,Eerr:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
if wxUser == nil || (err != nil && err.Error() == utils.ErrNoRow()) {
|
|
|
- accessToken, err := services.WxGetAccessToken()
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取用户信息失败"
|
|
|
- br.ErrMsg = "获取access_token失败,err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- //获取用户信息
|
|
|
- wxUserInfo, err := services.WxGetUserInfo(openId, accessToken)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取用户信息失败"
|
|
|
- br.ErrMsg = "获取微信用户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- /*if wxUserInfo.Errcode != 0 {
|
|
|
- br.Msg = "获取用户信息失败"
|
|
|
- br.ErrMsg = "获取用户信息失败 errcode:" + item.Errcode + " ;errmsg:" + item.Errmsg
|
|
|
- return
|
|
|
- }*/
|
|
|
- if unionid == "" {
|
|
|
- unionid = wxUserInfo.Unionid
|
|
|
- }
|
|
|
user := new(models.WxUser)
|
|
|
user.OpenId = openId
|
|
|
user.CompanyId = 1
|
|
|
user.CreatedTime = time.Now()
|
|
|
user.UnionId = unionid
|
|
|
user.Unionid = unionid
|
|
|
- user.Subscribe = wxUserInfo.SubscribeScene
|
|
|
- user.SubscribeTime = wxUserInfo.SubscribeTime
|
|
|
user.NickName = wxUserInfo.Nickname
|
|
|
user.Sex = wxUserInfo.Sex
|
|
|
user.City = wxUserInfo.City
|
|
|
user.Province = wxUserInfo.Province
|
|
|
user.Country = wxUserInfo.Country
|
|
|
user.Headimgurl = wxUserInfo.Headimgurl
|
|
|
- user.Remark = wxUserInfo.Remark
|
|
|
user.FirstLogin = 1
|
|
|
user.Enabled = 1
|
|
|
user.RegisterPlatform=1
|
|
|
user.RegisterTime = time.Now()
|
|
|
_, err = models.AddWxUser(user)
|
|
|
- if wxUserInfo.Unionid != "" {
|
|
|
- wxUser, err = models.GetWxUserItemByUnionid(wxUserInfo.Unionid)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取用户信息失败"
|
|
|
- br.ErrMsg = "获取微信用户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- } else {
|
|
|
- wxUser, err = models.GetWxUserItemByOpenId(openId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取用户信息失败"
|
|
|
- br.ErrMsg = "获取微信用户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
+
|
|
|
+ wxUser, err = models.GetWxUserItemByUnionid(unionid)
|
|
|
+ if err != nil{
|
|
|
+ br.Msg = "获取用户信息失败"
|
|
|
+ br.ErrMsg = "unionid登录,获取微信用户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
userId = wxUser.UserId
|
|
|
} else {
|
|
@@ -116,6 +110,43 @@ func (this *WechatCommonController) WechatLogin() {
|
|
|
userId = wxUser.UserId
|
|
|
}
|
|
|
} else {
|
|
|
+ if openId!="" {
|
|
|
+ wxUser, err := models.GetWxUserItemByOpenId(openId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取用户信息失败"
|
|
|
+ br.ErrMsg = "获取微信用户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if wxUser == nil || (err != nil && err.Error() == utils.ErrNoRow()) {
|
|
|
+ user := new(models.WxUser)
|
|
|
+ user.OpenId = openId
|
|
|
+ user.CompanyId = 1
|
|
|
+ user.CreatedTime = time.Now()
|
|
|
+ user.UnionId = unionid
|
|
|
+ user.Unionid = unionid
|
|
|
+ user.NickName = wxUserInfo.Nickname
|
|
|
+ user.Sex = wxUserInfo.Sex
|
|
|
+ user.City = wxUserInfo.City
|
|
|
+ user.Province = wxUserInfo.Province
|
|
|
+ user.Country = wxUserInfo.Country
|
|
|
+ user.Headimgurl = wxUserInfo.Headimgurl
|
|
|
+ user.FirstLogin = 1
|
|
|
+ user.Enabled = 1
|
|
|
+ user.RegisterPlatform=1
|
|
|
+ user.RegisterTime = time.Now()
|
|
|
+ _, err = models.AddWxUser(user)
|
|
|
+
|
|
|
+ wxUser, err = models.GetWxUserItemByOpenId(openId)
|
|
|
+ if err != nil{
|
|
|
+ br.Msg = "获取用户信息失败"
|
|
|
+ br.ErrMsg = "unionid登录,获取微信用户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ userId = wxUser.UserId
|
|
|
+ }else{
|
|
|
+ userId = wxUser.UserId
|
|
|
+ }
|
|
|
+ }
|
|
|
br.Msg = "获取用户信息失败"
|
|
|
br.ErrMsg = "获取openid失败,openid:" + item.Openid
|
|
|
return
|
|
@@ -214,8 +245,4 @@ func (this *WechatController) GetWxSign() {
|
|
|
br.Success = true
|
|
|
br.Msg = "获取签名成功"
|
|
|
br.Data = resp
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
-$app->bag('api/wechat/check', "WechatController@check");
|
|
|
-*/
|
|
|
+}
|