|
@@ -24,12 +24,120 @@ type WsDataExport struct {
|
|
|
paySuccessPage xweb.Mapper `xweb:"/jyapp/front/wx_dataExport/paySuccessPage"` //微信数据导出-支付成功页面
|
|
|
getPayParm xweb.Mapper `xweb:"/jyapp/front/wx_dataExport/getPayParm"` //微信数据导出-获取微信支付参数
|
|
|
toCreateOrderPage xweb.Mapper `xweb:"/jyapp/front/wx_dataExport/toCreateOrderPage"` //微信数据导出-订单微信支付
|
|
|
+ sendMailVerify xweb.Mapper `xweb:"/jyapp/front/dataExport/sendMailVerify"` //发送邮箱验证码
|
|
|
+ checkMailVerify xweb.Mapper `xweb:"/jyapp/front/dataExport/checkMailVerify"` //验证邮箱验证码
|
|
|
+ checkPhoneVerify xweb.Mapper `xweb:"/jyapp/front/dataExport/checkPhoneVerify"` //验证手机号
|
|
|
}
|
|
|
|
|
|
func init() {
|
|
|
xweb.AddAction(&WsDataExport{})
|
|
|
}
|
|
|
|
|
|
+//发送邮件
|
|
|
+func (w *WsDataExport) SendMailVerify() {
|
|
|
+ email := w.GetString("email")
|
|
|
+ if isEmail(email) {
|
|
|
+ var email_used = true
|
|
|
+ if email != w.GetSession("DataExportVerifyEmail") {
|
|
|
+ w.DelSession("CreatEVerifyTime")
|
|
|
+ // openid := util.ObjToString(w.GetSession("s_m_openid"))
|
|
|
+ userId := util.ObjToString(w.GetSession("userId"))
|
|
|
+ emails := public.Mysql.FindOne("dataexport_order", map[string]interface{}{
|
|
|
+ "user_mail": email,
|
|
|
+ "user_id": userId,
|
|
|
+ }, "user_mail", "")
|
|
|
+ if emails != nil && util.ObjToString((*emails)["user_mail"]) != "" {
|
|
|
+ email_used = false
|
|
|
+ w.T["success"] = true
|
|
|
+ w.T["errCode"] = 4
|
|
|
+ w.T["errMsg"] = "此邮箱已被验证"
|
|
|
+ w.SetSession("DataExportVerifyEmail_val", email)
|
|
|
+ w.SetSession("EMVerifySucess", true)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if email_used {
|
|
|
+ lastSendDEVerify := util.Int64All(w.GetSession("CreatEVerifyTime"))
|
|
|
+ timeSpaceing := lastSendDEVerify - time.Now().Unix() + 60*5
|
|
|
+ incurKey := fmt.Sprintf("SendEmail_%s_%d", w.GetSession("userId"), time.Now().Day())
|
|
|
+ //log.Println(incurKey)
|
|
|
+ if lastSendDEVerify == 0 || timeSpaceing < 0 {
|
|
|
+ //每日限制10次
|
|
|
+ times := util.IntAll(redis.Get("other", incurKey))
|
|
|
+ if times < 10 {
|
|
|
+ if times == 0 {
|
|
|
+ redis.Put("other", incurKey, 1, 24*60*60)
|
|
|
+ } else {
|
|
|
+ redis.Incr("other", incurKey)
|
|
|
+ }
|
|
|
+ //生成随机数
|
|
|
+ verifyStr := strings.ToUpper(util.GetComplexRandom(6, 3, 3))
|
|
|
+ w.SetSession("EMVerifySucess", false)
|
|
|
+ w.SetSession("DataExportVerifyEmail", email)
|
|
|
+ w.SetSession("DataExportVerify", verifyStr)
|
|
|
+ w.SetSession("CreatEVerifyTime", time.Now().Unix())
|
|
|
+ log.Println("====================", verifyStr, "====================", w.GetSession("DataExportVerify"))
|
|
|
+ //发送邮箱验证码
|
|
|
+ go public.SendMailIdentCode(email, verifyStr, config.GmailAuth)
|
|
|
+ w.T["success"] = true
|
|
|
+ } else {
|
|
|
+ w.T["success"] = false
|
|
|
+ w.T["errCode"] = 3
|
|
|
+ w.T["time"] = timeSpaceing
|
|
|
+ w.T["errMsg"] = "验证码发送次数已达到今日上限"
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ w.T["success"] = false
|
|
|
+ w.T["errCode"] = 2
|
|
|
+ w.T["time"] = timeSpaceing
|
|
|
+ w.T["errMsg"] = "已发送,5分钟后再尝试"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ w.T["success"] = false
|
|
|
+ w.T["errCode"] = 1
|
|
|
+ w.T["errMsg"] = "邮箱格式不正确"
|
|
|
+ }
|
|
|
+ w.ServeJson(&w.T)
|
|
|
+}
|
|
|
+
|
|
|
+//验证手机号
|
|
|
+func (w *WsDataExport) CheckPhoneVerify() {
|
|
|
+ phone := w.GetString("phone")
|
|
|
+ verityResult := false
|
|
|
+ if isPhone(phone) {
|
|
|
+ verityResult = true
|
|
|
+ w.SetSession("DataExportVerifyPhone", phone)
|
|
|
+ }
|
|
|
+ w.T["success"] = verityResult
|
|
|
+ w.ServeJson(&w.T)
|
|
|
+}
|
|
|
+
|
|
|
+//验证邮箱
|
|
|
+func (w *WsDataExport) CheckMailVerify() {
|
|
|
+ email := w.GetString("email")
|
|
|
+ emailVerity := w.GetString("emailVerity")
|
|
|
+
|
|
|
+ DataExportEmail := w.GetSession("DataExportVerifyEmail")
|
|
|
+ DataExportVerify := w.GetSession("DataExportVerify")
|
|
|
+ log.Println(email, emailVerity, "---", DataExportEmail, DataExportVerify)
|
|
|
+ verityResult := false
|
|
|
+ if emailVerity != "" && emailVerity == DataExportVerify && email != "" && email == DataExportEmail {
|
|
|
+ verityResult = true
|
|
|
+ w.DelSession("DataExportVerify")
|
|
|
+ w.DelSession("CreatEVerifyTime")
|
|
|
+ w.SetSession("EMVerifySucess", true)
|
|
|
+ w.SetSession("DataExportVerifyEmail_val", DataExportEmail)
|
|
|
+ }
|
|
|
+ w.T["success"] = verityResult
|
|
|
+ w.ServeJson(&w.T)
|
|
|
+}
|
|
|
+
|
|
|
+func isEmail(value string) bool {
|
|
|
+ var emailPattern = regexp.MustCompile("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$")
|
|
|
+ return emailPattern.MatchString(value)
|
|
|
+}
|
|
|
+
|
|
|
//
|
|
|
func (w *WsDataExport) GetPayParm() error {
|
|
|
defer util.Catch()
|
|
@@ -133,7 +241,7 @@ func (w *WsDataExport) ToPreview(_id string) error {
|
|
|
func (w *WsDataExport) ToCreateOrderPage() error {
|
|
|
defer util.Catch()
|
|
|
id := util.SE.Decode4Hex(w.GetString("id"))
|
|
|
- openid := util.ObjToString(w.GetSession("s_m_openid"))
|
|
|
+ s_phone := util.ObjToString(w.GetSession("s_phone"))
|
|
|
userId := util.ObjToString(w.GetSession("userId"))
|
|
|
if userId == "" {
|
|
|
return errors.New("未登录")
|
|
@@ -146,11 +254,6 @@ func (w *WsDataExport) ToCreateOrderPage() error {
|
|
|
w.Render("/dataExport/404.html", &w.T)
|
|
|
return nil
|
|
|
}
|
|
|
- //订单数据存入session中
|
|
|
- w.SetSession("dataexport_waitcreateorder", map[string]interface{}{
|
|
|
- "id": id, //用户的筛选条件mongodb中的id string
|
|
|
- "data_count": msgCount, //匹配到的数据总数 int
|
|
|
- })
|
|
|
//邮箱验证
|
|
|
// w.DelSession("DataExportVerifyEmail_val")
|
|
|
// w.DelSession("DataExportVerifyPhone_val")
|
|
@@ -185,9 +288,10 @@ func (w *WsDataExport) ToCreateOrderPage() error {
|
|
|
if phone != nil && phone != "" {
|
|
|
w.T["phone"] = phone
|
|
|
} else {
|
|
|
- //剑鱼助手手机号登录
|
|
|
- if isPhone(openid) {
|
|
|
- phone = openid
|
|
|
+ //app手机号登录
|
|
|
+ log.Println("s_phone:", s_phone)
|
|
|
+ if isPhone(s_phone) {
|
|
|
+ phone = s_phone
|
|
|
} else {
|
|
|
phone = resPhone
|
|
|
}
|