61 lines
1.9 KiB
Go
61 lines
1.9 KiB
Go
package interfaces
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
|
|
"code.yun.ink/pkg/smsx/entity"
|
|
"github.com/yuninks/loggerx"
|
|
)
|
|
|
|
type Smsx interface {
|
|
InitSmsx(ctx context.Context, params consts.SmsConfigData,logger loggerx.LoggerInterface) (Smsx, error)
|
|
// Send 发送短信
|
|
// templateId: 短信模板ID
|
|
// phone: 手机号(格式:+86xxx)
|
|
// params: 模板参数
|
|
Send(ctx context.Context, templateId string, phone string, params []SmsSendParam) error
|
|
|
|
// GetTemp 获取所有短信模板
|
|
GetTemp(ctx context.Context) ([]TemplateInfo, error)
|
|
|
|
// TempDel 删除短信模板
|
|
TempDel(ctx context.Context, tempId string) error
|
|
}
|
|
|
|
type SmsSendParam struct {
|
|
Field string `json:"field"` // 字段
|
|
Value string `json:"value"` // 值
|
|
}
|
|
|
|
type TemplateInfo struct {
|
|
TempId string `json:"temp_id"` // 模板ID
|
|
TempName string `json:"temp_name"` // 模板名称
|
|
TempType consts.SmsTemplateType `json:"temp_type"` // 模板类型
|
|
TempRange consts.SmsTemplateRange `json:"temp_range"` // 作用范围
|
|
Content string `json:"content"` // 内容
|
|
Status consts.SmsTemplateStatus `json:"status"` // 状态 (1.通过审核 2.审核中 3.未通过审核 4.取消审核)
|
|
Params []consts.SmsTemplateParam `json:"params"` // 模板参数
|
|
}
|
|
|
|
// 默认的实现
|
|
type DefaultSmsx struct{}
|
|
|
|
func (l *DefaultSmsx) InitSmsx(ctx context.Context, params consts.SmsConfigData,logger loggerx.LoggerInterface) (Smsx, error) {
|
|
return &DefaultSmsx{}, nil
|
|
}
|
|
|
|
func (l *DefaultSmsx) Send(ctx context.Context, templateId string, phone string, params []SmsSendParam) error {
|
|
return errors.New("not implemented")
|
|
}
|
|
|
|
// GetTemp 获取模板
|
|
func (l *DefaultSmsx) GetTemp(ctx context.Context) ([]TemplateInfo, error) {
|
|
return nil, errors.New("not implemented")
|
|
}
|
|
|
|
// TempDel 删除模板
|
|
func (l *DefaultSmsx) TempDel(ctx context.Context, tempId string) error {
|
|
return errors.New("not implemented")
|
|
}
|