This commit is contained in:
桀尼龟 2025-02-25 10:04:42 +08:00
parent 5ecdc9b8f7
commit 4421b1faf2

View File

@ -2,18 +2,14 @@ package account
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"fonchain-fiee/api/account" "fonchain-fiee/api/account"
"fonchain-fiee/pkg/cache"
"fonchain-fiee/pkg/e" "fonchain-fiee/pkg/e"
"fonchain-fiee/pkg/model/login" "fonchain-fiee/pkg/model/login"
"fonchain-fiee/pkg/model/union" "fonchain-fiee/pkg/model/union"
"fonchain-fiee/pkg/service" "fonchain-fiee/pkg/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding" "github.com/gin-gonic/gin/binding"
"github.com/go-redis/redis"
"time"
) )
func UserApproval(c *gin.Context) { func UserApproval(c *gin.Context) {
@ -74,45 +70,46 @@ func SendMsg(c *gin.Context) {
if req.Zone != e.ZoneCn && req.Zone != "" { if req.Zone != e.ZoneCn && req.Zone != "" {
// ============================== redis检查ip开始 // ============================== redis检查ip开始
ip := c.ClientIP() ip := c.ClientIP()
daykey := "day_sms_limit:" + ip fmt.Println("当前ip", ip, ";手机号:", req.TelNum, ";domain", req.Domain)
minutekey := "minute_sms_limit:" + ip //daykey := "day_sms_limit:" + ip
duration := time.Second //minutekey := "minute_sms_limit:" + ip
isBlacklisted, blackErr := cache.RedisClient.SIsMember("nation_sms_blacklist", ip).Result() //duration := time.Second
if blackErr != nil { //isBlacklisted, blackErr := cache.RedisClient.SIsMember("nation_sms_blacklist", ip).Result()
service.Error(c, errors.New("Redis error")) //if blackErr != nil {
return // service.Error(c, errors.New("Redis error"))
} // return
if isBlacklisted { //}
fmt.Println("当前ip手机号在黑名单中", ip, ";手机号:", req.TelNum, ";domain", req.Domain) //if isBlacklisted {
service.Success(c, "succes!") // fmt.Println("当前ip手机号在黑名单中", ip, ";手机号:", req.TelNum, ";domain", req.Domain)
return // service.Success(c, "succes!")
} // return
//}
// 一分钟5次一天30次 //
if dayCount, redisErr := cache.RedisClient.Get(daykey).Int(); redisErr == redis.Nil { //// 一分钟5次一天30次
cache.RedisClient.Set(daykey, 1, 24*time.Hour) //if dayCount, redisErr := cache.RedisClient.Get(daykey).Int(); redisErr == redis.Nil {
} else if redisErr != nil { // cache.RedisClient.Set(daykey, 1, 24*time.Hour)
service.Error(c, errors.New("Redis error")) //} else if redisErr != nil {
return // service.Error(c, errors.New("Redis error"))
} else if dayCount >= 30 { // return
cache.RedisClient.SAdd("nation_sms_blacklist", ip) //} else if dayCount >= 30 {
cache.RedisClient.Expire("nation_sms_blacklist", 24*time.Hour) // 黑名单记录有效期为24小时 // cache.RedisClient.SAdd("nation_sms_blacklist", ip)
fmt.Println("当前ip手机号在黑名单中", ip, ";手机号:", req.TelNum, ";domain", req.Domain) // cache.RedisClient.Expire("nation_sms_blacklist", 24*time.Hour) // 黑名单记录有效期为24小时
service.Success(c, "succes!") // fmt.Println("当前ip手机号在黑名单中", ip, ";手机号:", req.TelNum, ";domain", req.Domain)
return // service.Success(c, "succes!")
} // return
if minuteCount, redisErr := cache.RedisClient.Get(minutekey).Int(); redisErr == redis.Nil { //}
cache.RedisClient.Set(minutekey, 1, duration) //if minuteCount, redisErr := cache.RedisClient.Get(minutekey).Int(); redisErr == redis.Nil {
} else if redisErr != nil { // cache.RedisClient.Set(minutekey, 1, duration)
service.Error(c, errors.New("Redis error")) //} else if redisErr != nil {
return // service.Error(c, errors.New("Redis error"))
} else if minuteCount >= 5 { // return
fmt.Println("当前ip触发每分钟5次限制", ip, ";手机号:", req.TelNum, ";domain", req.Domain) //} else if minuteCount >= 5 {
service.Success(c, "succes!") // fmt.Println("当前ip触发每分钟5次限制", ip, ";手机号:", req.TelNum, ";domain", req.Domain)
return // service.Success(c, "succes!")
} // return
cache.RedisClient.Incr(daykey) //}
cache.RedisClient.Incr(minutekey) //cache.RedisClient.Incr(daykey)
//cache.RedisClient.Incr(minutekey)
// ============================== redis检查ip结束 // ============================== redis检查ip结束
tempReq := &account.SendNationMsgRequest{ tempReq := &account.SendNationMsgRequest{