This commit is contained in:
lzh
2025-06-18 17:37:21 +08:00
parent 695dcf3c49
commit e2d9685db3
3 changed files with 17 additions and 28 deletions

View File

@@ -8,7 +8,6 @@ import (
dysmsapi20170525 "github.com/alibabacloud-go/dysmsapi-20170525/v5/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
"github.com/redis/go-redis/v9"
"time"
)
@@ -81,10 +80,7 @@ func (c *SmsClient) SaveCode(ctx context.Context, key string, code string, expir
}
//保存code
err = c.Cache.Set(ctx, key, code, expire)
if err != nil {
return err
}
return nil
return err
}
// DeleteCode 删除验证码
@@ -102,34 +98,18 @@ func (c *SmsClient) SaveCodeWithFrequency(ctx context.Context, key string, code
return errors.New("缓存不能为空")
}
frequencyKey := fmt.Sprintf(CodeFrequencyKey, key)
if frequency != 0 {
// 判断验证码是否频繁
frequencyValue, err := c.Cache.Get(ctx, frequencyKey)
if err != nil {
if errors.Is(err, redis.Nil) {
// 缓存中没有数据
fmt.Printf("缓存中没有数据")
} else {
return err
}
}
if frequencyValue != nil && frequencyValue.(string) == CodeFrequencyValue {
return errors.New("code发送频繁请稍后再试")
}
if frequency <= 0 {
return errors.New("频率不能小于0")
}
//保存code
err = c.SaveCode(ctx, key, code, expire)
ok, err := c.Cache.SetNX(ctx, frequencyKey, CodeFrequencyValue, frequency)
if err != nil {
return err
}
if frequency != 0 {
// 保存验证码发送频率
err = c.Cache.Set(ctx, frequencyKey, CodeFrequencyValue, frequency)
if err != nil {
return err
}
if !ok {
return errors.New("code发送频繁请稍后再试")
}
return nil
err = c.SaveCode(ctx, key, code, expire)
return err
}
// VerifyCode 校验验证码