|
@@ -3,6 +3,7 @@ package controllers
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
"hongze/hongze_cygx/models"
|
|
|
+ "hongze/hongze_cygx/services"
|
|
|
"hongze/hongze_cygx/utils"
|
|
|
"strconv"
|
|
|
"github.com/medivhzhan/weapp/v2"
|
|
@@ -335,54 +336,155 @@ func (this *WechatController) GetPhoneNumber() {
|
|
|
}
|
|
|
|
|
|
|
|
|
-// @Title 绑定手机号或邮箱
|
|
|
-// @Description 绑定手机号或邮箱
|
|
|
-// @Param request body models.WxGetPhoneNumberReq true "type json string"
|
|
|
-// @Success 200 {object} models.WxGetPhoneNumberResp
|
|
|
-// @router /bind [post]
|
|
|
-func (this *WechatController) Bind() {
|
|
|
+// @Title 获取短信验证码
|
|
|
+// @Description 获取短信验证码接口
|
|
|
+// @Param Mobile query string true "手机号码"
|
|
|
+// @Param AreaNum query string true "地区编码"
|
|
|
+// @Success Ret=200 获取成功
|
|
|
+// @router /getSmsCode [get]
|
|
|
+func (this *WechatController) GetSmsCode() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
|
this.ServeJSON()
|
|
|
}()
|
|
|
- var req models.WxGetPhoneNumberReq
|
|
|
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ mobile := this.GetString("Mobile")
|
|
|
+ if mobile == "" {
|
|
|
+ br.Msg = "请输入手机号"
|
|
|
return
|
|
|
}
|
|
|
- if req.EncryptedData == "" || req.Iv == "" {
|
|
|
- br.Msg = "参数错误"
|
|
|
- return
|
|
|
+ areaNum := this.GetString("AreaNum")
|
|
|
+ msgCode := utils.GetRandDigit(4)
|
|
|
+ var result bool
|
|
|
+ if areaNum == "86" || areaNum == "" || areaNum == "0" {
|
|
|
+ result = services.SendSmsCode(mobile, msgCode)
|
|
|
+ } else {
|
|
|
+ result = services.SendSmsCodeGj(mobile, msgCode, areaNum)
|
|
|
}
|
|
|
- user := this.User
|
|
|
- if user == nil {
|
|
|
- br.Msg = "请登陆"
|
|
|
- br.Ret = 408
|
|
|
+ //发送成功
|
|
|
+ if result {
|
|
|
+ item := new(models.MsgCode)
|
|
|
+ item.OpenId = ""
|
|
|
+ item.Code = msgCode
|
|
|
+ item.Mobile = mobile
|
|
|
+ item.ExpiredIn = time.Now().Add(15 * time.Minute).Unix()
|
|
|
+ item.Enabled = 1
|
|
|
+ item.CreatedTime = time.Now()
|
|
|
+ err := models.AddMsgCode(item)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "发送失败"
|
|
|
+ br.ErrMsg = "发送失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Msg = "发送成功"
|
|
|
+ } else {
|
|
|
+ br.Msg = "发送失败"
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// @Title 获取邮件验证码
|
|
|
+// @Description 获取邮件验证码接口
|
|
|
+// @Param Email query string true "邮箱"
|
|
|
+// @Success Ret=200 获取成功
|
|
|
+// @router /getEmailCode [get]
|
|
|
+func (this *WechatController) GetEmailCode() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ email := this.GetString("Email")
|
|
|
+ if email == "" {
|
|
|
+ br.Msg = "请输入邮箱地址"
|
|
|
return
|
|
|
}
|
|
|
- sessionKey := user.SessionKey
|
|
|
- wxMobile, err := weapp.DecryptMobile(sessionKey, req.EncryptedData, req.Iv)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "解析用户手机号信息失败"
|
|
|
- br.ErrMsg = "解析用户手机号信息失败,Err:" + err.Error()
|
|
|
+ if !utils.ValidateEmailFormatat(email) {
|
|
|
+ br.Msg = "邮箱格式错误,请重新输入"
|
|
|
return
|
|
|
}
|
|
|
- err = models.ModifyUsersMobile(user.UserId, wxMobile.PurePhoneNumber)
|
|
|
+ msgCode := utils.GetRandDigit(4)
|
|
|
+ content := "尊敬的用户:</br>您好,感谢您使用弘则研究,您正在进行邮箱验证,本次请求的验证码为:" + msgCode + "(为了保障您账号的安全性,请在15分钟内完成验证。)</br>弘则研究团队 </br>2019年05月11日"
|
|
|
+ title := "弘则研究登陆验证"
|
|
|
+ //发送邮件
|
|
|
+ result, err := utils.SendEmailByHz(title, content, email)
|
|
|
if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ br.Msg = "发送失败"
|
|
|
+ br.ErrMsg = "发送失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- resp := new(models.WxGetPhoneNumberResp)
|
|
|
- resp.Authorization = this.Token
|
|
|
- resp.PhoneNumber = wxMobile.PhoneNumber
|
|
|
- resp.PurePhoneNumber = wxMobile.PurePhoneNumber
|
|
|
- resp.CountryCode = wxMobile.CountryCode
|
|
|
- br.Msg = "获取成功!"
|
|
|
+ if result {
|
|
|
+ item := new(models.MsgCode)
|
|
|
+ item.OpenId = ""
|
|
|
+ item.Code = msgCode
|
|
|
+ item.Mobile = email
|
|
|
+ item.ExpiredIn = time.Now().Add(15 * time.Minute).Unix()
|
|
|
+ item.Enabled = 1
|
|
|
+ item.CreatedTime = time.Now()
|
|
|
+ err := models.AddMsgCode(item)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "发送失败"
|
|
|
+ br.ErrMsg = "发送失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Msg = "发送成功"
|
|
|
+ } else {
|
|
|
+ br.Msg = "发送失败"
|
|
|
+ }
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
- br.Data = resp
|
|
|
-}
|
|
|
+}
|
|
|
+//
|
|
|
+//// @Title 绑定手机号或邮箱
|
|
|
+//// @Description 绑定手机号或邮箱
|
|
|
+//// @Param request body models.WxGetPhoneNumberReq true "type json string"
|
|
|
+//// @Success 200 {object} models.WxGetPhoneNumberResp
|
|
|
+//// @router /bind [post]
|
|
|
+//func (this *WechatController) Bind() {
|
|
|
+// br := new(models.BaseResponse).Init()
|
|
|
+// defer func() {
|
|
|
+// this.Data["json"] = br
|
|
|
+// this.ServeJSON()
|
|
|
+// }()
|
|
|
+// var req models.WxGetPhoneNumberReq
|
|
|
+// err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+// if err != nil {
|
|
|
+// br.Msg = "参数解析异常!"
|
|
|
+// br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+// return
|
|
|
+// }
|
|
|
+// if req.EncryptedData == "" || req.Iv == "" {
|
|
|
+// br.Msg = "参数错误"
|
|
|
+// return
|
|
|
+// }
|
|
|
+// user := this.User
|
|
|
+// if user == nil {
|
|
|
+// br.Msg = "请登陆"
|
|
|
+// br.Ret = 408
|
|
|
+// return
|
|
|
+// }
|
|
|
+// sessionKey := user.SessionKey
|
|
|
+// wxMobile, err := weapp.DecryptMobile(sessionKey, req.EncryptedData, req.Iv)
|
|
|
+// if err != nil {
|
|
|
+// br.Msg = "解析用户手机号信息失败"
|
|
|
+// br.ErrMsg = "解析用户手机号信息失败,Err:" + err.Error()
|
|
|
+// return
|
|
|
+// }
|
|
|
+// err = models.ModifyUsersMobile(user.UserId, wxMobile.PurePhoneNumber)
|
|
|
+// if err != nil {
|
|
|
+// br.Msg = "获取失败"
|
|
|
+// br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+// return
|
|
|
+// }
|
|
|
+// resp := new(models.WxGetPhoneNumberResp)
|
|
|
+// resp.Authorization = this.Token
|
|
|
+// resp.PhoneNumber = wxMobile.PhoneNumber
|
|
|
+// resp.PurePhoneNumber = wxMobile.PurePhoneNumber
|
|
|
+// resp.CountryCode = wxMobile.CountryCode
|
|
|
+// br.Msg = "获取成功!"
|
|
|
+// br.Ret = 200
|
|
|
+// br.Success = true
|
|
|
+// br.Data = resp
|
|
|
+//}
|