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

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()
}