package models import ( "github.com/jinzhu/gorm" "time" ) type SendSmsReq struct { Mobile string `json:"mobile"` Content string `json:"content"` } type ValidSms struct { SmsId int64 `json:"sms_id"` Mobile string `json:"mobile"` ValidCode string `json:"valid_code"` SmsType int `json:"sms_type"` CreateAt int64 `json:"create_at"` } type SmsUser struct { isDelete int64 `json:"is_delete"` MobilePhone string `json:"mobile_phone"` CreateAt int64 `json:"create_at"` } type RemindSms struct { ID int64 `gorm:"column:id"` Mobile string SmsType int Content string IpAddr string } /// 定义腾讯短信模板结构 type Tel struct { Mobile string `json:"mobile"` // 手机号码 NationCode string `json:"nationcode"` // 国家码 } type SmsTempl struct { Ext string `json:"ext"` // 用户的 session 内容,腾讯 server 回包中会原样返回,可选字段,不需要就填空 Extend string `json:"extend"` // 短信码号扩展号,格式为纯数字串,其他格式无效 Params []string `json:"params"` // 模板参数,若模板没有参数,请提供为空数组 Sig string `json:"sig"` // App凭证,sig字段根据公式sha256(appkey=$appkey&random=$random&time=$time&mobile=$mobile)生成 Sign string `json:"sign"` // 短信签名,如果使用默认签名,该字段可缺省 Tel Tel `json:"tel"` // 电话号码 Time int64 `json:"time"` // 请求发起时间,UNIX 时间戳(单位:秒),如果和系统时间相差超过10分钟则会返回失败 TplID int64 `json:"tpl_id"` // 模板ID,在控制台审核通过的模板ID } /// 定义腾讯云短信响应内容 type SmsTemplResp struct { Result int `json:"result"` // 0表示成功 非0表示失败 ErrMsg string `json:"errmsg"` // 错误消息,result 非0时的具体错误信息 SID string `json:"sid"` // 本次发送标识id,标识一次短信下发记录 } /** [数据库操作]插入短信验证码数据 */ func (sms *ValidSms) Save(db *gorm.DB) error { sql := `INSERT INTO lzyd_sms_valid(mobile_phone, valid_code, sms_type, create_at) VALUES (?,?,?,?)` err := db.Exec(sql, sms.Mobile, sms.ValidCode, sms.SmsType, time.Now().Unix()).Error return err } func (sms *RemindSms) Save(db *gorm.DB) error { sql := "INSERT INTO sms_remind_info(mobile, sms_type, content, ip_addr) VALUES(?,?,?,?)" err := db.Exec(sql, sms.Mobile, sms.SmsType, sms.Content, sms.IpAddr).Error return err }