rdluck 4 роки тому
батько
коміт
ad2d8ce850
2 змінених файлів з 86 додано та 29 видалено
  1. 57 26
      controllers/user.go
  2. 29 3
      utils/email.go

+ 57 - 26
controllers/user.go

@@ -126,36 +126,67 @@ func (this *UserCommonController) CheckSmsCode() {
 		br.ErrMsg = "请输入验证码"
 		return
 	}
-	//item,err:=models.GetMsgCode(req.Mobile,req.SmsCode)
-	//if err != nil {
-	//
-	//}
+	item, err := models.GetMsgCode(req.Mobile, req.SmsCode)
+	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
+	}
 	br.Ret = 200
 	br.Success = true
+	br.Msg = "验证码正确"
 }
 
-/*
-//校验短信验证码
-    function checkSmsCode()
-    {
-        $request_data = $this->request->all();
-        $mobile = ExpressUtil::checkStringArrayValue('mobile',$request_data);
-        if(!preg_match("/^1\d{10}$/",$mobile)){
-            return response()->json(['code'=>'2','msg'=>'请输入正确的手机号(1开头的11位数字)']);
-        }
-        $smsCode = ExpressUtil::checkStringArrayValue('sms_code',$request_data);
-        //获取短信发送记录
-        $result = MsgCodeModel::getMsgCode("",$mobile,$smsCode);
-        if(empty($result)){
-            return response()->json(['code'=>'1','msg'=>'验证码错误']);
-        }else{
-            return response()->json(['code'=>'0','msg'=>'验证码正确']);
-        }
-    }
-*/
+// @Title 获取邮件验证码
+// @Description 获取邮件验证码接口
+// @Param   Email   query   string  true       "手机号码"
+// @Success 200 {object} models.UserDetail
+// @router /getEmailCode [get]
+func (this *UserCommonController) GetEmailCode() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	email := this.GetString("Email")
+	if email != "" {
+		br.Msg = "请输入邮箱地址"
+		return
+	}
+	if !utils.ValidateEmailFormatat(email) {
+		br.Msg = "邮箱格式错误,请重新输入"
+		return
+	}
+	msgCode := utils.GetRandString(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()
+		return
+	}
+	if result {
+		br.Msg = "发送成功"
+	} else {
+		br.Msg = "发送失败"
+	}
+	br.Ret = 200
+	br.Success = true
+}
 
 /*
-$app->post('api/user/checkSmsCode',"UserController@checkSmsCode");//校验短信验证码
 $app->get('api/user/getEmailCode',"UserController@getEmailCode");//获取邮件验证码
 $app->post('api/user/checkEmailCode',"UserController@checkEmailCode");//校验邮件验证码
 $app->post('api/user/login',"UserController@login");//登录
@@ -174,7 +205,7 @@ func (this *UserController) SmallLimit() {
 		this.ServeJSON()
 	}()
 	user := this.User
-	if user != nil {
+	if user == nil {
 		br.Msg = "请登录"
 		br.ErrMsg = "请登录"
 		br.Ret = 408
@@ -214,4 +245,4 @@ func (this *UserController) SmallLimit() {
 //	fmt.Println(err)
 //	fmt.Println(userPermission)
 //	fmt.Println("end")
-//}
+//}

+ 29 - 3
utils/email.go

@@ -6,7 +6,7 @@ import (
 )
 
 //发送邮件
-func SendEmail(title, content string, touser string)bool {
+func SendEmail(title, content string, touser string) bool {
 	var arr []string
 	sub := strings.Index(touser, ";")
 	if sub >= 0 {
@@ -14,7 +14,7 @@ func SendEmail(title, content string, touser string)bool {
 		for _, v := range spArr {
 			arr = append(arr, v)
 		}
-	}else{
+	} else {
 		arr = append(arr, touser)
 	}
 	m := gomail.NewMessage()
@@ -27,4 +27,30 @@ func SendEmail(title, content string, touser string)bool {
 		return false
 	}
 	return true
-}
+}
+
+//发送邮件
+func SendEmailByHz(title, content string, touser string) (result bool, err error) {
+	var arr []string
+	sub := strings.Index(touser, ";")
+	if sub >= 0 {
+		spArr := strings.Split(touser, ";")
+		for _, v := range spArr {
+			arr = append(arr, v)
+		}
+	} else {
+		arr = append(arr, touser)
+	}
+	m := gomail.NewMessage()
+	m.SetHeader("From", "public@hzinsights.com")
+	m.SetHeader("To", arr...)
+	m.SetHeader("Subject", title)
+	m.SetBody("text/html", content)
+	d := gomail.NewDialer("smtp.mxhichina.com", 465, "public@hzinsights.com", "Hzinsights2018")
+	if err := d.DialAndSend(m); err != nil {
+		result = false
+		return result, err
+	}
+	result = true
+	return
+}