|
@@ -47,177 +47,81 @@ func (this *WechatCommonController) PcWechatLogin() {
|
|
|
utils.FileLog.Info("item.AccessToken):%s", item.AccessToken)
|
|
|
|
|
|
|
|
|
- wxUserInfo, err := services.PcWxGetUserInfo(openId, item.AccessToken)
|
|
|
+ wxPcUserInfo, err := services.PcWxGetUserInfo(openId, item.AccessToken)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取用户信息失败"
|
|
|
br.ErrMsg = "获取微信用户信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- if wxUserInfo.Errcode != 0 {
|
|
|
- userInfoJson, _ := json.Marshal(wxUserInfo)
|
|
|
+ if wxPcUserInfo.Errcode != 0 {
|
|
|
+ userInfoJson, _ := json.Marshal(wxPcUserInfo)
|
|
|
br.Msg = "登录失败"
|
|
|
br.ErrMsg = "获取用户信息失败,err:" + string(userInfoJson)
|
|
|
return
|
|
|
}
|
|
|
- var unionid string
|
|
|
- unionid = item.Unionid
|
|
|
- utils.FileLog.Info("item unionid:%s", unionid)
|
|
|
- if unionid == "" {
|
|
|
- unionid = wxUserInfo.Unionid
|
|
|
+ if err != nil{
|
|
|
+ br.Msg = "微信登录失败"
|
|
|
+ br.ErrMsg = "微信登录失败,err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- utils.FileLog.Info("openId:%s", openId)
|
|
|
- utils.FileLog.Info("unionid:%s", unionid)
|
|
|
|
|
|
- firstLogin := 1
|
|
|
- userId := 0
|
|
|
-
|
|
|
- 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()) {
|
|
|
- utils.FileLog.Info("用户不存在,注册")
|
|
|
- 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.RegisterTime = time.Now()
|
|
|
- user.RegisterPlatform = 2
|
|
|
- _, err = models.AddWxUser(user)
|
|
|
- wxUser, err = models.GetWxUserItemByUnionid(wxUserInfo.Unionid)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取用户信息失败"
|
|
|
- br.ErrMsg = "获取微信用户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- userId = wxUser.UserId
|
|
|
- } else {
|
|
|
- utils.FileLog.Info("用户已经存在")
|
|
|
- firstLogin = wxUser.FirstLogin
|
|
|
- userId = wxUser.UserId
|
|
|
- utils.FileLog.Info("用户已经存在,用户id:%d", 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
|
|
|
- }
|
|
|
- }
|
|
|
+ wxUserInfo := &services.WxUserInfo{
|
|
|
+ Openid :wxPcUserInfo.Openid,
|
|
|
+ Nickname :wxPcUserInfo.Nickname,
|
|
|
+ Sex :wxPcUserInfo.Sex,
|
|
|
+ Language :wxPcUserInfo.Language,
|
|
|
+ City :wxPcUserInfo.City,
|
|
|
+ Province :wxPcUserInfo.Province,
|
|
|
+ Country :wxPcUserInfo.Country,
|
|
|
+ Headimgurl :wxPcUserInfo.Headimgurl,
|
|
|
+
|
|
|
+ Unionid :wxPcUserInfo.Unionid,
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
+ token,userId,firstLogin,permission,err := services.WxLogin(code,item,wxUserInfo)
|
|
|
|
|
|
- permission, err := services.CheckUserPermission(userId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "登录失败"
|
|
|
- br.ErrMsg = "登录失败,判断权限失败:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
|
|
|
-
|
|
|
- if wxUserInfo != nil {
|
|
|
- models.ModifyWxUserInfo(wxUserInfo.Nickname, wxUserInfo.Headimgurl, wxUserInfo.City, wxUserInfo.Province, wxUserInfo.Country, wxUserInfo.Sex, userId)
|
|
|
- }
|
|
|
- newUser, _ := models.GetWxUserItemByUserId(userId)
|
|
|
+ newUser, userErr := services.GetWxUserItemByOpenId(wxUserInfo.Openid)
|
|
|
utils.FileLog.Info("获取用户信息:%d", userId)
|
|
|
|
|
|
- var token string
|
|
|
- tokenItem, err := models.GetTokenByUid(userId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "登录失败"
|
|
|
- br.ErrMsg = "登录失败,获取token失败:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if tokenItem == nil || (err != nil && err.Error() == utils.ErrNoRow()) {
|
|
|
- timeUnix := time.Now().Unix()
|
|
|
- timeUnixStr := strconv.FormatInt(timeUnix, 10)
|
|
|
- token = utils.MD5(strconv.Itoa(userId)) + utils.MD5(timeUnixStr)
|
|
|
-
|
|
|
- {
|
|
|
- session := new(models.Session)
|
|
|
- session.UserId = userId
|
|
|
- session.CreatedTime = time.Now()
|
|
|
- session.LastUpdatedTime = time.Now()
|
|
|
- session.ExpireTime = time.Now().AddDate(0, 3, 0)
|
|
|
- session.AccessToken = token
|
|
|
- err = models.AddSession(session)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "登录失败"
|
|
|
- br.ErrMsg = "登录失败,新增用户session信息失败:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- token = tokenItem.AccessToken
|
|
|
- }
|
|
|
+ var email,headimgurl,mobile,companyName, status, endDate, productName string
|
|
|
|
|
|
- cp, err := models.GetCompanyProductsByUserId(userId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "登录失败"
|
|
|
- br.ErrMsg = "登录失败,获取客户信息失败:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- var companyName, status, endDate, productName string
|
|
|
- for _, v := range cp {
|
|
|
- companyName = v.CompanyName
|
|
|
- if v.EndDate == "0000-00-00" {
|
|
|
- v.EndDate = ""
|
|
|
+
|
|
|
+ if newUser != nil && userId > 0{
|
|
|
+ email = newUser.Email
|
|
|
+ headimgurl = newUser.Headimgurl
|
|
|
+ mobile = newUser.Mobile
|
|
|
+
|
|
|
+ cp, err := models.GetCompanyProductsByUserId(userId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "登录失败,获取客户信息失败:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- if status != "" {
|
|
|
- status = status + "/" + v.Status
|
|
|
- if v.EndDate != "" {
|
|
|
- endDate = endDate + "/" + v.Status + ":" + v.EndDate
|
|
|
+ for _, v := range cp {
|
|
|
+ companyName = v.CompanyName
|
|
|
+ if v.EndDate == "0000-00-00" {
|
|
|
+ v.EndDate = ""
|
|
|
}
|
|
|
- productName = productName + "/" + v.ProductName
|
|
|
- } else {
|
|
|
- status = v.Status
|
|
|
- if v.EndDate != "" {
|
|
|
- endDate = v.Status + ":" + v.EndDate
|
|
|
+ if status != "" {
|
|
|
+ status = status + "/" + v.Status
|
|
|
+ if v.EndDate != "" {
|
|
|
+ endDate = endDate + "/" + v.Status + ":" + v.EndDate
|
|
|
+ }
|
|
|
+ productName = productName + "/" + v.ProductName
|
|
|
+ } else {
|
|
|
+ status = v.Status
|
|
|
+ if v.EndDate != "" {
|
|
|
+ endDate = v.Status + ":" + v.EndDate
|
|
|
+ }
|
|
|
+ productName = v.ProductName
|
|
|
}
|
|
|
- productName = v.ProductName
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -237,9 +141,9 @@ func (this *WechatCommonController) PcWechatLogin() {
|
|
|
resp.FirstLogin = firstLogin
|
|
|
resp.Authorization = token
|
|
|
resp.UserPermission = permission
|
|
|
- resp.Email = newUser.Email
|
|
|
- resp.Headimgurl = newUser.Headimgurl
|
|
|
- resp.Mobile = newUser.Mobile
|
|
|
+ resp.Email = email
|
|
|
+ resp.Headimgurl = headimgurl
|
|
|
+ resp.Mobile = mobile
|
|
|
resp.CompanyName = companyName
|
|
|
resp.EndDate = endDate
|
|
|
resp.Status = status
|