@@ -0,0 +1,29 @@
|
||||
package limitHandler
|
||||
|
||||
import (
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/web/webg"
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"time"
|
||||
)
|
||||
|
||||
// FilterRequestByExport 限制用户短时间内的导出请求次数,limit决定限制时间
|
||||
func FilterRequestByExport() gin.HandlerFunc {
|
||||
return func(ctx *gin.Context) {
|
||||
manager, err := common.GetAdminAct(ctx)
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.AdminIDErr, err.Error())
|
||||
ctx.Abort()
|
||||
return
|
||||
}
|
||||
key := fmt.Sprintf("export_excel:%v", manager)
|
||||
if webg.Redis.IsExist(key) {
|
||||
common.ServeJSON(ctx, stderr.VisitLimit, err)
|
||||
ctx.Abort()
|
||||
return
|
||||
}
|
||||
go func() { _ = webg.Redis.Set(key, "-", time.Second*3) }()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user