You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
774 B
38 lines
774 B
package data
|
|
|
|
import (
|
|
"time"
|
|
|
|
"bkb-notify/internal/biz"
|
|
|
|
"errors"
|
|
|
|
"github.com/go-kratos/kratos/v2/log"
|
|
)
|
|
|
|
type smsRepo struct {
|
|
data *Data
|
|
log *log.Helper
|
|
}
|
|
|
|
// NewGreeterRepo .
|
|
func NewSmsRepo(data *Data, logger log.Logger) biz.SmsRepo {
|
|
return &smsRepo{
|
|
data: data,
|
|
log: log.NewHelper(logger),
|
|
}
|
|
}
|
|
|
|
func (r *smsRepo) CreateSms(phone, code string) error {
|
|
return r.data.rdb.Set("sms_code:"+phone, code, 5*time.Minute).Err()
|
|
}
|
|
func (r *smsRepo) CheckCode(phone, code string) error {
|
|
result, _ := r.data.rdb.Get("sms_code:" + phone).Result()
|
|
if result == "" {
|
|
return errors.New("验证码已过期,请重新获取")
|
|
}
|
|
if result != code {
|
|
return errors.New("验证码错误,请重新输入")
|
|
}
|
|
return r.data.rdb.Del("sms_code:" + phone).Err()
|
|
}
|
|
|