فهرست منبع

refactor(svc): 重构服务层模块

- 将服务层模块按 API 类型进行细分- 新增 flexCdn 包,包含 CDN、Proxy、SslCert 等服务
- 更新相关引用,调整包结构
fusu 3 هفته پیش
والد
کامیت
5bc165b37c

+ 2 - 1
api/v1/cdn.go

@@ -228,4 +228,5 @@ type WebSocket struct {
 type HandshakeTimeoutJSON struct {
 	Unit  string `json:"unit" form:"unit"`
 	Count int    `json:"count" form:"count"`
-}
+}
+

+ 10 - 8
cmd/server/wire/wire.go

@@ -10,10 +10,12 @@ import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/middleware"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 	adminRep "github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
+	flexCdnRep "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/flexCdn"
 	wafRep "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/server"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/admin"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/gameShield"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/app"
@@ -49,10 +51,10 @@ var repositorySet = wire.NewSet(
 	wafRep.NewGlobalLimitRepository,
 	repository.NewGatewayGroupRepository,
 	repository.NewGateWayGroupIpRepository,
-	repository.NewCdnRepository,
+	flexCdnRep.NewCdnRepository,
 	wafRep.NewAllowAndDenyIpRepository,
-	repository.NewProxyRepository,
-	repository.NewCcRepository,
+	flexCdnRep.NewProxyRepository,
+	flexCdnRep.NewCcRepository,
 	repository.NewExpiredRepository,
 	repository.NewLogRepository,
 	wafRep.NewGatewayipRepository,
@@ -85,12 +87,12 @@ var serviceSet = wire.NewSet(
 	waf.NewWafFormatterService,
 	service.NewGateWayGroupIpService,
 	service.NewRequestService,
-	service.NewCdnService,
+	flexCdn.NewCdnService,
 	waf.NewAllowAndDenyIpService,
-	service.NewProxyService,
-	service.NewSslCertService,
-	service.NewWebsocketService,
-	service.NewCcService,
+	flexCdn.NewProxyService,
+	flexCdn.NewSslCertService,
+	flexCdn.NewWebsocketService,
+	flexCdn.NewCcService,
 	service.NewLogService,
 	waf.NewGatewayipService,
 )

+ 12 - 10
cmd/server/wire/wire_gen.go

@@ -13,10 +13,12 @@ import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/middleware"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/server"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
 	admin2 "github.com/go-nunu/nunu-layout-advanced/internal/service/admin"
+	flexCdn2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/gameShield"
 	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/app"
@@ -76,14 +78,14 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	logService := service.NewLogService(serviceService, logRepository)
 	gatewayipService := waf2.NewGatewayipService(serviceService, gatewayipRepository, hostService, logService)
 	requestService := service.NewRequestService(serviceService)
-	cdnRepository := repository.NewCdnRepository(repositoryRepository)
-	cdnService := service.NewCdnService(serviceService, viperViper, requestService, cdnRepository)
+	cdnRepository := flexCdn.NewCdnRepository(repositoryRepository)
+	cdnService := flexCdn2.NewCdnService(serviceService, viperViper, requestService, cdnRepository)
 	wafFormatterService := waf2.NewWafFormatterService(serviceService, globalLimitRepository, hostRepository, requiredService, parserService, tcpforwardingRepository, udpForWardingRepository, webForwardingRepository, rabbitMQ, hostService, gatewayipRepository, gatewayipService, cdnService)
 	aoDunService := service.NewAoDunService(serviceService, viperViper)
-	proxyRepository := repository.NewProxyRepository(repositoryRepository)
-	proxyService := service.NewProxyService(serviceService, proxyRepository, cdnService)
-	sslCertService := service.NewSslCertService(serviceService, webForwardingRepository, cdnService)
-	websocketService := service.NewWebsocketService(serviceService, cdnService, webForwardingRepository)
+	proxyRepository := flexCdn.NewProxyRepository(repositoryRepository)
+	proxyService := flexCdn2.NewProxyService(serviceService, proxyRepository, cdnService)
+	sslCertService := flexCdn2.NewSslCertService(serviceService, webForwardingRepository, cdnService)
+	websocketService := flexCdn2.NewWebsocketService(serviceService, cdnService, webForwardingRepository)
 	webForwardingService := waf2.NewWebForwardingService(serviceService, requiredService, webForwardingRepository, crawlerService, parserService, wafFormatterService, aoDunService, rabbitMQ, gatewayipService, globalLimitRepository, cdnService, proxyService, sslCertService, websocketService)
 	webForwardingHandler := waf3.NewWebForwardingHandler(handlerHandler, webForwardingService)
 	tcpforwardingService := waf2.NewTcpforwardingService(serviceService, tcpforwardingRepository, parserService, requiredService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService)
@@ -107,8 +109,8 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	gatewayIpAdminService := admin2.NewGatewayIpAdminService(serviceService, gatewayIpAdminRepository, viperViper, requestService)
 	gatewayIpAdminHandler := admin3.NewGatewayIpAdminHandler(handlerHandler, gatewayIpAdminService)
 	allowAndDenyIpHandler := waf3.NewAllowAndDenyIpHandler(handlerHandler, allowAndDenyIpService)
-	ccRepository := repository.NewCcRepository(repositoryRepository)
-	ccService := service.NewCcService(serviceService, ccRepository, webForwardingRepository, cdnService)
+	ccRepository := flexCdn.NewCcRepository(repositoryRepository)
+	ccService := flexCdn2.NewCcService(serviceService, ccRepository, webForwardingRepository, cdnService)
 	ccHandler := handler.NewCcHandler(handlerHandler, ccService)
 	httpServer := server.NewHTTPServer(logger, viperViper, jwtJWT, syncedEnforcer, limiterLimiter, handlerFunc, userHandler, gameShieldHandler, gameShieldBackendHandler, webForwardingHandler, tcpforwardingHandler, udpForWardingHandler, globalLimitHandler, adminHandler, gatewayGroupHandler, gateWayGroupIpHandler, gatewayIpAdminHandler, allowAndDenyIpHandler, ccHandler, logService)
 	appApp := newApp(httpServer)
@@ -119,9 +121,9 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 
 // wire.go:
 
-var repositorySet = wire.NewSet(repository.NewDB, repository.NewRedis, repository.NewCasbinEnforcer, repository.NewMongoClient, repository.NewMongoDB, repository.NewRabbitMQ, repository.NewRepository, repository.NewTransaction, admin.NewAdminRepository, admin.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldPublicIpRepository, waf.NewWebForwardingRepository, waf.NewTcpforwardingRepository, waf.NewUdpForWardingRepository, repository.NewGameShieldUserIpRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldSdkIpRepository, repository.NewHostRepository, waf.NewGlobalLimitRepository, repository.NewGatewayGroupRepository, repository.NewGateWayGroupIpRepository, repository.NewCdnRepository, waf.NewAllowAndDenyIpRepository, repository.NewProxyRepository, repository.NewCcRepository, repository.NewExpiredRepository, repository.NewLogRepository, waf.NewGatewayipRepository, admin.NewGatewayIpAdminRepository)
+var repositorySet = wire.NewSet(repository.NewDB, repository.NewRedis, repository.NewCasbinEnforcer, repository.NewMongoClient, repository.NewMongoDB, repository.NewRabbitMQ, repository.NewRepository, repository.NewTransaction, admin.NewAdminRepository, admin.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldPublicIpRepository, waf.NewWebForwardingRepository, waf.NewTcpforwardingRepository, waf.NewUdpForWardingRepository, repository.NewGameShieldUserIpRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldSdkIpRepository, repository.NewHostRepository, waf.NewGlobalLimitRepository, repository.NewGatewayGroupRepository, repository.NewGateWayGroupIpRepository, flexCdn.NewCdnRepository, waf.NewAllowAndDenyIpRepository, flexCdn.NewProxyRepository, flexCdn.NewCcRepository, repository.NewExpiredRepository, repository.NewLogRepository, waf.NewGatewayipRepository, admin.NewGatewayIpAdminRepository)
 
-var serviceSet = wire.NewSet(service.NewService, admin2.NewUserService, admin2.NewGatewayIpAdminService, admin2.NewAdminService, gameShield.NewGameShieldService, service.NewAoDunService, service.NewGameShieldPublicIpService, service.NewDuedateService, service.NewFormatterService, service.NewParserService, service.NewRequiredService, service.NewCrawlerService, waf2.NewWebForwardingService, waf2.NewTcpforwardingService, waf2.NewUdpForWardingService, service.NewGameShieldUserIpService, gameShield.NewGameShieldBackendService, service.NewGameShieldSdkIpService, service.NewHostService, waf2.NewGlobalLimitService, service.NewGatewayGroupService, waf2.NewWafFormatterService, service.NewGateWayGroupIpService, service.NewRequestService, service.NewCdnService, waf2.NewAllowAndDenyIpService, service.NewProxyService, service.NewSslCertService, service.NewWebsocketService, service.NewCcService, service.NewLogService, waf2.NewGatewayipService)
+var serviceSet = wire.NewSet(service.NewService, admin2.NewUserService, admin2.NewGatewayIpAdminService, admin2.NewAdminService, gameShield.NewGameShieldService, service.NewAoDunService, service.NewGameShieldPublicIpService, service.NewDuedateService, service.NewFormatterService, service.NewParserService, service.NewRequiredService, service.NewCrawlerService, waf2.NewWebForwardingService, waf2.NewTcpforwardingService, waf2.NewUdpForWardingService, service.NewGameShieldUserIpService, gameShield.NewGameShieldBackendService, service.NewGameShieldSdkIpService, service.NewHostService, waf2.NewGlobalLimitService, service.NewGatewayGroupService, waf2.NewWafFormatterService, service.NewGateWayGroupIpService, service.NewRequestService, flexCdn2.NewCdnService, waf2.NewAllowAndDenyIpService, flexCdn2.NewProxyService, flexCdn2.NewSslCertService, flexCdn2.NewWebsocketService, flexCdn2.NewCcService, service.NewLogService, waf2.NewGatewayipService)
 
 var handlerSet = wire.NewSet(handler.NewHandler, admin3.NewUserHandler, admin3.NewAdminHandler, admin3.NewGatewayIpAdminHandler, handler.NewGameShieldHandler, handler.NewGameShieldPublicIpHandler, waf3.NewWebForwardingHandler, waf3.NewTcpforwardingHandler, waf3.NewUdpForWardingHandler, handler.NewGameShieldUserIpHandler, handler.NewGameShieldBackendHandler, handler.NewGameShieldSdkIpHandler, handler.NewHostHandler, waf3.NewGlobalLimitHandler, handler.NewGatewayGroupHandler, handler.NewGateWayGroupIpHandler, waf3.NewAllowAndDenyIpHandler, handler.NewCcHandler, waf3.NewGatewayipHandler)
 

+ 8 - 6
cmd/task/wire/wire.go

@@ -7,9 +7,11 @@ import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/job"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
+	flexCdn2 "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/flexCdn"
 	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/server"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/gameShield"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/task"
@@ -43,9 +45,9 @@ var repositorySet = wire.NewSet(
 	waf2.NewGlobalLimitRepository,
 	repository.NewGatewayGroupRepository,
 	repository.NewGateWayGroupIpRepository,
-	repository.NewCdnRepository,
+	flexCdn2.NewCdnRepository,
 	repository.NewExpiredRepository,
-	repository.NewProxyRepository,
+	flexCdn2.NewProxyRepository,
 	waf2.NewGatewayipRepository,
 	repository.NewLogRepository,
 )
@@ -82,14 +84,14 @@ var serviceSet = wire.NewSet(
 	service.NewGameShieldSdkIpService,
 	service.NewGameShieldUserIpService,
 	waf.NewWafFormatterService,
-	service.NewCdnService,
+	flexCdn.NewCdnService,
 	service.NewRequestService,
 	waf.NewTcpforwardingService,
 	waf.NewUdpForWardingService,
 	waf.NewWebForwardingService,
-	service.NewProxyService,
-	service.NewSslCertService,
-	service.NewWebsocketService,
+	flexCdn.NewProxyService,
+	flexCdn.NewSslCertService,
+	flexCdn.NewWebsocketService,
 	waf.NewGatewayipService,
 	service.NewLogService,
 )

+ 10 - 8
cmd/task/wire/wire_gen.go

@@ -10,9 +10,11 @@ import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/job"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/server"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	flexCdn2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/gameShield"
 	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/task"
@@ -62,8 +64,8 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	tcpforwardingRepository := waf.NewTcpforwardingRepository(repositoryRepository)
 	udpForWardingRepository := waf.NewUdpForWardingRepository(repositoryRepository)
 	requestService := service.NewRequestService(serviceService)
-	cdnRepository := repository.NewCdnRepository(repositoryRepository)
-	cdnService := service.NewCdnService(serviceService, viperViper, requestService, cdnRepository)
+	cdnRepository := flexCdn.NewCdnRepository(repositoryRepository)
+	cdnService := flexCdn2.NewCdnService(serviceService, viperViper, requestService, cdnRepository)
 	globalLimitRepository := waf.NewGlobalLimitRepository(repositoryRepository)
 	expiredRepository := repository.NewExpiredRepository(repositoryRepository)
 	gatewayipRepository := waf.NewGatewayipRepository(repositoryRepository)
@@ -71,13 +73,13 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	logService := service.NewLogService(serviceService, logRepository)
 	gatewayipService := waf2.NewGatewayipService(serviceService, gatewayipRepository, hostService, logService)
 	wafFormatterService := waf2.NewWafFormatterService(serviceService, globalLimitRepository, hostRepository, requiredService, parserService, tcpforwardingRepository, udpForWardingRepository, webForwardingRepository, rabbitMQ, hostService, gatewayipRepository, gatewayipService, cdnService)
-	proxyRepository := repository.NewProxyRepository(repositoryRepository)
-	proxyService := service.NewProxyService(serviceService, proxyRepository, cdnService)
+	proxyRepository := flexCdn.NewProxyRepository(repositoryRepository)
+	proxyService := flexCdn2.NewProxyService(serviceService, proxyRepository, cdnService)
 	tcpforwardingService := waf2.NewTcpforwardingService(serviceService, tcpforwardingRepository, parserService, requiredService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService)
 	udpForWardingService := waf2.NewUdpForWardingService(serviceService, udpForWardingRepository, requiredService, parserService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService)
 	aoDunService := service.NewAoDunService(serviceService, viperViper)
-	sslCertService := service.NewSslCertService(serviceService, webForwardingRepository, cdnService)
-	websocketService := service.NewWebsocketService(serviceService, cdnService, webForwardingRepository)
+	sslCertService := flexCdn2.NewSslCertService(serviceService, webForwardingRepository, cdnService)
+	websocketService := flexCdn2.NewWebsocketService(serviceService, cdnService, webForwardingRepository)
 	webForwardingService := waf2.NewWebForwardingService(serviceService, requiredService, webForwardingRepository, crawlerService, parserService, wafFormatterService, aoDunService, rabbitMQ, gatewayipService, globalLimitRepository, cdnService, proxyService, sslCertService, websocketService)
 	wafTask := task.NewWafTask(webForwardingRepository, tcpforwardingRepository, udpForWardingRepository, cdnService, hostRepository, globalLimitRepository, expiredRepository, taskTask, gatewayipRepository, tcpforwardingService, udpForWardingService, webForwardingService)
 	taskServer := server.NewTaskServer(logger, userTask, gameShieldTask, wafTask)
@@ -93,7 +95,7 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 
 // wire.go:
 
-var repositorySet = wire.NewSet(repository.NewDB, repository.NewRedis, repository.NewMongoClient, repository.NewCasbinEnforcer, repository.NewMongoDB, repository.NewRabbitMQ, repository.NewRepository, repository.NewTransaction, admin.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldPublicIpRepository, repository.NewHostRepository, repository.NewGameShieldUserIpRepository, repository.NewGameShieldSdkIpRepository, waf.NewWebForwardingRepository, waf.NewTcpforwardingRepository, waf.NewUdpForWardingRepository, waf.NewGlobalLimitRepository, repository.NewGatewayGroupRepository, repository.NewGateWayGroupIpRepository, repository.NewCdnRepository, repository.NewExpiredRepository, repository.NewProxyRepository, waf.NewGatewayipRepository, repository.NewLogRepository)
+var repositorySet = wire.NewSet(repository.NewDB, repository.NewRedis, repository.NewMongoClient, repository.NewCasbinEnforcer, repository.NewMongoDB, repository.NewRabbitMQ, repository.NewRepository, repository.NewTransaction, admin.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldPublicIpRepository, repository.NewHostRepository, repository.NewGameShieldUserIpRepository, repository.NewGameShieldSdkIpRepository, waf.NewWebForwardingRepository, waf.NewTcpforwardingRepository, waf.NewUdpForWardingRepository, waf.NewGlobalLimitRepository, repository.NewGatewayGroupRepository, repository.NewGateWayGroupIpRepository, flexCdn.NewCdnRepository, repository.NewExpiredRepository, flexCdn.NewProxyRepository, waf.NewGatewayipRepository, repository.NewLogRepository)
 
 var taskSet = wire.NewSet(task.NewTask, task.NewUserTask, task.NewGameShieldTask, task.NewWafTask)
 
@@ -101,7 +103,7 @@ var jobSet = wire.NewSet(job.NewJob, job.NewUserJob, job.NewWhitelistJob)
 
 var serverSet = wire.NewSet(server.NewTaskServer, server.NewJobServer)
 
-var serviceSet = wire.NewSet(service.NewService, service.NewAoDunService, gameShield.NewGameShieldService, service.NewCrawlerService, service.NewGameShieldPublicIpService, service.NewDuedateService, service.NewFormatterService, service.NewParserService, service.NewRequiredService, service.NewHostService, gameShield.NewGameShieldBackendService, service.NewGameShieldSdkIpService, service.NewGameShieldUserIpService, waf2.NewWafFormatterService, service.NewCdnService, service.NewRequestService, waf2.NewTcpforwardingService, waf2.NewUdpForWardingService, waf2.NewWebForwardingService, service.NewProxyService, service.NewSslCertService, service.NewWebsocketService, waf2.NewGatewayipService, service.NewLogService)
+var serviceSet = wire.NewSet(service.NewService, service.NewAoDunService, gameShield.NewGameShieldService, service.NewCrawlerService, service.NewGameShieldPublicIpService, service.NewDuedateService, service.NewFormatterService, service.NewParserService, service.NewRequiredService, service.NewHostService, gameShield.NewGameShieldBackendService, service.NewGameShieldSdkIpService, service.NewGameShieldUserIpService, waf2.NewWafFormatterService, flexCdn2.NewCdnService, service.NewRequestService, waf2.NewTcpforwardingService, waf2.NewUdpForWardingService, waf2.NewWebForwardingService, flexCdn2.NewProxyService, flexCdn2.NewSslCertService, flexCdn2.NewWebsocketService, waf2.NewGatewayipService, service.NewLogService)
 
 // build App
 func newApp(task2 *server.TaskServer,

+ 3 - 3
internal/handler/cc.go

@@ -3,18 +3,18 @@ package handler
 import (
 	"github.com/gin-gonic/gin"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
-	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"net/http"
 )
 
 type CcHandler struct {
 	*Handler
-	ccService service.CcService
+	ccService flexCdn.CcService
 }
 
 func NewCcHandler(
     handler *Handler,
-    ccService service.CcService,
+    ccService flexCdn.CcService,
 ) *CcHandler {
 	return &CcHandler{
 		Handler:      handler,

+ 3 - 3
internal/handler/cdn.go

@@ -2,17 +2,17 @@ package handler
 
 import (
 	"github.com/gin-gonic/gin"
-	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 )
 
 type CdnHandler struct {
 	*Handler
-	cdnService service.CdnService
+	cdnService flexCdn.CdnService
 }
 
 func NewCdnHandler(
     handler *Handler,
-    cdnService service.CdnService,
+    cdnService flexCdn.CdnService,
 ) *CdnHandler {
 	return &CdnHandler{
 		Handler:      handler,

+ 4 - 3
internal/repository/cc.go → internal/repository/api/flexCdn/cc.go

@@ -1,8 +1,9 @@
-package repository
+package flexCdn
 
 import (
 	"context"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 )
 
 type CcRepository interface {
@@ -11,7 +12,7 @@ type CcRepository interface {
 }
 
 func NewCcRepository(
-	repository *Repository,
+	repository *repository.Repository,
 ) CcRepository {
 	return &ccRepository{
 		Repository: repository,
@@ -19,7 +20,7 @@ func NewCcRepository(
 }
 
 type ccRepository struct {
-	*Repository
+	*repository.Repository
 }
 
 func (r *ccRepository) GetCcList(ctx context.Context, serviceId int64) ([]v1.CCList, error) {

+ 6 - 5
internal/repository/cdn.go → internal/repository/api/flexCdn/cdn.go

@@ -1,8 +1,9 @@
-package repository
+package flexCdn
 
 import (
 	"context"
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 	"github.com/redis/go-redis/v9"
 	"time"
 )
@@ -15,7 +16,7 @@ type CdnRepository interface {
 }
 
 func NewCdnRepository(
-	repository *Repository,
+	repository *repository.Repository,
 ) CdnRepository {
 	return &cdnRepository{
 		Repository: repository,
@@ -23,7 +24,7 @@ func NewCdnRepository(
 }
 
 type cdnRepository struct {
-	*Repository
+	*repository.Repository
 }
 
 func (r *cdnRepository) GetCdn(ctx context.Context, id int64) (*model.Cdn, error) {
@@ -39,7 +40,7 @@ func (r *cdnRepository) PutToken(ctx context.Context, token string) error {
 	const expiration = 2 * time.Hour
 
 	// 使用 Set 方法将 token 存入 Redis
-	err := r.rdb.Set(ctx, cdnTokenKey, token, expiration).Err()
+	err := r.Rdb.Set(ctx, cdnTokenKey, token, expiration).Err()
 	if err != nil {
 		return err
 	}
@@ -48,7 +49,7 @@ func (r *cdnRepository) PutToken(ctx context.Context, token string) error {
 
 // GetToken 从 Redis 中获取 CDN token
 func (r *cdnRepository) GetToken(ctx context.Context) (string, error) {
-	token, err := r.rdb.Get(ctx, cdnTokenKey).Result()
+	token, err := r.Rdb.Get(ctx, cdnTokenKey).Result()
 	if err != nil {
 		// 如果 token 不存在,redis.Nil 会被返回
 		if err == redis.Nil {

+ 4 - 3
internal/repository/proxy.go → internal/repository/api/flexCdn/proxy.go

@@ -1,9 +1,10 @@
-package repository
+package flexCdn
 
 import (
 	"context"
 	"encoding/json"
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 )
 
 type ProxyRepository interface {
@@ -13,7 +14,7 @@ type ProxyRepository interface {
 }
 
 func NewProxyRepository(
-	repository *Repository,
+	repository *repository.Repository,
 ) ProxyRepository {
 	return &proxyRepository{
 		Repository: repository,
@@ -21,7 +22,7 @@ func NewProxyRepository(
 }
 
 type proxyRepository struct {
-	*Repository
+	*repository.Repository
 }
 
 // 获取反向代理ID

+ 8 - 8
internal/repository/expired.go

@@ -62,7 +62,7 @@ func (r *expiredRepository) AddPlans(ctx context.Context, listType PlanListType,
 		for i, id := range planIds {
 			members[i] = id
 		}
-		return r.rdb.SAdd(ctx, closePlansKey, members...).Err()
+		return r.Rdb.SAdd(ctx, closePlansKey, members...).Err()
 
 	case ExpiringSoonPlansList:
 		// Score 代表套餐的实际过期时间戳,用于后续查询
@@ -74,7 +74,7 @@ func (r *expiredRepository) AddPlans(ctx context.Context, listType PlanListType,
 				Member: id,
 			}
 		}
-		return r.rdb.ZAdd(ctx, expiringSoonPlansKey, members...).Err()
+		return r.Rdb.ZAdd(ctx, expiringSoonPlansKey, members...).Err()
 
 	default:
 		return fmt.Errorf("未知的列表类型: %s", listType)
@@ -94,9 +94,9 @@ func (r *expiredRepository) RemovePlans(ctx context.Context, listType PlanListTy
 
 	switch listType {
 	case ClosedPlansList:
-		return r.rdb.SRem(ctx, closePlansKey, members...).Err()
+		return r.Rdb.SRem(ctx, closePlansKey, members...).Err()
 	case ExpiringSoonPlansList:
-		return r.rdb.ZRem(ctx, expiringSoonPlansKey, members...).Err()
+		return r.Rdb.ZRem(ctx, expiringSoonPlansKey, members...).Err()
 	default:
 		return fmt.Errorf("未知的列表类型: %s", listType)
 	}
@@ -109,9 +109,9 @@ func (r *expiredRepository) GetAllPlanIds(ctx context.Context, listType PlanList
 
 	switch listType {
 	case ClosedPlansList:
-		members, err = r.rdb.SMembers(ctx, closePlansKey).Result()
+		members, err = r.Rdb.SMembers(ctx, closePlansKey).Result()
 	case ExpiringSoonPlansList:
-		members, err = r.rdb.ZRange(ctx, expiringSoonPlansKey, 0, -1).Result()
+		members, err = r.Rdb.ZRange(ctx, expiringSoonPlansKey, 0, -1).Result()
 	default:
 		return nil, fmt.Errorf("未知的列表类型: %s", listType)
 	}
@@ -136,9 +136,9 @@ func (r *expiredRepository) GetAllPlanIds(ctx context.Context, listType PlanList
 func (r *expiredRepository) IsPlanInList(ctx context.Context, listType PlanListType, planId int64) (bool, error) {
 	switch listType {
 	case ClosedPlansList:
-		return r.rdb.SIsMember(ctx, closePlansKey, planId).Result()
+		return r.Rdb.SIsMember(ctx, closePlansKey, planId).Result()
 	case ExpiringSoonPlansList:
-		_, err := r.rdb.ZScore(ctx, expiringSoonPlansKey, strconv.FormatInt(planId, 10)).Result()
+		_, err := r.Rdb.ZScore(ctx, expiringSoonPlansKey, strconv.FormatInt(planId, 10)).Result()
 		if err == redis.Nil {
 			return false, nil
 		}

+ 3 - 3
internal/repository/repository.go

@@ -24,8 +24,8 @@ import (
 const ctxTxKey = "TxKey"
 
 type Repository struct {
-	Db  *gorm.DB
-	rdb *redis.Client
+	Db          *gorm.DB
+	Rdb         *redis.Client
 	mongoClient *qmgo.Client
 	MongoDB     *qmgo.Database
 	mq     *rabbitmq.RabbitMQ
@@ -44,7 +44,7 @@ func NewRepository(
 ) *Repository {
 	return &Repository{
 		Db:          db,
-		rdb:         rdb,
+		Rdb:         rdb,
 		mongoClient: mongoClient,
 		MongoDB:     mongoDB,
 		mq:          mq,

+ 7 - 6
internal/service/cc.go → internal/service/api/flexCdn/cc.go

@@ -1,11 +1,12 @@
-package service
+package flexCdn
 
 import (
 	"context"
 	"fmt"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
-	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service"
 	"time"
 )
 
@@ -14,8 +15,8 @@ type CcService interface {
 	EditCcState(ctx context.Context, req v1.CCStateRequest) error
 }
 func NewCcService(
-    service *Service,
-    ccRepository repository.CcRepository,
+    service *service.Service,
+    ccRepository flexCdn.CcRepository,
 	webForwardingRep waf.WebForwardingRepository,
 	cdn CdnService,
 ) CcService {
@@ -28,8 +29,8 @@ func NewCcService(
 }
 
 type ccService struct {
-	*Service
-	ccRepository     repository.CcRepository
+	*service.Service
+	ccRepository     flexCdn.CcRepository
 	webForwardingRep waf.WebForwardingRepository
 	cdn              CdnService
 }

+ 14 - 12
internal/service/cdn.go → internal/service/api/flexCdn/cdn.go

@@ -1,11 +1,12 @@
-package service
+package flexCdn
 
 import (
 	"context"
 	"encoding/json"
 	"fmt"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
-	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/flexCdn"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service"
 	"github.com/spf13/viper"
 	"strings"
 )
@@ -64,10 +65,10 @@ type CdnService interface {
 }
 
 func NewCdnService(
-	service *Service,
+	service *service.Service,
 	conf *viper.Viper,
-	request RequestService,
-	cdnRepository repository.CdnRepository,
+	request service.RequestService,
+	cdnRepository flexCdn.CdnRepository,
 ) CdnService {
 	return &cdnService{
 		Service:           service,
@@ -82,13 +83,13 @@ func NewCdnService(
 }
 
 type cdnService struct {
-	*Service
-	Url               string
+	*service.Service
+	Url             string
 	AccessKeyID       string
-	AccessKeySecret   string
-	request           RequestService
-	cdnRepository     repository.CdnRepository
-	maxRetryCount     int
+	AccessKeySecret string
+	request       service.RequestService
+	cdnRepository flexCdn.CdnRepository
+	maxRetryCount int
 	retryDelaySeconds int
 }
 
@@ -1022,4 +1023,5 @@ func (s *cdnService) DelIpItem(ctx context.Context,ipitemId int64,value string,i
 		return fmt.Errorf("API 错误: code %d, msg '%s'", res.Code, res.Message)
 	}
 	return nil
-}
+}
+

+ 8 - 7
internal/service/proxy.go → internal/service/api/flexCdn/proxy.go

@@ -1,11 +1,12 @@
-package service
+package flexCdn
 
 import (
 	"context"
 	"encoding/json"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
-	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/flexCdn"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service"
 )
 
 type ProxyService interface {
@@ -15,8 +16,8 @@ type ProxyService interface {
 	EditProxy (ctx context.Context, cdnWebId int64, req v1.ProxyProtocolJSON) error
 }
 func NewProxyService(
-    service *Service,
-	proxyRep repository.ProxyRepository,
+    service *service.Service,
+	proxyRep flexCdn.ProxyRepository,
 	cdn CdnService,
 
 ) ProxyService {
@@ -28,9 +29,9 @@ func NewProxyService(
 }
 
 type proxyService struct {
-	*Service
-	proxyRep repository.ProxyRepository
-	cdn CdnService
+	*service.Service
+	proxyRep flexCdn.ProxyRepository
+	cdn      CdnService
 }
 
 func (s *proxyService) GetProxyId (ctx context.Context, cdnWebId int64) (int64, error) {

+ 4 - 3
internal/service/sslcert.go → internal/service/api/flexCdn/sslcert.go

@@ -1,4 +1,4 @@
-package service
+package flexCdn
 
 import (
 	"context"
@@ -8,6 +8,7 @@ import (
 	"fmt"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service"
 )
 
 type SslCertService interface {
@@ -18,7 +19,7 @@ type SslCertService interface {
 	EditSslPolicy(ctx context.Context, sslPolicyId int64, CertIds []int64, action string) error
 }
 func NewSslCertService(
-    service *Service,
+    service *service.Service,
    	webForwardingRep waf.WebForwardingRepository,
 	cdn CdnService,
 ) SslCertService {
@@ -30,7 +31,7 @@ func NewSslCertService(
 }
 
 type sslCertService struct {
-	*Service
+	*service.Service
 	webForwardingRep waf.WebForwardingRepository
 	cdn              CdnService
 }

+ 4 - 3
internal/service/websocket.go → internal/service/api/flexCdn/websocket.go

@@ -1,10 +1,11 @@
-package service
+package flexCdn
 
 import (
 	"context"
 	"encoding/json"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service"
 )
 
 type WebsocketService interface {
@@ -12,7 +13,7 @@ type WebsocketService interface {
 	EnableOrDisable(ctx context.Context,serverId int64,websocketId int64,isOn bool,isPrior bool) error
 }
 func NewWebsocketService(
-    service *Service,
+    service *service.Service,
 	cdn CdnService,
 	webForwardingRep waf.WebForwardingRepository,
 ) WebsocketService {
@@ -24,7 +25,7 @@ func NewWebsocketService(
 }
 
 type websocketService struct {
-	*Service
+	*service.Service
 	cdn              CdnService
 	webForwardingRep waf.WebForwardingRepository
 }

+ 8 - 6
internal/service/api/waf/globallimit.go

@@ -7,8 +7,10 @@ import (
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	flexCdn2 "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"github.com/mozillazg/go-pinyin"
 	"github.com/spf13/viper"
 	"go.uber.org/zap"
@@ -37,8 +39,8 @@ func NewGlobalLimitService(
 	parser service.ParserService,
 	host service.HostService,
 	hostRep repository.HostRepository,
-	cdnService service.CdnService,
-	cdnRep repository.CdnRepository,
+	cdnService flexCdn.CdnService,
+	cdnRep flexCdn2.CdnRepository,
 	tcpforwardingRep waf.TcpforwardingRepository,
 	udpForWardingRep waf.UdpForWardingRepository,
 	webForWardingRep waf.WebForwardingRepository,
@@ -84,10 +86,10 @@ type globalLimitService struct {
 	required              service.RequiredService
 	parser                service.ParserService
 	host                  service.HostService
-	hostRep               repository.HostRepository
-	cdnService            service.CdnService
-	cdnRep                repository.CdnRepository
-	tcpforwardingRep      waf.TcpforwardingRepository
+	hostRep    repository.HostRepository
+	cdnService       flexCdn.CdnService
+	cdnRep           flexCdn2.CdnRepository
+	tcpforwardingRep waf.TcpforwardingRepository
 	udpForWardingRep      waf.UdpForWardingRepository
 	webForWardingRep      waf.WebForwardingRepository
 	allowAndDeny          AllowAndDenyIpService

+ 5 - 4
internal/service/api/waf/tcpforwarding.go

@@ -9,6 +9,7 @@ import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"golang.org/x/sync/errgroup"
 	"maps"
 	"net"
@@ -32,8 +33,8 @@ func NewTcpforwardingService(
 	globalRep waf.GlobalLimitRepository,
 	hostRep repository.HostRepository,
 	wafformatter WafFormatterService,
-	cdn service.CdnService,
-	proxy service.ProxyService,
+	cdn flexCdn.CdnService,
+	proxy flexCdn.ProxyService,
 ) TcpforwardingService {
 	return &tcpforwardingService{
 		Service:                 service,
@@ -58,8 +59,8 @@ type tcpforwardingService struct {
 	globalRep               waf.GlobalLimitRepository
 	hostRep                 repository.HostRepository
 	wafformatter WafFormatterService
-	cdn          service.CdnService
-	proxy                   service.ProxyService
+	cdn   flexCdn.CdnService
+	proxy flexCdn.ProxyService
 }
 
 

+ 5 - 4
internal/service/api/waf/udpforwarding.go

@@ -9,6 +9,7 @@ import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"golang.org/x/sync/errgroup"
 	"maps"
 	"net"
@@ -32,8 +33,8 @@ func NewUdpForWardingService(
 	globalRep waf.GlobalLimitRepository,
 	hostRep repository.HostRepository,
 	wafformatter WafFormatterService,
-	cdn service.CdnService,
-	proxy service.ProxyService,
+	cdn flexCdn.CdnService,
+	proxy flexCdn.ProxyService,
 ) UdpForWardingService {
 	return &udpForWardingService{
 		Service:                 service,
@@ -59,8 +60,8 @@ type udpForWardingService struct {
 	globalRep               waf.GlobalLimitRepository
 	hostRep                 repository.HostRepository
 	wafformatter WafFormatterService
-	cdn          service.CdnService
-	proxy                   service.ProxyService
+	cdn   flexCdn.CdnService
+	proxy flexCdn.ProxyService
 }
 
 

+ 5 - 4
internal/service/api/waf/wafformatter.go

@@ -9,6 +9,7 @@ import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/rabbitmq"
 	amqp "github.com/rabbitmq/amqp091-go"
 	"go.uber.org/zap"
@@ -56,7 +57,7 @@ func NewWafFormatterService(
 	host service.HostService,
 	gatewayIpRep waf.GatewayipRepository,
 	gatewayIp GatewayipService,
-	cdn service.CdnService,
+	cdn flexCdn.CdnService,
 ) WafFormatterService {
 	return &wafFormatterService{
 		Service:           service,
@@ -86,9 +87,9 @@ type wafFormatterService struct {
 	webForwardingRep waf.WebForwardingRepository
 	host             service.HostService
 	mq               *rabbitmq.RabbitMQ
-	gatewayIpRep     waf.GatewayipRepository
-	cdn              service.CdnService
-	gatewayIp        GatewayipService
+	gatewayIpRep waf.GatewayipRepository
+	cdn          flexCdn.CdnService
+	gatewayIp    GatewayipService
 }
 
 type RequireResponse struct {

+ 11 - 10
internal/service/api/waf/webforwarding.go

@@ -8,6 +8,7 @@ import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/rabbitmq"
 	"golang.org/x/sync/errgroup"
 	"maps"
@@ -34,10 +35,10 @@ func NewWebForwardingService(
 	mq *rabbitmq.RabbitMQ,
 	gatewayIp GatewayipService,
 	globalLimitRep waf.GlobalLimitRepository,
-	cdn service.CdnService,
-	proxy service.ProxyService,
-	sslCert service.SslCertService,
-	websocket service.WebsocketService,
+	cdn flexCdn.CdnService,
+	proxy flexCdn.ProxyService,
+	sslCert flexCdn.SslCertService,
+	websocket flexCdn.WebsocketService,
 ) WebForwardingService {
 	return &webForwardingService{
 		Service:                 service,
@@ -73,12 +74,12 @@ type webForwardingService struct {
 	wafformatter            WafFormatterService
 	aoDun                   service.AoDunService
 	mq                      *rabbitmq.RabbitMQ
-	gatewayIp               GatewayipService
-	cdn                     service.CdnService
-	globalLimitRep          waf.GlobalLimitRepository
-	proxy                   service.ProxyService
-	sslCert                 service.SslCertService
-	websocket               service.WebsocketService
+	gatewayIp      GatewayipService
+	cdn            flexCdn.CdnService
+	globalLimitRep waf.GlobalLimitRepository
+	proxy          flexCdn.ProxyService
+	sslCert        flexCdn.SslCertService
+	websocket      flexCdn.WebsocketService
 }
 
 func (s *webForwardingService) require(ctx context.Context, req v1.GlobalRequire) (v1.GlobalRequire, error) {

+ 10 - 1
internal/service/host.go

@@ -47,7 +47,7 @@ const (
 	ConfigIpCount              = "高防节点IP"
 	NodeArea                   = "节点区域"
 	IsBanUdp                   = "UDP协议"
-	IsBanOverseas              = "禁用海外"
+	IsBanOverseas              = "海外访问"
 )
 
 // unitSuffixMap 存储需要去除的单位后缀
@@ -269,6 +269,15 @@ func (s *hostService) GetGlobalLimitConfig(ctx context.Context, hostId int) (v1.
 			data.IsBanUdp = 1
 		}
 	}
+
+	if val, ok := configsMap[IsBanOverseas]; ok {
+		if val == "开放" {
+			data.IsBanOverseas = 0
+		}
+		if val == "封堵" {
+			data.IsBanOverseas = 1
+		}
+	}
 	return data, nil
 }
 

+ 3 - 3
internal/task/waf.go

@@ -7,7 +7,7 @@ import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
-	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"github.com/hashicorp/go-multierror"
 	"go.uber.org/zap"
@@ -37,7 +37,7 @@ func NewWafTask(
 	webForWardingRep waf2.WebForwardingRepository,
 	tcpforwardingRep waf2.TcpforwardingRepository,
 	udpForWardingRep waf2.UdpForWardingRepository,
-	cdn service.CdnService,
+	cdn flexCdn.CdnService,
 	hostRep repository.HostRepository,
 	globalLimitRep waf2.GlobalLimitRepository,
 	expiredRep repository.ExpiredRepository,
@@ -68,7 +68,7 @@ type wafTask struct {
 	webForWardingRep waf2.WebForwardingRepository
 	tcpforwardingRep waf2.TcpforwardingRepository
 	udpForWardingRep waf2.UdpForWardingRepository
-	cdn              service.CdnService
+	cdn              flexCdn.CdnService
 	hostRep          repository.HostRepository
 	globalLimitRep   waf2.GlobalLimitRepository
 	expiredRep       repository.ExpiredRepository