30 lines
706 B
Go
30 lines
706 B
Go
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) }()
|
|
}
|
|
}
|