|
@@ -3,10 +3,13 @@ package action
|
|
|
import (
|
|
|
. "api"
|
|
|
"encoding/json"
|
|
|
+ "fmt"
|
|
|
+ "log"
|
|
|
qu "qfw/util"
|
|
|
+ "qfw/util/jy"
|
|
|
"regexp"
|
|
|
. "service/config"
|
|
|
-
|
|
|
+ . "service/util"
|
|
|
"time"
|
|
|
|
|
|
"github.com/go-xweb/xweb"
|
|
@@ -17,6 +20,8 @@ type Info struct {
|
|
|
collectInfo xweb.Mapper `xweb:"/collectInfo"` //收集信息
|
|
|
echoInfo xweb.Mapper `xweb:"/echoInfo"` //回显信息
|
|
|
retainedCapital xweb.Mapper `xweb:"/retainedCapital"` //是否需要留资
|
|
|
+ sendMsg xweb.Mapper `xweb:"/sendMsg"` //发送验证码
|
|
|
+ checkCode xweb.Mapper `xweb:"/checkCode"` //验证验证码
|
|
|
}
|
|
|
|
|
|
var phoneReg = regexp.MustCompile("^[1][0-9][0-9]{9}$")
|
|
@@ -42,9 +47,31 @@ func (i *Info) CollectInfo() {
|
|
|
if infoMap["name"] == nil || infoMap["phone"] == nil || infoMap["source"] == nil {
|
|
|
return Result{Data: nil, Error_msg: Error_msg_1002}
|
|
|
}
|
|
|
+ //|| infoMap["agree"] == nil
|
|
|
//验证
|
|
|
- phone := qu.ObjToString(infoMap["phone"]) //手机号
|
|
|
- mail := qu.ObjToString(infoMap["mail"]) //邮箱
|
|
|
+ phone := qu.ObjToString(infoMap["phone"]) //手机号
|
|
|
+ mail := qu.ObjToString(infoMap["mail"]) //邮箱
|
|
|
+ source := qu.ObjToString(infoMap["source"]) //来源
|
|
|
+ //手机号验证码验证
|
|
|
+ if Sysconfig.Source[source].CheckCode {
|
|
|
+ code := qu.ObjToString(infoMap["code"]) //手机号验证码
|
|
|
+ var checkCodeBool = false
|
|
|
+ //非绑定手机号需要验证
|
|
|
+ log.Println(phone, "-------", i.Session().Get("sales_MyPhone"))
|
|
|
+ if i.Session().Get("sales_MyPhone") != nil && phone == i.Session().Get("sales_MyPhone").(string) {
|
|
|
+ checkCodeBool = true
|
|
|
+ }
|
|
|
+ //验证短信验证码
|
|
|
+ if !checkCodeBool && i.Session().Get("sales_phoneNum") != nil && i.Session().Get("sales_MsgCode") != nil {
|
|
|
+ if phone == i.Session().Get("sales_phoneNum").(string) && code == i.Session().Get("sales_MsgCode").(string) {
|
|
|
+ checkCodeBool = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if !checkCodeBool {
|
|
|
+ return Result{Error_code: -1, Error_msg: "手机号验证码错误", Data: false}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.Println("++++++++++++++++++++111233333+++++++++++++++++++++++++++", Sysconfig.Source[source].CheckCode)
|
|
|
infoMap["createtime"] = time.Now().Unix()
|
|
|
//获取用户id
|
|
|
userid, _ := i.GetSession("userId").(string)
|
|
@@ -64,6 +91,12 @@ func (i *Info) CollectInfo() {
|
|
|
"$set": infoMap,
|
|
|
}, true, false) {
|
|
|
Whether.AfterRetainedCapital(userid)
|
|
|
+ go i.ClearCheckCodeSess() //清除手机验证码缓存
|
|
|
+ //是否发送样例数据到邮件
|
|
|
+ log.Println("ismail:", Sysconfig.Source[source].Ismail)
|
|
|
+ if Sysconfig.Source[source].Ismail {
|
|
|
+ go SendStructedDataByEmail(mail, GmailAuth)
|
|
|
+ }
|
|
|
return Result{Error_code: 1, Error_msg: "", Data: true}
|
|
|
}
|
|
|
return Result{Error_code: -1, Error_msg: "保存失败", Data: false}
|
|
@@ -78,7 +111,11 @@ func (i *Info) EchoInfo() {
|
|
|
data := map[string]interface{}{}
|
|
|
if userinfo, ok := MQFW.FindById("user", userid, `{"s_phone":1,"s_m_phone":1,"s_myemail":1,"s_company":1,"o_jy":1,"o_vipjy":1}`); userinfo != nil && ok && len(*userinfo) > 0 {
|
|
|
s_phone := qu.ObjToString((*userinfo)["s_phone"])
|
|
|
- data["phone"] = qu.If(s_phone == "", qu.ObjToString((*userinfo)["s_m_phone"]), s_phone)
|
|
|
+ phone := qu.If(s_phone == "", qu.ObjToString((*userinfo)["s_m_phone"]), s_phone)
|
|
|
+ if phone != "" {
|
|
|
+ i.SetSession("sales_MyPhone", phone)
|
|
|
+ }
|
|
|
+ data["phone"] = phone
|
|
|
mail := qu.ObjToString((*userinfo)["s_myemail"])
|
|
|
//获取邮箱 1.超级订阅邮箱、订阅邮箱、数据导出填写邮箱
|
|
|
if mail == "" {
|
|
@@ -109,7 +146,11 @@ func (i *Info) EchoInfo() {
|
|
|
delete((*rdata)[0], "createtime")
|
|
|
delete((*rdata)[0], "client")
|
|
|
data = (*rdata)[0]
|
|
|
+ if data["phone"] != nil && qu.ObjToString(data["phone"]) != "" {
|
|
|
+ i.SetSession("sales_MyPhone", qu.ObjToString(data["phone"]))
|
|
|
+ }
|
|
|
}
|
|
|
+ log.Println("--11111---", i.Session().Get("sales_MyPhone"))
|
|
|
if len(data) > 0 {
|
|
|
return Result{Error_code: 1, Error_msg: "", Data: data}
|
|
|
}
|
|
@@ -134,3 +175,64 @@ func (i *Info) RetainedCapital() {
|
|
|
"fource": Sysconfig.Source[source] != nil && Sysconfig.Source[source].Force,
|
|
|
}})
|
|
|
}
|
|
|
+
|
|
|
+//发送验证码
|
|
|
+func (i *Info) SendMsg() error {
|
|
|
+ defer qu.Catch()
|
|
|
+ userid := qu.ObjToString(i.GetSession("userId"))
|
|
|
+ var returnMap = map[string]interface{}{}
|
|
|
+ returnMap["success"] = false
|
|
|
+ if userid != "" {
|
|
|
+ session := i.Session()
|
|
|
+ phoneNum := i.GetString("phoneNum")
|
|
|
+ lastSendMsgTime := qu.Int64All(session.Get("sales_lastSendMsgTime"))
|
|
|
+ //当前时间-上次发送时间>60s
|
|
|
+ if time.Now().Unix()-lastSendMsgTime > 60 {
|
|
|
+ if phoneReg.MatchString(phoneNum) {
|
|
|
+ returnMap["success"] = true
|
|
|
+ //生成随机验证码
|
|
|
+ MsgCode := qu.GetRandom(6)
|
|
|
+ session.Set("sales_MsgCode", MsgCode)
|
|
|
+ session.Set("sales_phoneNum", phoneNum)
|
|
|
+ session.Set("sales_lastSendMsgTime", time.Now().Unix())
|
|
|
+ param := make(map[string]string)
|
|
|
+ param["code"] = MsgCode
|
|
|
+ go func() {
|
|
|
+ jy.SendSMS("2828060", phoneNum, param)
|
|
|
+ }()
|
|
|
+ fmt.Println("手机号码", phoneNum, "验证码", MsgCode)
|
|
|
+ } else {
|
|
|
+ returnMap["msg"] = "phoneErr"
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ returnMap["msg"] = "sended"
|
|
|
+ returnMap["second"] = 60 - (time.Now().Unix() - lastSendMsgTime)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ returnMap["msg"] = "outTime"
|
|
|
+ }
|
|
|
+ i.ServeJson(Result{Data: returnMap})
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+//手机验证码验证
|
|
|
+func (i *Info) CheckCode() error {
|
|
|
+ defer qu.Catch()
|
|
|
+ var returnMap = map[string]interface{}{}
|
|
|
+ returnMap["flag"] = false
|
|
|
+ code := i.GetString("code")
|
|
|
+ phoneNum := i.GetString("phoneNum")
|
|
|
+ if (i.Session().Get("sales_MyPhone") != nil && phoneNum == i.Session().Get("sales_MyPhone").(string)) || (phoneNum == i.Session().Get("sales_phoneNum").(string) && code == i.Session().Get("sales_MsgCode").(string)) {
|
|
|
+ returnMap["flag"] = true
|
|
|
+ }
|
|
|
+ i.ServeJson(Result{Data: returnMap})
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+//清除手机验证码信息
|
|
|
+func (i *Info) ClearCheckCodeSess() {
|
|
|
+ i.DelSession("sales_MyPhone")
|
|
|
+ i.DelSession("sales_phoneNum")
|
|
|
+ i.DelSession("sales_MsgCode")
|
|
|
+ i.DelSession("sales_lastSendMsgTime")
|
|
|
+}
|