作者 唐旭辉

短信调整

... ... @@ -35,6 +35,7 @@ func NewSmsServe(toPhone string, useTpl string) *SmsServe {
}
}
//Send 短信服务发送动作
func (s *SmsServe) Send() error {
if len(s.ToPhone) == 0 {
return nil
... ... @@ -45,6 +46,7 @@ func (s *SmsServe) Send() error {
return nil
}
// TextContent 短信正文内容设置
func (s *SmsServe) TextContent(v ...interface{}) (string, error) {
tpl, err := getSmsTpl(s.UseTpl)
if err != nil {
... ... @@ -58,6 +60,7 @@ func (s *SmsServe) TextContent(v ...interface{}) (string, error) {
return t, nil
}
//ValidReturn 校验调用远端接口后返回的响应内容
func (s *SmsServe) ValidReturn() (string, error) {
if s.serveReturn == nil {
return "", errors.New("serveReturn is nil")
... ...
... ... @@ -5,7 +5,13 @@ import (
"fmt"
)
var yunPianSmsTpl = map[string]SmsTpl{
type ISmsTpl interface {
ParseTpl(v ...interface{}) (string, error)
String() string
}
//注册短信模板
var smsTpl = map[string]ISmsTpl{
"10001": SmsTpl{"【云片网】您的验证码是%s", 1},
}
... ... @@ -14,11 +20,6 @@ const (
TplFormateErr string = "tpl formate error"
)
type ISmsTpl interface {
ParseTpl(v ...interface{}) (string, error)
String() string
}
type SmsTpl struct {
Formate string
ParamNum int
... ... @@ -28,6 +29,7 @@ var (
_ ISmsTpl = SmsTpl{}
)
//ParseTpl 根据传参填充模板内容
func (t SmsTpl) ParseTpl(v ...interface{}) (string, error) {
if len(v) < t.ParamNum {
return "", errors.New(TplFormateErr)
... ... @@ -35,12 +37,15 @@ func (t SmsTpl) ParseTpl(v ...interface{}) (string, error) {
return fmt.Sprintf(t.String(), v), nil
}
//String 返回模板字符串
func (t SmsTpl) String() string {
return t.Formate
}
//getSmsTpl 获取样板
//TODO 待优化
func getSmsTpl(code string) (ISmsTpl, error) {
if tpl, ok := yunPianSmsTpl[code]; ok {
if tpl, ok := smsTpl[code]; ok {
return tpl, nil
}
return nil, errors.New(TplNotExit)
... ...