|
@@ -2,11 +2,11 @@ package controllers
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
- "fmt"
|
|
|
"hongze/hongze_clpt/models"
|
|
|
"hongze/hongze_clpt/services"
|
|
|
"hongze/hongze_clpt/utils"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -18,6 +18,10 @@ type WechatCommonController struct {
|
|
|
BaseCommonController
|
|
|
}
|
|
|
|
|
|
+type MobileWechatController struct {
|
|
|
+ BaseAuthMobileController
|
|
|
+}
|
|
|
+
|
|
|
// @Title 微信登录小助手接口
|
|
|
// @Description 微信登录小助手接口
|
|
|
// @Param Code query string true "微信唯一编码code"
|
|
@@ -36,43 +40,25 @@ func (this *WechatCommonController) WechatLogin() {
|
|
|
return
|
|
|
}
|
|
|
var token string
|
|
|
- item, err := services.WxGetUserOpenIdByOpenCode(code)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取用户信息失败"
|
|
|
- br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if item.Errcode != 0 {
|
|
|
- br.Msg = "获取用户信息失败"
|
|
|
- br.ErrMsg = "获取access_token 失败 errcode:" + strconv.Itoa(item.Errcode) + " ;errmsg:" + item.Errmsg
|
|
|
- return
|
|
|
- }
|
|
|
- openId := item.Openid
|
|
|
- if openId == "" {
|
|
|
- br.Msg = "获取用户信息失败"
|
|
|
- br.ErrMsg = "获取openid失败,openid:" + item.Openid
|
|
|
- return
|
|
|
- }
|
|
|
- //openId := "oN0jD1QwcA2uRD0BC4mH5zJMo0eg"
|
|
|
resp := new(models.UserDetailByUserLogin)
|
|
|
- accessToken, err := services.GetWxAccessOpenToken()
|
|
|
+ WxAccessToken, err := services.GetWxAccessOpenToken(code)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取用户信息失败"
|
|
|
br.ErrMsg = "获取access_token失败,err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- if accessToken == "" {
|
|
|
+ if WxAccessToken.AccessToken == "" {
|
|
|
br.Msg = "获取用户信息失败"
|
|
|
br.ErrMsg = "access_token 为空,"
|
|
|
return
|
|
|
}
|
|
|
- wxUserInfo, err := services.WxGetUserInfo(openId, accessToken)
|
|
|
+ openId := WxAccessToken.Openid
|
|
|
+ wxUserInfo, err := services.WxGetUserInfo(openId, WxAccessToken.AccessToken)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取用户信息失败"
|
|
|
br.ErrMsg = "获取微信用户信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- fmt.Println(wxUserInfo)
|
|
|
if wxUserInfo.Errcode != 0 {
|
|
|
userInfoJson, _ := json.Marshal(wxUserInfo)
|
|
|
br.Msg = "登录失败"
|
|
@@ -91,7 +77,7 @@ func (this *WechatCommonController) WechatLogin() {
|
|
|
br.ErrMsg = "查询数量失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- items := new(models.CygxUserRecord)
|
|
|
+ items := new(models.UserRecord)
|
|
|
items.OpenId = openId
|
|
|
items.UnionId = unionId
|
|
|
items.NickName = wxUserInfo.Nickname
|
|
@@ -100,9 +86,10 @@ func (this *WechatCommonController) WechatLogin() {
|
|
|
items.City = wxUserInfo.City
|
|
|
items.Country = wxUserInfo.Country
|
|
|
items.Headimgurl = wxUserInfo.Headimgurl
|
|
|
+ items.CreatePlatform = 7
|
|
|
items.CreateTime = time.Now()
|
|
|
if total == 0 {
|
|
|
- _, err = models.AddCygxUserRecord(items)
|
|
|
+ _, err = models.AddUserRecord(items)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取用户信息失败"
|
|
|
br.ErrMsg = "添加openid失败,Err:" + err.Error()
|
|
@@ -111,33 +98,30 @@ func (this *WechatCommonController) WechatLogin() {
|
|
|
}
|
|
|
timeUnix := time.Now().Unix()
|
|
|
timeUnixStr := strconv.FormatInt(timeUnix, 10)
|
|
|
-
|
|
|
user, err := models.GetWxUserItemByUserUnionId(unionId)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取用户信息失败"
|
|
|
br.ErrMsg = "获取本地用户信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- fmt.Println(user)
|
|
|
totalItem, err := models.GetTokenByOpenId(openId)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取用户信息失败"
|
|
|
br.ErrMsg = "查询数量失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- fmt.Println(totalItem)
|
|
|
if totalItem == nil {
|
|
|
token = utils.MD5(unionId) + utils.MD5(timeUnixStr)
|
|
|
itemsSession := new(models.CygxClptSession)
|
|
|
itemsSession.UnionId = unionId
|
|
|
itemsSession.OpenId = openId
|
|
|
- itemsSession.Mobile = user.Mobile
|
|
|
itemsSession.AccessToken = token
|
|
|
itemsSession.CreatedTime = time.Now()
|
|
|
itemsSession.LastUpdatedTime = time.Now()
|
|
|
itemsSession.ExpireTime = time.Now().AddDate(0, 3, 0)
|
|
|
if user != nil {
|
|
|
itemsSession.UserId = user.UserId
|
|
|
+ itemsSession.Mobile = user.Mobile
|
|
|
}
|
|
|
err = models.AddCygxClptSession(itemsSession)
|
|
|
if err != nil {
|
|
@@ -148,7 +132,6 @@ func (this *WechatCommonController) WechatLogin() {
|
|
|
} else {
|
|
|
token = totalItem.AccessToken
|
|
|
}
|
|
|
- fmt.Println(token)
|
|
|
if user == nil {
|
|
|
resp.HasPermission = 3
|
|
|
} else {
|
|
@@ -174,10 +157,90 @@ func (this *WechatCommonController) WechatLogin() {
|
|
|
if resp.Headimgurl == "" {
|
|
|
resp.Headimgurl = utils.DefaultHeadimgurl
|
|
|
}
|
|
|
-
|
|
|
resp.Token = token
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// @Title 微信登录后绑定手机号接口
|
|
|
+// @Description 微信登录后绑定手机号接口
|
|
|
+// @Param request body models.WxBindMobileReq true "type json string"
|
|
|
+// @Success Ret=200 绑定成功
|
|
|
+// @router /bindMobile [post]
|
|
|
+func (this *MobileWechatController) WechatBindMobile() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req models.WxBindMobileReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ authorization := this.Token
|
|
|
+ if authorization == "" {
|
|
|
+ br.Msg = "参数错误"
|
|
|
+ br.ErrMsg = "参数错误,authorization不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ session, err := models.GetSessionByToken(authorization)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "绑定失败"
|
|
|
+ br.ErrMsg = "绑定失败,err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ openid := session.OpenId
|
|
|
+ req.Mobile = strings.Trim(req.Mobile, " ")
|
|
|
+ if req.Mobile == "" {
|
|
|
+ br.Msg = "参数错误"
|
|
|
+ br.ErrMsg = "参数错误,手机号为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mobile := req.Mobile
|
|
|
+ code := req.VCode
|
|
|
+ if code == "" {
|
|
|
+ br.Msg = "参数错误"
|
|
|
+ br.ErrMsg = "Code 为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item, err := models.GetMsgCode(mobile, code)
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
+ br.Msg = "验证码错误,请重新输入"
|
|
|
+ br.ErrMsg = "校验验证码失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ br.Msg = "验证码错误,请重新输入"
|
|
|
+ br.ErrMsg = "校验验证码失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if item == nil {
|
|
|
+ br.Msg = "验证码错误,请重新输入"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ user, err := services.BindWxUser(mobile, "86")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "获取用户信息失败,GetUserDetailByMobile Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = models.BindSessionMobile(mobile, authorization)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "获取用户信息失败,BindSessionMobile Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = models.BindUserRecordByOpenid(user.UserId, openid, mobile)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "绑定成功"
|
|
|
+}
|