浏览代码

refactor(waf): 重构 WAF 服务模块

- 将 TCP、UDP 和 Web 转发相关的服务拆分到独立的子包中
- 重命名相关包和文件,提高代码结构的清晰度
- 更新函数签名和类型引用,以适应新的包结构
fusu 16 小时之前
父节点
当前提交
57e9218667

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

@@ -18,6 +18,11 @@ import (
 	"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/service/api/waf/common"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/globallimit"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/tcp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/udp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/web"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/app"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/jwt"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/limiter"
@@ -79,29 +84,29 @@ var serviceSet = wire.NewSet(
 	service.NewParserService,
 	service.NewRequiredService,
 	service.NewCrawlerService,
-	waf.NewWebForwardingService,
-	waf.NewAidedWebService,
-	waf.NewAidedTcpService,
-	waf.NewTcpforwardingService,
-	waf.NewAidedUdpService,
-	waf.NewUdpForWardingService,
+	web.NewWebForwardingService,
+	web.NewAidedWebService,
+	tcp.NewAidedTcpService,
+	tcp.NewTcpforwardingService,
+	udp.NewAidedUdpService,
+	udp.NewUdpForWardingService,
 	service.NewGameShieldUserIpService,
 	gameShield.NewGameShieldBackendService,
 	service.NewGameShieldSdkIpService,
 	service.NewHostService,
-	waf.NewGlobalLimitService,
+	globallimit.NewGlobalLimitService,
 	service.NewGatewayGroupService,
-	waf.NewWafFormatterService,
+	common.NewWafFormatterService,
 	service.NewGateWayGroupIpService,
 	service.NewRequestService,
 	flexCdn.NewCdnService,
-	waf.NewAllowAndDenyIpService,
+	common.NewAllowAndDenyIpService,
 	flexCdn.NewProxyService,
 	flexCdn.NewSslCertService,
 	flexCdn.NewWebsocketService,
 	waf.NewCcService,
 	service.NewLogService,
-	waf.NewGatewayipService,
+	common.NewGatewayipService,
 	waf.NewCcIpListService,
 	waf.NewCdnLogService,
 	waf.NewBuildAudunService,

+ 16 - 11
cmd/server/wire/wire_gen.go

@@ -21,6 +21,11 @@ import (
 	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/service/api/waf/common"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/globallimit"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/tcp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/udp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/web"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/app"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/jwt"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/limiter"
@@ -77,11 +82,11 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	logRepository := repository.NewLogRepository(repositoryRepository)
 	logService := service.NewLogService(serviceService, logRepository)
 	waflogService := waf2.NewWaflogService(serviceService, rabbitMQ)
-	gatewayipService := waf2.NewGatewayipService(serviceService, gatewayipRepository, hostService, logService, waflogService)
+	gatewayipService := common.NewGatewayipService(serviceService, gatewayipRepository, hostService, logService, waflogService)
 	requestService := service.NewRequestService(serviceService)
 	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, cdnRepository)
+	wafFormatterService := common.NewWafFormatterService(serviceService, globalLimitRepository, hostRepository, requiredService, parserService, tcpforwardingRepository, udpForWardingRepository, webForwardingRepository, rabbitMQ, hostService, gatewayipRepository, gatewayipService, cdnService, cdnRepository)
 	aoDunService := service.NewAoDunService(serviceService, viperViper, requestService)
 	proxyRepository := flexCdn.NewProxyRepository(repositoryRepository)
 	proxyService := flexCdn2.NewProxyService(serviceService, proxyRepository, cdnService)
@@ -91,20 +96,20 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	ccIpListRepository := flexCdn.NewCcIpListRepository(repositoryRepository)
 	ccIpListService := waf2.NewCcIpListService(serviceService, ccIpListRepository, cdnService, webForwardingRepository)
 	ccService := waf2.NewCcService(serviceService, ccRepository, webForwardingRepository, cdnService, ccIpListService)
-	aidedWebService := waf2.NewAidedWebService(serviceService, webForwardingRepository, wafFormatterService, sslCertService, cdnService, proxyService, websocketService, ccService, ccIpListService, gatewayipService, globalLimitRepository)
-	webForwardingService := waf2.NewWebForwardingService(serviceService, requiredService, webForwardingRepository, crawlerService, parserService, wafFormatterService, aoDunService, rabbitMQ, gatewayipService, globalLimitRepository, cdnService, proxyService, sslCertService, websocketService, ccService, ccIpListService, aidedWebService)
+	aidedWebService := web.NewAidedWebService(serviceService, webForwardingRepository, wafFormatterService, sslCertService, cdnService, proxyService, websocketService, ccService, ccIpListService, gatewayipService, globalLimitRepository)
+	webForwardingService := web.NewWebForwardingService(serviceService, requiredService, webForwardingRepository, crawlerService, parserService, wafFormatterService, aoDunService, rabbitMQ, gatewayipService, globalLimitRepository, cdnService, proxyService, sslCertService, websocketService, ccService, ccIpListService, aidedWebService)
 	webForwardingHandler := waf3.NewWebForwardingHandler(handlerHandler, webForwardingService, waflogService)
-	aidedTcpService := waf2.NewAidedTcpService(serviceService, wafFormatterService, cdnService, proxyService, globalLimitRepository, tcpforwardingRepository)
-	tcpforwardingService := waf2.NewTcpforwardingService(serviceService, tcpforwardingRepository, parserService, requiredService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService, aidedTcpService)
+	aidedTcpService := tcp.NewAidedTcpService(serviceService, wafFormatterService, cdnService, proxyService, globalLimitRepository, tcpforwardingRepository)
+	tcpforwardingService := tcp.NewTcpforwardingService(serviceService, tcpforwardingRepository, parserService, requiredService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService, aidedTcpService)
 	tcpforwardingHandler := waf3.NewTcpforwardingHandler(handlerHandler, tcpforwardingService, waflogService)
-	aidedUdpService := waf2.NewAidedUdpService(serviceService, wafFormatterService, cdnService, proxyService, globalLimitRepository, udpForWardingRepository)
-	udpForWardingService := waf2.NewUdpForWardingService(serviceService, udpForWardingRepository, requiredService, parserService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService, aidedUdpService)
+	aidedUdpService := udp.NewAidedUdpService(serviceService, wafFormatterService, cdnService, proxyService, globalLimitRepository, udpForWardingRepository)
+	udpForWardingService := udp.NewUdpForWardingService(serviceService, udpForWardingRepository, requiredService, parserService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService, aidedUdpService)
 	udpForWardingHandler := waf3.NewUdpForWardingHandler(handlerHandler, udpForWardingService, waflogService)
 	allowAndDenyIpRepository := waf.NewAllowAndDenyIpRepository(repositoryRepository)
-	allowAndDenyIpService := waf2.NewAllowAndDenyIpService(serviceService, allowAndDenyIpRepository, wafFormatterService, gatewayipService)
+	allowAndDenyIpService := common.NewAllowAndDenyIpService(serviceService, allowAndDenyIpRepository, wafFormatterService, gatewayipService)
 	buildAudunService := waf2.NewBuildAudunService(serviceService, aoDunService, gatewayipRepository, hostService)
 	zzybgpService := waf2.NewZzybgpService(serviceService, gatewayipRepository, hostService, aoDunService)
-	globalLimitService := waf2.NewGlobalLimitService(serviceService, globalLimitRepository, duedateService, crawlerService, viperViper, requiredService, parserService, hostService, hostRepository, cdnService, cdnRepository, tcpforwardingRepository, udpForWardingRepository, webForwardingRepository, allowAndDenyIpService, allowAndDenyIpRepository, tcpforwardingService, udpForWardingService, webForwardingService, gatewayipRepository, gatewayipService, buildAudunService, zzybgpService)
+	globalLimitService := globallimit.NewGlobalLimitService(serviceService, globalLimitRepository, duedateService, crawlerService, viperViper, requiredService, parserService, hostService, hostRepository, cdnService, cdnRepository, tcpforwardingRepository, udpForWardingRepository, webForwardingRepository, allowAndDenyIpService, allowAndDenyIpRepository, tcpforwardingService, udpForWardingService, webForwardingService, gatewayipRepository, gatewayipService, buildAudunService, zzybgpService)
 	globalLimitHandler := waf3.NewGlobalLimitHandler(handlerHandler, globalLimitService, waflogService)
 	adminRepository := admin.NewAdminRepository(repositoryRepository)
 	adminService := admin2.NewAdminService(serviceService, adminRepository)
@@ -140,7 +145,7 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 
 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, flexCdn.NewCcIpListRepository, admin.NewLogRepository, admin.NewWafLogRepository, admin.NewWafManageRepository)
 
-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.NewAidedWebService, waf2.NewAidedTcpService, waf2.NewTcpforwardingService, waf2.NewAidedUdpService, 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, waf2.NewCcService, service.NewLogService, waf2.NewGatewayipService, waf2.NewCcIpListService, waf2.NewCdnLogService, waf2.NewBuildAudunService, waf2.NewZzybgpService, waf2.NewWaflogService, admin2.NewLogService, admin2.NewWafLogService, admin2.NewWafLogDataCleanService, admin2.NewWafManageService, admin2.NewWafOperationsService)
+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, web.NewWebForwardingService, web.NewAidedWebService, tcp.NewAidedTcpService, tcp.NewTcpforwardingService, udp.NewAidedUdpService, udp.NewUdpForWardingService, service.NewGameShieldUserIpService, gameShield.NewGameShieldBackendService, service.NewGameShieldSdkIpService, service.NewHostService, globallimit.NewGlobalLimitService, service.NewGatewayGroupService, common.NewWafFormatterService, service.NewGateWayGroupIpService, service.NewRequestService, flexCdn2.NewCdnService, common.NewAllowAndDenyIpService, flexCdn2.NewProxyService, flexCdn2.NewSslCertService, flexCdn2.NewWebsocketService, waf2.NewCcService, service.NewLogService, common.NewGatewayipService, waf2.NewCcIpListService, waf2.NewCdnLogService, waf2.NewBuildAudunService, waf2.NewZzybgpService, waf2.NewWaflogService, admin2.NewLogService, admin2.NewWafLogService, admin2.NewWafLogDataCleanService, admin2.NewWafManageService, admin2.NewWafOperationsService)
 
 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, waf3.NewCcHandler, waf3.NewGatewayipHandler, waf3.NewCcIpListHandler, waf3.NewCdnLogHandler, admin3.NewLogHandler, admin3.NewWafLogHandler, admin3.NewWafManageHandler)
 

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

@@ -15,6 +15,10 @@ import (
 	"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/service/api/waf/common"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/tcp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/udp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/web"
 	"github.com/go-nunu/nunu-layout-advanced/internal/task"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/app"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/jwt"
@@ -88,20 +92,20 @@ var serviceSet = wire.NewSet(
 	gameShield.NewGameShieldBackendService,
 	service.NewGameShieldSdkIpService,
 	service.NewGameShieldUserIpService,
-	waf.NewWafFormatterService,
+	common.NewWafFormatterService,
 	flexCdn.NewCdnService,
 	service.NewRequestService,
-	waf.NewAidedTcpService,
-	waf.NewTcpforwardingService,
-	waf.NewAidedUdpService,
-	waf.NewUdpForWardingService,
-	waf.NewAidedWebService,
-	waf.NewWebForwardingService,
+	tcp.NewAidedTcpService,
+	tcp.NewTcpforwardingService,
+	udp.NewAidedUdpService,
+	udp.NewUdpForWardingService,
+	web.NewAidedWebService,
+	web.NewWebForwardingService,
 	flexCdn.NewProxyService,
 	flexCdn.NewSslCertService,
 	flexCdn.NewWebsocketService,
 	waf.NewCcService,
-	waf.NewGatewayipService,
+	common.NewGatewayipService,
 	service.NewLogService,
 	waf.NewCcIpListService,
 	waf.NewBuildAudunService,

+ 13 - 9
cmd/task/wire/wire_gen.go

@@ -18,6 +18,10 @@ import (
 	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/service/api/waf/common"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/tcp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/udp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/web"
 	"github.com/go-nunu/nunu-layout-advanced/internal/task"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/app"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/jwt"
@@ -73,14 +77,14 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	logRepository := repository.NewLogRepository(repositoryRepository)
 	logService := service.NewLogService(serviceService, logRepository)
 	waflogService := waf2.NewWaflogService(serviceService, rabbitMQ)
-	gatewayipService := waf2.NewGatewayipService(serviceService, gatewayipRepository, hostService, logService, waflogService)
-	wafFormatterService := waf2.NewWafFormatterService(serviceService, globalLimitRepository, hostRepository, requiredService, parserService, tcpforwardingRepository, udpForWardingRepository, webForwardingRepository, rabbitMQ, hostService, gatewayipRepository, gatewayipService, cdnService, cdnRepository)
+	gatewayipService := common.NewGatewayipService(serviceService, gatewayipRepository, hostService, logService, waflogService)
+	wafFormatterService := common.NewWafFormatterService(serviceService, globalLimitRepository, hostRepository, requiredService, parserService, tcpforwardingRepository, udpForWardingRepository, webForwardingRepository, rabbitMQ, hostService, gatewayipRepository, gatewayipService, cdnService, cdnRepository)
 	proxyRepository := flexCdn.NewProxyRepository(repositoryRepository)
 	proxyService := flexCdn2.NewProxyService(serviceService, proxyRepository, cdnService)
-	aidedTcpService := waf2.NewAidedTcpService(serviceService, wafFormatterService, cdnService, proxyService, globalLimitRepository, tcpforwardingRepository)
-	tcpforwardingService := waf2.NewTcpforwardingService(serviceService, tcpforwardingRepository, parserService, requiredService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService, aidedTcpService)
-	aidedUdpService := waf2.NewAidedUdpService(serviceService, wafFormatterService, cdnService, proxyService, globalLimitRepository, udpForWardingRepository)
-	udpForWardingService := waf2.NewUdpForWardingService(serviceService, udpForWardingRepository, requiredService, parserService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService, aidedUdpService)
+	aidedTcpService := tcp.NewAidedTcpService(serviceService, wafFormatterService, cdnService, proxyService, globalLimitRepository, tcpforwardingRepository)
+	tcpforwardingService := tcp.NewTcpforwardingService(serviceService, tcpforwardingRepository, parserService, requiredService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService, aidedTcpService)
+	aidedUdpService := udp.NewAidedUdpService(serviceService, wafFormatterService, cdnService, proxyService, globalLimitRepository, udpForWardingRepository)
+	udpForWardingService := udp.NewUdpForWardingService(serviceService, udpForWardingRepository, requiredService, parserService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService, aidedUdpService)
 	aoDunService := service.NewAoDunService(serviceService, viperViper, requestService)
 	sslCertService := flexCdn2.NewSslCertService(serviceService, webForwardingRepository, cdnService)
 	websocketService := flexCdn2.NewWebsocketService(serviceService, cdnService, webForwardingRepository)
@@ -88,8 +92,8 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	ccIpListRepository := flexCdn.NewCcIpListRepository(repositoryRepository)
 	ccIpListService := waf2.NewCcIpListService(serviceService, ccIpListRepository, cdnService, webForwardingRepository)
 	ccService := waf2.NewCcService(serviceService, ccRepository, webForwardingRepository, cdnService, ccIpListService)
-	aidedWebService := waf2.NewAidedWebService(serviceService, webForwardingRepository, wafFormatterService, sslCertService, cdnService, proxyService, websocketService, ccService, ccIpListService, gatewayipService, globalLimitRepository)
-	webForwardingService := waf2.NewWebForwardingService(serviceService, requiredService, webForwardingRepository, crawlerService, parserService, wafFormatterService, aoDunService, rabbitMQ, gatewayipService, globalLimitRepository, cdnService, proxyService, sslCertService, websocketService, ccService, ccIpListService, aidedWebService)
+	aidedWebService := web.NewAidedWebService(serviceService, webForwardingRepository, wafFormatterService, sslCertService, cdnService, proxyService, websocketService, ccService, ccIpListService, gatewayipService, globalLimitRepository)
+	webForwardingService := web.NewWebForwardingService(serviceService, requiredService, webForwardingRepository, crawlerService, parserService, wafFormatterService, aoDunService, rabbitMQ, gatewayipService, globalLimitRepository, cdnService, proxyService, sslCertService, websocketService, ccService, ccIpListService, aidedWebService)
 	buildAudunService := waf2.NewBuildAudunService(serviceService, aoDunService, gatewayipRepository, hostService)
 	zzybgpService := waf2.NewZzybgpService(serviceService, gatewayipRepository, hostService, aoDunService)
 	wafOperationsService := admin2.NewWafOperationsService(serviceService, webForwardingRepository, tcpforwardingRepository, udpForWardingRepository, cdnService, hostRepository, globalLimitRepository, expiredRepository, gatewayipRepository, tcpforwardingService, udpForWardingService, webForwardingService, buildAudunService, zzybgpService)
@@ -119,7 +123,7 @@ var jobSet = wire.NewSet(job.NewJob, job.NewUserJob, job.NewWhitelistJob, job.Ne
 
 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, flexCdn2.NewCdnService, service.NewRequestService, waf2.NewAidedTcpService, waf2.NewTcpforwardingService, waf2.NewAidedUdpService, waf2.NewUdpForWardingService, waf2.NewAidedWebService, waf2.NewWebForwardingService, flexCdn2.NewProxyService, flexCdn2.NewSslCertService, flexCdn2.NewWebsocketService, waf2.NewCcService, waf2.NewGatewayipService, service.NewLogService, waf2.NewCcIpListService, waf2.NewBuildAudunService, waf2.NewZzybgpService, waf2.NewWaflogService, admin2.NewWafLogService, admin2.NewWafLogDataCleanService, admin2.NewWafOperationsService)
+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, common.NewWafFormatterService, flexCdn2.NewCdnService, service.NewRequestService, tcp.NewAidedTcpService, tcp.NewTcpforwardingService, udp.NewAidedUdpService, udp.NewUdpForWardingService, web.NewAidedWebService, web.NewWebForwardingService, flexCdn2.NewProxyService, flexCdn2.NewSslCertService, flexCdn2.NewWebsocketService, waf2.NewCcService, common.NewGatewayipService, service.NewLogService, waf2.NewCcIpListService, waf2.NewBuildAudunService, waf2.NewZzybgpService, waf2.NewWaflogService, admin2.NewWafLogService, admin2.NewWafLogDataCleanService, admin2.NewWafOperationsService)
 
 // build App
 func newApp(task2 *server.TaskServer,

+ 3 - 2
internal/handler/api/waf/allowanddenyip.go

@@ -6,18 +6,19 @@ import (
 	adminApi "github.com/go-nunu/nunu-layout-advanced/api/v1/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
 	"net/http"
 )
 
 type AllowAndDenyIpHandler struct {
 	*handler.Handler
-	allowAndDenyIpService waf.AllowAndDenyIpService
+	allowAndDenyIpService common.AllowAndDenyIpService
 	wafLogService         waf.WaflogService
 }
 
 func NewAllowAndDenyIpHandler(
     handler *handler.Handler,
-    allowAndDenyIpService waf.AllowAndDenyIpService,
+    allowAndDenyIpService common.AllowAndDenyIpService,
 	wafLogService waf.WaflogService,
 ) *AllowAndDenyIpHandler {
 	return &AllowAndDenyIpHandler{

+ 3 - 3
internal/handler/api/waf/gatewayip.go

@@ -3,17 +3,17 @@ package waf
 import (
 	"github.com/gin-gonic/gin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
-	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
 )
 
 type GatewayipHandler struct {
 	*handler.Handler
-	gatewayipService waf.GatewayipService
+	gatewayipService common.GatewayipService
 }
 
 func NewGatewayipHandler(
     handler *handler.Handler,
-    gatewayipService waf.GatewayipService,
+    gatewayipService common.GatewayipService,
 ) *GatewayipHandler {
 	return &GatewayipHandler{
 		Handler:      handler,

+ 3 - 2
internal/handler/api/waf/globallimit.go

@@ -6,18 +6,19 @@ import (
 	adminApi "github.com/go-nunu/nunu-layout-advanced/api/v1/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/globallimit"
 	"net/http"
 )
 
 type GlobalLimitHandler struct {
 	*handler.Handler
-	globalLimitService waf.GlobalLimitService
+	globalLimitService globallimit.GlobalLimitService
 	wafLogService      waf.WaflogService
 }
 
 func NewGlobalLimitHandler(
 	handler *handler.Handler,
-	globalLimitService waf.GlobalLimitService,
+	globalLimitService globallimit.GlobalLimitService,
 	wafLogService waf.WaflogService,
 ) *GlobalLimitHandler {
 	return &GlobalLimitHandler{

+ 4 - 3
internal/handler/api/waf/tcpforwarding.go

@@ -6,19 +6,20 @@ import (
 	adminApi "github.com/go-nunu/nunu-layout-advanced/api/v1/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/tcp"
 	"github.com/mcuadros/go-defaults"
 	"net/http"
 )
 
 type TcpforwardingHandler struct {
 	*handler.Handler
-	tcpforwardingService waf.TcpforwardingService
-	wafLogService waf.WaflogService
+	tcpforwardingService tcp.TcpforwardingService
+	wafLogService        waf.WaflogService
 }
 
 func NewTcpforwardingHandler(
 	handler *handler.Handler,
-	tcpforwardingService waf.TcpforwardingService,
+	tcpforwardingService tcp.TcpforwardingService,
 	wafLogService waf.WaflogService,
 ) *TcpforwardingHandler {
 	return &TcpforwardingHandler{

+ 4 - 3
internal/handler/api/waf/udpforwarding.go

@@ -6,19 +6,20 @@ import (
 	adminApi "github.com/go-nunu/nunu-layout-advanced/api/v1/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/udp"
 	"github.com/mcuadros/go-defaults"
 	"net/http"
 )
 
 type UdpForWardingHandler struct {
 	*handler.Handler
-	udpForWardingService waf.UdpForWardingService
-	wafLogService waf.WaflogService
+	udpForWardingService udp.UdpForWardingService
+	wafLogService        waf.WaflogService
 }
 
 func NewUdpForWardingHandler(
 	handler *handler.Handler,
-	udpForWardingService waf.UdpForWardingService,
+	udpForWardingService udp.UdpForWardingService,
 	wafLogService waf.WaflogService,
 ) *UdpForWardingHandler {
 	return &UdpForWardingHandler{

+ 4 - 3
internal/handler/api/waf/webforwarding.go

@@ -6,19 +6,20 @@ import (
 	adminApi "github.com/go-nunu/nunu-layout-advanced/api/v1/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/web"
 	"github.com/mcuadros/go-defaults"
 	"net/http"
 )
 
 type WebForwardingHandler struct {
 	*handler.Handler
-	webForwardingService waf.WebForwardingService
-	wafLogService waf.WaflogService
+	webForwardingService web.WebForwardingService
+	wafLogService        waf.WaflogService
 }
 
 func NewWebForwardingHandler(
 	handler *handler.Handler,
-	webForwardingService waf.WebForwardingService,
+	webForwardingService web.WebForwardingService,
 	wafLogService waf.WaflogService,
 ) *WebForwardingHandler {
 	return &WebForwardingHandler{

+ 3 - 3
internal/job/whitelist.go

@@ -5,7 +5,7 @@ import (
 	"encoding/json"
 	"fmt"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
-	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
 	"github.com/rabbitmq/amqp091-go"
 	"go.uber.org/zap"
 	"strconv"
@@ -27,7 +27,7 @@ type WhitelistJob interface {
 // NewWhitelistJob 创建一个新的 WhitelistJob
 func NewWhitelistJob(job *Job,
 	aoDunService service.AoDunService,
-	wafForMatter waf.WafFormatterService,
+	wafForMatter common.WafFormatterService,
 ) WhitelistJob {
 	return &whitelistJob{
 		Job:          job,
@@ -39,7 +39,7 @@ func NewWhitelistJob(job *Job,
 type whitelistJob struct {
 	*Job
 	aoDunService service.AoDunService
-	wafForMatter waf.WafFormatterService
+	wafForMatter common.WafFormatterService
 }
 
 // DomainConsumer 启动域名白名单消费者

+ 10 - 7
internal/service/admin/wafoperations.go

@@ -10,6 +10,9 @@ import (
 	"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/go-nunu/nunu-layout-advanced/internal/service/api/waf/tcp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/udp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/web"
 	"github.com/hashicorp/go-multierror"
 	"go.uber.org/zap"
 
@@ -46,9 +49,9 @@ func NewWafOperationsService(
 	globalLimitRep waf2.GlobalLimitRepository,
 	expiredRep repository.ExpiredRepository,
 	gatewayIpRep waf2.GatewayipRepository,
-	tcp waf.TcpforwardingService,
-	udp waf.UdpForWardingService,
-	web waf.WebForwardingService,
+	tcp tcp.TcpforwardingService,
+	udp udp.UdpForWardingService,
+	web web.WebForwardingService,
 	buildAoDun waf.BuildAudunService,
 	zzyBgp waf.ZzybgpService,
 ) WafOperationsService {
@@ -80,10 +83,10 @@ type wafOperationsService struct {
 	globalLimitRep   waf2.GlobalLimitRepository
 	expiredRep       repository.ExpiredRepository
 	gatewayIpRep waf2.GatewayipRepository
-	tcp          waf.TcpforwardingService
-	udp          waf.UdpForWardingService
-	web          waf.WebForwardingService
-	buildAoDun   waf.BuildAudunService
+	tcp          tcp.TcpforwardingService
+	udp          udp.UdpForWardingService
+	web web.WebForwardingService
+	buildAoDun waf.BuildAudunService
 	zzyBgp       waf.ZzybgpService
 }
 

+ 1 - 1
internal/service/api/waf/allowanddenyip.go → internal/service/api/waf/common/allowanddenyip.go

@@ -1,4 +1,4 @@
-package waf
+package common
 
 import (
 	"context"

+ 5 - 4
internal/service/api/waf/gatewayip.go → internal/service/api/waf/common/gatewayip.go

@@ -1,4 +1,4 @@
-package waf
+package common
 
 import (
 	"context"
@@ -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"
+	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 )
 
 type GatewayipService interface {
@@ -21,7 +22,7 @@ func NewGatewayipService(
     gatewayipRepository waf.GatewayipRepository,
 	host service.HostService,
 	log service.LogService,
-	wafLogService WaflogService,
+	wafLogService waf2.WaflogService,
 ) GatewayipService {
 	return &gatewayipService{
 		Service:        service,
@@ -36,8 +37,8 @@ type gatewayipService struct {
 	*service.Service
 	gatewayipRepository waf.GatewayipRepository
 	host                service.HostService
-	log                 service.LogService
-	wafLogService       WaflogService
+	log           service.LogService
+	wafLogService waf2.WaflogService
 }
 
 func (s *gatewayipService) GetGatewayip(ctx context.Context, id int64) (*model.Gatewayip, error) {

+ 11 - 11
internal/service/api/waf/wafformatter.go → internal/service/api/waf/common/wafformatter.go

@@ -1,4 +1,4 @@
-package waf
+package common
 
 import (
 	"context"
@@ -25,14 +25,14 @@ import (
 
 type WafFormatterService interface {
 	Require(ctx context.Context, req v1.GlobalRequire) (RequireResponse, error)
-	validateWafPortCount(ctx context.Context, hostId int) error
-	validateWafDomainCount(ctx context.Context, req v1.GlobalRequire) error
+	ValidateWafPortCount(ctx context.Context, hostId int) error
+	ValidateWafDomainCount(ctx context.Context, req v1.GlobalRequire) error
 	ConvertToWildcardDomain(ctx context.Context, domain string) (string, error)
 	AppendWafIp(ctx context.Context, req []string, returnSourceIp string) ([]v1.IpInfo, error)
 	WashIps(ctx context.Context, req []string) ([]string, error)
 	PublishIpWhitelistTask(ips []string, action string, returnSourceIp string, color string)
 	PublishDomainWhitelistTask(domain, ip, action string)
-	findIpDifferences(oldIps, newIps []string) ([]string, []string)
+	FindIpDifferences(oldIps, newIps []string) ([]string, []string)
 	WashDeleteWafIp(ctx context.Context, backendList []string) ([]string, error)
 	WashEditWafIp(ctx context.Context, newBackendList []string, oldBackendList []string) ([]string, []string, error)
 	//cdn添加网站
@@ -93,9 +93,9 @@ type wafFormatterService struct {
 	host             service.HostService
 	mq               *rabbitmq.RabbitMQ
 	gatewayIpRep waf.GatewayipRepository
-	cdn          flexCdn.CdnService
-	gatewayIp    GatewayipService
-	cdnRep flexCdnRep.CdnRepository
+	cdn       flexCdn.CdnService
+	gatewayIp GatewayipService
+	cdnRep    flexCdnRep.CdnRepository
 }
 
 type RequireResponse struct {
@@ -141,7 +141,7 @@ func (s *wafFormatterService) Require(ctx context.Context, req v1.GlobalRequire)
 	return res, nil
 }
 
-func (s *wafFormatterService) validateWafPortCount(ctx context.Context, hostId int) error {
+func (s *wafFormatterService) ValidateWafPortCount(ctx context.Context, hostId int) error {
 	congfig, err := s.host.GetGlobalLimitConfig(ctx, hostId)
 	if err != nil {
 		return err
@@ -164,7 +164,7 @@ func (s *wafFormatterService) validateWafPortCount(ctx context.Context, hostId i
 	return fmt.Errorf("端口数量超出套餐限制,已配置%d个端口,套餐限制为%d个端口", tcpCount+udpCount+webCount, congfig.PortCount)
 }
 
-func (s *wafFormatterService) validateWafDomainCount(ctx context.Context, req v1.GlobalRequire) error {
+func (s *wafFormatterService) ValidateWafDomainCount(ctx context.Context, req v1.GlobalRequire) error {
 	congfig, err := s.host.GetGlobalLimitConfig(ctx, req.HostId)
 	if err != nil {
 		return err
@@ -346,7 +346,7 @@ func (s *wafFormatterService) PublishIpWhitelistTask(ips []string, action string
 	}
 }
 
-func (s *wafFormatterService) findIpDifferences(oldIps, newIps []string) ([]string, []string) {
+func (s *wafFormatterService) FindIpDifferences(oldIps, newIps []string) ([]string, []string) {
 	// 使用 map 实现 set,用于快速查找
 	oldIpsSet := make(map[string]struct{}, len(oldIps))
 	for _, ip := range oldIps {
@@ -408,7 +408,7 @@ func (s *wafFormatterService) WashEditWafIp(ctx context.Context, newBackendList
 			newIps = append(newIps, ip)
 		}
 	}
-	addedIps, removedIps := s.findIpDifferences(oldIps, newIps)
+	addedIps, removedIps := s.FindIpDifferences(oldIps, newIps)
 
 	return addedIps, removedIps, nil
 }

+ 23 - 18
internal/service/api/waf/globallimit.go → internal/service/api/waf/globallimit/globallimit.go

@@ -1,4 +1,4 @@
-package waf
+package globallimit
 
 import (
 	"context"
@@ -11,6 +11,11 @@ import (
 	"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"
+	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/tcp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/udp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/web"
 	"github.com/mozillazg/go-pinyin"
 	"github.com/spf13/viper"
 	"golang.org/x/sync/errgroup"
@@ -43,15 +48,15 @@ func NewGlobalLimitService(
 	tcpforwardingRep waf.TcpforwardingRepository,
 	udpForWardingRep waf.UdpForWardingRepository,
 	webForWardingRep waf.WebForwardingRepository,
-	allowAndDeny AllowAndDenyIpService,
+	allowAndDeny common.AllowAndDenyIpService,
 	allowAndDenyRep waf.AllowAndDenyIpRepository,
-	tcpforwarding TcpforwardingService,
-	udpForWarding UdpForWardingService,
-	webForWarding WebForwardingService,
+	tcpforwarding tcp.TcpforwardingService,
+	udpForWarding udp.UdpForWardingService,
+	webForWarding web.WebForwardingService,
 	gatewayIpRep waf.GatewayipRepository,
-	gatywayIp GatewayipService,
-	bulidAudun BuildAudunService,
-	zzyBgp ZzybgpService,
+	gatywayIp common.GatewayipService,
+	bulidAudun waf2.BuildAudunService,
+	zzyBgp waf2.ZzybgpService,
 ) GlobalLimitService {
 	return &globalLimitService{
 		Service:               service,
@@ -94,16 +99,16 @@ type globalLimitService struct {
 	cdnRep           flexCdn2.CdnRepository
 	tcpforwardingRep waf.TcpforwardingRepository
 	udpForWardingRep      waf.UdpForWardingRepository
-	webForWardingRep      waf.WebForwardingRepository
-	allowAndDeny          AllowAndDenyIpService
-	allowAndDenyRep waf.AllowAndDenyIpRepository
-	tcpforwarding   TcpforwardingService
-	udpForWarding UdpForWardingService
-	webForWarding         WebForwardingService
-	gatewayIpRep          waf.GatewayipRepository
-	gatewayIp             GatewayipService
-	bulidAudun             BuildAudunService
-	zzyBgp                ZzybgpService
+	webForWardingRep waf.WebForwardingRepository
+	allowAndDeny     common.AllowAndDenyIpService
+	allowAndDenyRep  waf.AllowAndDenyIpRepository
+	tcpforwarding   tcp.TcpforwardingService
+	udpForWarding   udp.UdpForWardingService
+	webForWarding web.WebForwardingService
+	gatewayIpRep waf.GatewayipRepository
+	gatewayIp        common.GatewayipService
+	bulidAudun       waf2.BuildAudunService
+	zzyBgp           waf2.ZzybgpService
 }
 
 func (s *globalLimitService) GetCdnUserId(ctx context.Context, uid int64) (int64, error) {

+ 26 - 25
internal/service/api/waf/aidedtcp.go → internal/service/api/waf/tcp/aidedtcp.go

@@ -1,9 +1,10 @@
-package waf
+package tcp
 
 import (
 	"context"
 	"encoding/json"
 	"fmt"
+	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
 	"maps"
 	"net"
 	"strconv"
@@ -18,13 +19,13 @@ import (
 // AidedTcpService TCP转发辅助服务接口
 type AidedTcpService interface {
 	// 验证相关
-	ValidateAddRequest(ctx context.Context, req *v1.TcpForwardingRequest, require RequireResponse) error
-	ValidateEditRequest(ctx context.Context, req *v1.TcpForwardingRequest, require RequireResponse, oldData *model.Tcpforwarding) error
+	ValidateAddRequest(ctx context.Context, req *v1.TcpForwardingRequest, require waf2.RequireResponse) error
+	ValidateEditRequest(ctx context.Context, req *v1.TcpForwardingRequest, require waf2.RequireResponse, oldData *model.Tcpforwarding) error
 	ValidateDeletePermission(oldData *model.Tcpforwarding, hostId int) error
 
 	// CDN操作相关
 	CreateCdnWebsite(ctx context.Context, formData v1.WebsiteSend) (int64, error)
-	UpdateCdnConfiguration(ctx context.Context, req *v1.TcpForwardingRequest, oldData *model.Tcpforwarding, require RequireResponse, formData v1.WebsiteSend) error
+	UpdateCdnConfiguration(ctx context.Context, req *v1.TcpForwardingRequest, oldData *model.Tcpforwarding, require waf2.RequireResponse, formData v1.WebsiteSend) error
 	DeleteCdnServer(ctx context.Context, cdnWebId int) error
 
 	// 源站操作相关
@@ -40,16 +41,16 @@ type AidedTcpService interface {
 	ProcessDeleteIpWhitelist(ctx context.Context, id int) error
 
 	// 数据准备和配置
-	PrepareWafData(ctx context.Context, req *v1.TcpForwardingRequest) (RequireResponse, v1.WebsiteSend, error)
+	PrepareWafData(ctx context.Context, req *v1.TcpForwardingRequest) (waf2.RequireResponse, v1.WebsiteSend, error)
 	BuildTcpListenConfig(gatewayIps []string, portStr string) ([]byte, error)
 
 	// 模型构建
-	BuildTcpForwardingModel(req *v1.TcpForwardingDataRequest, ruleId int, require RequireResponse) *model.Tcpforwarding
-	BuildTcpRuleModel(reqData *v1.TcpForwardingDataRequest, require RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.TcpForwardingRule
+	BuildTcpForwardingModel(req *v1.TcpForwardingDataRequest, ruleId int, require waf2.RequireResponse) *model.Tcpforwarding
+	BuildTcpRuleModel(reqData *v1.TcpForwardingDataRequest, require waf2.RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.TcpForwardingRule
 
 	// 数据库操作
-	SaveToDatabase(ctx context.Context, req *v1.TcpForwardingRequest, require RequireResponse, tcpId int64, cdnOriginIds map[string]int64) (int, error)
-	UpdateDatabaseRecords(ctx context.Context, req *v1.TcpForwardingRequest, oldData *model.Tcpforwarding, require RequireResponse, ipData *model.TcpForwardingRule) error
+	SaveToDatabase(ctx context.Context, req *v1.TcpForwardingRequest, require waf2.RequireResponse, tcpId int64, cdnOriginIds map[string]int64) (int, error)
+	UpdateDatabaseRecords(ctx context.Context, req *v1.TcpForwardingRequest, oldData *model.Tcpforwarding, require waf2.RequireResponse, ipData *model.TcpForwardingRule) error
 	CleanupDatabaseRecords(ctx context.Context, id int) error
 
 	// 工具函数
@@ -58,8 +59,8 @@ type AidedTcpService interface {
 
 type aidedTcpService struct {
 	*service.Service
-	wafformatter  WafFormatterService
-	cdn           flexCdn.CdnService
+	wafformatter waf2.WafFormatterService
+	cdn          flexCdn.CdnService
 	proxy         flexCdn.ProxyService
 	globalRep     waf.GlobalLimitRepository
 	tcpRepository waf.TcpforwardingRepository
@@ -67,7 +68,7 @@ type aidedTcpService struct {
 
 func NewAidedTcpService(
 	service *service.Service,
-	wafformatter WafFormatterService,
+	wafformatter waf2.WafFormatterService,
 	cdn flexCdn.CdnService,
 	proxy flexCdn.ProxyService,
 	globalRep waf.GlobalLimitRepository,
@@ -87,9 +88,9 @@ func NewAidedTcpService(
 // 该函数验证以下内容:
 // 1. 验证 WAF 端口数量限制(防止超出配额)
 // 2. 验证端口号是否已被占用(确保端口唯一性)
-func (s *aidedTcpService) ValidateAddRequest(ctx context.Context, req *v1.TcpForwardingRequest, require RequireResponse) error {
+func (s *aidedTcpService) ValidateAddRequest(ctx context.Context, req *v1.TcpForwardingRequest, require waf2.RequireResponse) error {
 	// 验证端口数量限制
-	if err := s.wafformatter.validateWafPortCount(ctx, require.HostId); err != nil {
+	if err := s.wafformatter.ValidateWafPortCount(ctx, require.HostId); err != nil {
 		return fmt.Errorf("端口数量验证失败: %w", err)
 	}
 
@@ -103,7 +104,7 @@ func (s *aidedTcpService) ValidateAddRequest(ctx context.Context, req *v1.TcpFor
 
 // ValidateEditRequest 验证编辑 TCP 转发请求的合法性
 // 该函数仅在端口发生变更时才验证端口冲突,提高性能并避免不必要的检查
-func (s *aidedTcpService) ValidateEditRequest(ctx context.Context, req *v1.TcpForwardingRequest, require RequireResponse, oldData *model.Tcpforwarding) error {
+func (s *aidedTcpService) ValidateEditRequest(ctx context.Context, req *v1.TcpForwardingRequest, require waf2.RequireResponse, oldData *model.Tcpforwarding) error {
 	// 只有端口发生变更时才需要验证端口冲突
 	if oldData.Port != req.TcpForwardingData.Port {
 		if err := s.wafformatter.VerifyPort(ctx, "tcp", int64(req.TcpForwardingData.Id), req.TcpForwardingData.Port, int64(require.HostId), ""); err != nil {
@@ -143,7 +144,7 @@ func (s *aidedTcpService) CreateCdnWebsite(ctx context.Context, formData v1.Webs
 // 1. 端口变更 - 更新网站监听配置
 // 2. 名称变更 - 更新网站基本信息
 // 3. 代理协议变更 - 开启/关闭 Proxy Protocol
-func (s *aidedTcpService) UpdateCdnConfiguration(ctx context.Context, req *v1.TcpForwardingRequest, oldData *model.Tcpforwarding, require RequireResponse, formData v1.WebsiteSend) error {
+func (s *aidedTcpService) UpdateCdnConfiguration(ctx context.Context, req *v1.TcpForwardingRequest, oldData *model.Tcpforwarding, require waf2.RequireResponse, formData v1.WebsiteSend) error {
 	// 更新网站端口
 	if oldData.Port != req.TcpForwardingData.Port {
 		if err := s.cdn.EditServerType(ctx, v1.EditWebsite{
@@ -224,7 +225,7 @@ func (s *aidedTcpService) AddOriginsToWebsite(ctx context.Context, req *v1.TcpFo
 // 2. 删除不再需要的后端服务器
 // 3. 更新源站ID映射关系
 func (s *aidedTcpService) UpdateOriginServers(ctx context.Context, req *v1.TcpForwardingRequest, oldData *model.Tcpforwarding, ipData *model.TcpForwardingRule) error {
-	addOrigins, delOrigins := s.wafformatter.findIpDifferences(ipData.BackendList, req.TcpForwardingData.BackendList)
+	addOrigins, delOrigins := s.wafformatter.FindIpDifferences(ipData.BackendList, req.TcpForwardingData.BackendList)
 
 	// 添加新源站
 	addedIds := make(map[string]int64)
@@ -383,7 +384,7 @@ func (s *aidedTcpService) ExtractIpsFromBackends(backends []string) []string {
 // 1. 获取全局配置信息(用户、主机、网关等)
 // 2. 构建 TCP 代理的监听配置 JSON
 // 3. 组装 CDN 创建网站的表单数据
-func (s *aidedTcpService) PrepareWafData(ctx context.Context, req *v1.TcpForwardingRequest) (RequireResponse, v1.WebsiteSend, error) {
+func (s *aidedTcpService) PrepareWafData(ctx context.Context, req *v1.TcpForwardingRequest) (waf2.RequireResponse, v1.WebsiteSend, error) {
 	// 获取全局配置信息,包括用户信息、网关IP等
 	require, err := s.wafformatter.Require(ctx, v1.GlobalRequire{
 		HostId:  req.HostId,
@@ -391,18 +392,18 @@ func (s *aidedTcpService) PrepareWafData(ctx context.Context, req *v1.TcpForward
 		Comment: req.TcpForwardingData.Comment,
 	})
 	if err != nil {
-		return RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("获取全局配置信息失败: %w", err)
+		return waf2.RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("获取全局配置信息失败: %w", err)
 	}
 
 	// 验证实例配置是否完整
 	if require.Uid == 0 {
-		return RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("请先配置实例,确保用户信息和网关配置正确")
+		return waf2.RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("请先配置实例,确保用户信息和网关配置正确")
 	}
 
 	// 构建 TCP 监听配置
 	tcpConfig, err := s.BuildTcpListenConfig(require.GatewayIps, req.TcpForwardingData.Port)
 	if err != nil {
-		return RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("构建 TCP 监听配置失败: %w", err)
+		return waf2.RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("构建 TCP 监听配置失败: %w", err)
 	}
 
 	// 组装 CDN 创建网站的表单数据
@@ -474,7 +475,7 @@ func (s *aidedTcpService) BuildTcpListenConfig(gatewayIps []string, portStr stri
 
 // BuildTcpForwardingModel 构建 TCP 转发主记录模型
 // 该函数将请求数据转换为数据库模型,包含主机、CDN网站、端口等信息
-func (s *aidedTcpService) BuildTcpForwardingModel(req *v1.TcpForwardingDataRequest, ruleId int, require RequireResponse) *model.Tcpforwarding {
+func (s *aidedTcpService) BuildTcpForwardingModel(req *v1.TcpForwardingDataRequest, ruleId int, require waf2.RequireResponse) *model.Tcpforwarding {
 	return &model.Tcpforwarding{
 		HostId:   require.HostId,
 		CdnWebId: ruleId,
@@ -486,7 +487,7 @@ func (s *aidedTcpService) BuildTcpForwardingModel(req *v1.TcpForwardingDataReque
 
 // BuildTcpRuleModel 构建 TCP 转发规则记录模型
 // 该函数构建包含后端服务器列表和 CDN 源站ID映射的规则记录
-func (s *aidedTcpService) BuildTcpRuleModel(reqData *v1.TcpForwardingDataRequest, require RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.TcpForwardingRule {
+func (s *aidedTcpService) BuildTcpRuleModel(reqData *v1.TcpForwardingDataRequest, require waf2.RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.TcpForwardingRule {
 	return &model.TcpForwardingRule{
 		Uid:          require.Uid,
 		HostId:       require.HostId,
@@ -498,7 +499,7 @@ func (s *aidedTcpService) BuildTcpRuleModel(reqData *v1.TcpForwardingDataRequest
 
 // SaveToDatabase 保存 TCP 转发配置到数据库
 // 该函数分别保存主记录(基本信息)和规则记录(后端服务器和源站ID映射)
-func (s *aidedTcpService) SaveToDatabase(ctx context.Context, req *v1.TcpForwardingRequest, require RequireResponse, tcpId int64, cdnOriginIds map[string]int64) (int, error) {
+func (s *aidedTcpService) SaveToDatabase(ctx context.Context, req *v1.TcpForwardingRequest, require waf2.RequireResponse, tcpId int64, cdnOriginIds map[string]int64) (int, error) {
 	// 保存主记录
 	tcpModel := s.BuildTcpForwardingModel(&req.TcpForwardingData, int(tcpId), require)
 	id, err := s.tcpRepository.AddTcpforwarding(ctx, tcpModel)
@@ -517,7 +518,7 @@ func (s *aidedTcpService) SaveToDatabase(ctx context.Context, req *v1.TcpForward
 
 // UpdateDatabaseRecords 更新数据库记录
 // 该函数更新 TCP 转发的主记录和规则记录,同步最新的配置变更
-func (s *aidedTcpService) UpdateDatabaseRecords(ctx context.Context, req *v1.TcpForwardingRequest, oldData *model.Tcpforwarding, require RequireResponse, ipData *model.TcpForwardingRule) error {
+func (s *aidedTcpService) UpdateDatabaseRecords(ctx context.Context, req *v1.TcpForwardingRequest, oldData *model.Tcpforwarding, require waf2.RequireResponse, ipData *model.TcpForwardingRule) error {
 	// 更新主记录
 	tcpModel := s.BuildTcpForwardingModel(&req.TcpForwardingData, oldData.CdnWebId, require)
 	tcpModel.Id = req.TcpForwardingData.Id

+ 9 - 8
internal/service/api/waf/tcpforwarding.go → internal/service/api/waf/tcp/tcpforwarding.go

@@ -1,16 +1,17 @@
-package waf
+package tcp
 
 import (
 	"context"
 	"fmt"
-	"sort"
 	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/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
+	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
 	"golang.org/x/sync/errgroup"
+	"sort"
 )
 
 type TcpforwardingService interface {
@@ -29,7 +30,7 @@ func NewTcpforwardingService(
 	crawler service.CrawlerService,
 	globalRep waf.GlobalLimitRepository,
 	hostRep repository.HostRepository,
-	wafformatter WafFormatterService,
+	wafformatter waf2.WafFormatterService,
 	cdn flexCdn.CdnService,
 	proxy flexCdn.ProxyService,
 	aidedTcp AidedTcpService,
@@ -56,11 +57,11 @@ type tcpforwardingService struct {
 	required                service.RequiredService
 	crawler                 service.CrawlerService
 	globalRep               waf.GlobalLimitRepository
-	hostRep                 repository.HostRepository
-	wafformatter            WafFormatterService
-	cdn                     flexCdn.CdnService
-	proxy                   flexCdn.ProxyService
-	aidedTcp                AidedTcpService
+	hostRep      repository.HostRepository
+	wafformatter waf2.WafFormatterService
+	cdn          flexCdn.CdnService
+	proxy    flexCdn.ProxyService
+	aidedTcp AidedTcpService
 }
 
 // GetTcpforwarding 获取单个TCP转发配置详情

+ 26 - 25
internal/service/api/waf/aidedudp.go → internal/service/api/waf/udp/aidedudp.go

@@ -1,9 +1,10 @@
-package waf
+package udp
 
 import (
 	"context"
 	"encoding/json"
 	"fmt"
+	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
 	"maps"
 	"net"
 
@@ -17,13 +18,13 @@ import (
 // AidedUdpService UDP转发辅助服务接口
 type AidedUdpService interface {
 	// 验证相关
-	ValidateAddRequest(ctx context.Context, req *v1.UdpForwardingRequest, require RequireResponse) error
-	ValidateEditRequest(ctx context.Context, req *v1.UdpForwardingRequest, require RequireResponse, oldData *model.UdpForWarding) error
+	ValidateAddRequest(ctx context.Context, req *v1.UdpForwardingRequest, require waf2.RequireResponse) error
+	ValidateEditRequest(ctx context.Context, req *v1.UdpForwardingRequest, require waf2.RequireResponse, oldData *model.UdpForWarding) error
 	ValidateDeletePermission(oldData *model.UdpForWarding, hostId int) error
 
 	// CDN操作相关
 	CreateCdnWebsite(ctx context.Context, formData v1.WebsiteSend) (int64, error)
-	UpdateCdnConfiguration(ctx context.Context, req *v1.UdpForwardingRequest, oldData *model.UdpForWarding, require RequireResponse, formData v1.WebsiteSend) error
+	UpdateCdnConfiguration(ctx context.Context, req *v1.UdpForwardingRequest, oldData *model.UdpForWarding, require waf2.RequireResponse, formData v1.WebsiteSend) error
 	DeleteCdnServer(ctx context.Context, cdnWebId int) error
 
 	// 源站操作相关
@@ -39,16 +40,16 @@ type AidedUdpService interface {
 	ProcessDeleteIpWhitelist(ctx context.Context, id int) error
 
 	// 数据准备和配置
-	PrepareWafData(ctx context.Context, req *v1.UdpForwardingRequest) (RequireResponse, v1.WebsiteSend, error)
+	PrepareWafData(ctx context.Context, req *v1.UdpForwardingRequest) (waf2.RequireResponse, v1.WebsiteSend, error)
 	BuildUdpListenConfig(gatewayIps []string, port string) ([]byte, error)
 
 	// 模型构建
-	BuildUdpForwardingModel(req *v1.UdpForwardingDataRequest, ruleId int, require RequireResponse) *model.UdpForWarding
-	BuildUdpRuleModel(reqData *v1.UdpForwardingDataRequest, require RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.UdpForwardingRule
+	BuildUdpForwardingModel(req *v1.UdpForwardingDataRequest, ruleId int, require waf2.RequireResponse) *model.UdpForWarding
+	BuildUdpRuleModel(reqData *v1.UdpForwardingDataRequest, require waf2.RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.UdpForwardingRule
 
 	// 数据库操作
-	SaveToDatabase(ctx context.Context, req *v1.UdpForwardingRequest, require RequireResponse, udpId int64, cdnOriginIds map[string]int64) (int, error)
-	UpdateDatabaseRecords(ctx context.Context, req *v1.UdpForwardingRequest, oldData *model.UdpForWarding, require RequireResponse, ipData *model.UdpForwardingRule) error
+	SaveToDatabase(ctx context.Context, req *v1.UdpForwardingRequest, require waf2.RequireResponse, udpId int64, cdnOriginIds map[string]int64) (int, error)
+	UpdateDatabaseRecords(ctx context.Context, req *v1.UdpForwardingRequest, oldData *model.UdpForWarding, require waf2.RequireResponse, ipData *model.UdpForwardingRule) error
 	CleanupDatabaseRecords(ctx context.Context, id int) error
 
 	// 工具函数
@@ -57,8 +58,8 @@ type AidedUdpService interface {
 
 type aidedUdpService struct {
 	*service.Service
-	wafformatter  WafFormatterService
-	cdn           flexCdn.CdnService
+	wafformatter waf2.WafFormatterService
+	cdn          flexCdn.CdnService
 	proxy         flexCdn.ProxyService
 	globalRep     waf.GlobalLimitRepository
 	udpRepository waf.UdpForWardingRepository
@@ -66,7 +67,7 @@ type aidedUdpService struct {
 
 func NewAidedUdpService(
 	service *service.Service,
-	wafformatter WafFormatterService,
+	wafformatter waf2.WafFormatterService,
 	cdn flexCdn.CdnService,
 	proxy flexCdn.ProxyService,
 	globalRep waf.GlobalLimitRepository,
@@ -86,9 +87,9 @@ func NewAidedUdpService(
 // 该函数验证以下内容:
 // 1. 验证 WAF 端口数量限制(防止超出配额)
 // 2. 验证端口号是否已被占用(确保端口唯一性)
-func (s *aidedUdpService) ValidateAddRequest(ctx context.Context, req *v1.UdpForwardingRequest, require RequireResponse) error {
+func (s *aidedUdpService) ValidateAddRequest(ctx context.Context, req *v1.UdpForwardingRequest, require waf2.RequireResponse) error {
 	// 验证端口数量限制
-	if err := s.wafformatter.validateWafPortCount(ctx, require.HostId); err != nil {
+	if err := s.wafformatter.ValidateWafPortCount(ctx, require.HostId); err != nil {
 		return fmt.Errorf("端口数量验证失败: %w", err)
 	}
 
@@ -102,7 +103,7 @@ func (s *aidedUdpService) ValidateAddRequest(ctx context.Context, req *v1.UdpFor
 
 // ValidateEditRequest 验证编辑 UDP 转发请求的合法性
 // 该函数仅在端口发生变更时才验证端口冲突,提高性能并避免不必要的检查
-func (s *aidedUdpService) ValidateEditRequest(ctx context.Context, req *v1.UdpForwardingRequest, require RequireResponse, oldData *model.UdpForWarding) error {
+func (s *aidedUdpService) ValidateEditRequest(ctx context.Context, req *v1.UdpForwardingRequest, require waf2.RequireResponse, oldData *model.UdpForWarding) error {
 	// 只有端口发生变更时才需要验证端口冲突
 	if oldData.Port != req.UdpForwardingData.Port {
 		if err := s.wafformatter.VerifyPort(ctx, "udp", int64(req.UdpForwardingData.Id), req.UdpForwardingData.Port, int64(require.HostId), ""); err != nil {
@@ -142,7 +143,7 @@ func (s *aidedUdpService) CreateCdnWebsite(ctx context.Context, formData v1.Webs
 // 1. 端口变更 - 更新网站监听配置
 // 2. 名称变更 - 更新网站基本信息
 // 3. 代理协议变更 - 开启/关闭 Proxy Protocol
-func (s *aidedUdpService) UpdateCdnConfiguration(ctx context.Context, req *v1.UdpForwardingRequest, oldData *model.UdpForWarding, require RequireResponse, formData v1.WebsiteSend) error {
+func (s *aidedUdpService) UpdateCdnConfiguration(ctx context.Context, req *v1.UdpForwardingRequest, oldData *model.UdpForWarding, require waf2.RequireResponse, formData v1.WebsiteSend) error {
 	// 更新网站端口
 	if oldData.Port != req.UdpForwardingData.Port {
 		if err := s.cdn.EditServerType(ctx, v1.EditWebsite{
@@ -223,7 +224,7 @@ func (s *aidedUdpService) AddOriginsToWebsite(ctx context.Context, req *v1.UdpFo
 // 2. 删除不再需要的后端服务器
 // 3. 更新源站ID映射关系
 func (s *aidedUdpService) UpdateOriginServers(ctx context.Context, req *v1.UdpForwardingRequest, oldData *model.UdpForWarding, ipData *model.UdpForwardingRule) error {
-	addOrigins, delOrigins := s.wafformatter.findIpDifferences(ipData.BackendList, req.UdpForwardingData.BackendList)
+	addOrigins, delOrigins := s.wafformatter.FindIpDifferences(ipData.BackendList, req.UdpForwardingData.BackendList)
 
 	// 添加新源站
 	addedIds := make(map[string]int64)
@@ -364,7 +365,7 @@ func (s *aidedUdpService) ProcessDeleteIpWhitelist(ctx context.Context, id int)
 // 1. 获取全局配置信息(用户、主机、网关等)
 // 2. 构建 UDP 代理的监听配置 JSON
 // 3. 组装 CDN 创建网站的表单数据
-func (s *aidedUdpService) PrepareWafData(ctx context.Context, req *v1.UdpForwardingRequest) (RequireResponse, v1.WebsiteSend, error) {
+func (s *aidedUdpService) PrepareWafData(ctx context.Context, req *v1.UdpForwardingRequest) (waf2.RequireResponse, v1.WebsiteSend, error) {
 	// 获取全局配置信息,包括用户信息、网关IP等
 	require, err := s.wafformatter.Require(ctx, v1.GlobalRequire{
 		HostId:  req.HostId,
@@ -372,18 +373,18 @@ func (s *aidedUdpService) PrepareWafData(ctx context.Context, req *v1.UdpForward
 		Comment: req.UdpForwardingData.Comment,
 	})
 	if err != nil {
-		return RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("获取全局配置信息失败: %w", err)
+		return waf2.RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("获取全局配置信息失败: %w", err)
 	}
 
 	// 验证实例配置是否完整
 	if require.Uid == 0 {
-		return RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("请先配置实例,确保用户信息和网关配置正确")
+		return waf2.RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("请先配置实例,确保用户信息和网关配置正确")
 	}
 
 	// 构建 UDP 监听配置
 	udpConfig, err := s.BuildUdpListenConfig(require.GatewayIps, req.UdpForwardingData.Port)
 	if err != nil {
-		return RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("构建 UDP 监听配置失败: %w", err)
+		return waf2.RequireResponse{}, v1.WebsiteSend{}, fmt.Errorf("构建 UDP 监听配置失败: %w", err)
 	}
 
 	// 组装 CDN 创建网站的表单数据
@@ -445,7 +446,7 @@ func (s *aidedUdpService) BuildUdpListenConfig(gatewayIps []string, port string)
 
 // BuildUdpForwardingModel 构建 UDP 转发主记录模型
 // 该函数将请求数据转换为数据库模型,包含主机、CDN网站、端口等信息
-func (s *aidedUdpService) BuildUdpForwardingModel(req *v1.UdpForwardingDataRequest, ruleId int, require RequireResponse) *model.UdpForWarding {
+func (s *aidedUdpService) BuildUdpForwardingModel(req *v1.UdpForwardingDataRequest, ruleId int, require waf2.RequireResponse) *model.UdpForWarding {
 	return &model.UdpForWarding{
 		HostId:   require.HostId,
 		CdnWebId: ruleId,
@@ -457,7 +458,7 @@ func (s *aidedUdpService) BuildUdpForwardingModel(req *v1.UdpForwardingDataReque
 
 // BuildUdpRuleModel 构建 UDP 转发规则记录模型
 // 该函数构建包含后端服务器列表和 CDN 源站ID映射的规则记录
-func (s *aidedUdpService) BuildUdpRuleModel(reqData *v1.UdpForwardingDataRequest, require RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.UdpForwardingRule {
+func (s *aidedUdpService) BuildUdpRuleModel(reqData *v1.UdpForwardingDataRequest, require waf2.RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.UdpForwardingRule {
 	return &model.UdpForwardingRule{
 		Uid:          require.Uid,
 		HostId:       require.HostId,
@@ -469,7 +470,7 @@ func (s *aidedUdpService) BuildUdpRuleModel(reqData *v1.UdpForwardingDataRequest
 
 // SaveToDatabase 保存 UDP 转发配置到数据库
 // 该函数分别保存主记录(基本信息)和规则记录(后端服务器和源站ID映射)
-func (s *aidedUdpService) SaveToDatabase(ctx context.Context, req *v1.UdpForwardingRequest, require RequireResponse, udpId int64, cdnOriginIds map[string]int64) (int, error) {
+func (s *aidedUdpService) SaveToDatabase(ctx context.Context, req *v1.UdpForwardingRequest, require waf2.RequireResponse, udpId int64, cdnOriginIds map[string]int64) (int, error) {
 	// 保存主记录
 	udpModel := s.BuildUdpForwardingModel(&req.UdpForwardingData, int(udpId), require)
 	id, err := s.udpRepository.AddUdpForwarding(ctx, udpModel)
@@ -488,7 +489,7 @@ func (s *aidedUdpService) SaveToDatabase(ctx context.Context, req *v1.UdpForward
 
 // UpdateDatabaseRecords 更新数据库记录
 // 该函数更新 UDP 转发的主记录和规则记录,同步最新的配置变更
-func (s *aidedUdpService) UpdateDatabaseRecords(ctx context.Context, req *v1.UdpForwardingRequest, oldData *model.UdpForWarding, require RequireResponse, ipData *model.UdpForwardingRule) error {
+func (s *aidedUdpService) UpdateDatabaseRecords(ctx context.Context, req *v1.UdpForwardingRequest, oldData *model.UdpForWarding, require waf2.RequireResponse, ipData *model.UdpForwardingRule) error {
 	// 更新主记录
 	udpModel := s.BuildUdpForwardingModel(&req.UdpForwardingData, oldData.CdnWebId, require)
 	udpModel.Id = req.UdpForwardingData.Id

+ 8 - 7
internal/service/api/waf/udpforwarding.go → internal/service/api/waf/udp/udpforwarding.go

@@ -1,4 +1,4 @@
-package waf
+package udp
 
 import (
 	"context"
@@ -9,6 +9,7 @@ import (
 	"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"
+	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
 	"golang.org/x/sync/errgroup"
 	"sort"
 )
@@ -29,7 +30,7 @@ func NewUdpForWardingService(
 	crawler service.CrawlerService,
 	globalRep waf.GlobalLimitRepository,
 	hostRep repository.HostRepository,
-	wafformatter WafFormatterService,
+	wafformatter waf2.WafFormatterService,
 	cdn flexCdn.CdnService,
 	proxy flexCdn.ProxyService,
 	aidedUdp AidedUdpService,
@@ -57,11 +58,11 @@ type udpForWardingService struct {
 	parser                  service.ParserService
 	crawler                 service.CrawlerService
 	globalRep               waf.GlobalLimitRepository
-	hostRep                 repository.HostRepository
-	wafformatter            WafFormatterService
-	cdn                     flexCdn.CdnService
-	proxy                   flexCdn.ProxyService
-	aidedUdp                AidedUdpService
+	hostRep      repository.HostRepository
+	wafformatter waf2.WafFormatterService
+	cdn          flexCdn.CdnService
+	proxy    flexCdn.ProxyService
+	aidedUdp AidedUdpService
 }
 
 

+ 40 - 38
internal/service/api/waf/aidedweb.go → internal/service/api/waf/web/aidedweb.go

@@ -1,9 +1,11 @@
-package waf
+package web
 
 import (
 	"context"
 	"encoding/json"
 	"fmt"
+	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
 	"net"
 
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
@@ -16,7 +18,7 @@ import (
 // AidedWebService Web转发辅助服务接口
 type AidedWebService interface {
 	// 验证相关
-	ValidateAddRequest(ctx context.Context, req *v1.WebForwardingRequest, require RequireResponse) error
+	ValidateAddRequest(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse) error
 	ValidateEditRequest(ctx context.Context, req *v1.WebForwardingRequest) error
 	ValidateDeletePermission(oldHostId int, hostId int) error
 	
@@ -36,15 +38,15 @@ type AidedWebService interface {
 	ConfigureWafFirewall(ctx context.Context, webId int64, groupId int) error
 	
 	// 异步任务处理
-	ProcessAsyncTasks(ctx context.Context, req *v1.WebForwardingRequest, require RequireResponse)
+	ProcessAsyncTasks(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse)
 	ProcessIpWhitelistChanges(ctx context.Context, req *v1.WebForwardingRequest, ipData *model.WebForwardingRule) error
 	ProcessDeleteIpWhitelist(ctx context.Context, id int) error
-	ProcessDomainWhitelistChanges(ctx context.Context, req *v1.WebForwardingRequest, oldData *model.WebForwarding, require RequireResponse) error
+	ProcessDomainWhitelistChanges(ctx context.Context, req *v1.WebForwardingRequest, oldData *model.WebForwarding, require common.RequireResponse) error
 	ProcessDeleteDomainWhitelist(ctx context.Context, oldData *model.WebForwarding, uid int) error
 	
 	// 数据库操作
-	SaveToDatabase(ctx context.Context, req *v1.WebForwardingRequest, require RequireResponse, webId int64, cdnOriginIds map[string]int64) (int, error)
-	UpdateDatabaseRecords(ctx context.Context, req *v1.WebForwardingRequest, require RequireResponse, ipData *model.WebForwardingRule) error
+	SaveToDatabase(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse, webId int64, cdnOriginIds map[string]int64) (int, error)
+	UpdateDatabaseRecords(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse, ipData *model.WebForwardingRule) error
 	CleanupDatabaseRecords(ctx context.Context, id int) error
 	
 	// SSL证书管理
@@ -53,7 +55,7 @@ type AidedWebService interface {
 	CleanupSSLCertificate(ctx context.Context, oldData *model.WebForwarding) error
 	
 	// 数据准备辅助函数
-	PrepareWafData(ctx context.Context, req *v1.WebForwardingRequest) (RequireResponse, v1.Website, error)
+	PrepareWafData(ctx context.Context, req *v1.WebForwardingRequest) (common.RequireResponse, v1.Website, error)
 	BuildProxyConfig(ctx context.Context, req *v1.WebForwardingRequest, gatewayIps []string) (v1.TypeJSON, error)
 	BulidFormData(ctx context.Context, formData v1.Website) (v1.WebsiteSend, error)
 	
@@ -62,8 +64,8 @@ type AidedWebService interface {
 	IsHttpsProtocol(isHttps int) bool
 	
 	// 模型构建辅助函数
-	BuildWebForwardingModel(req *v1.WebForwardingDataRequest, ruleId int, require RequireResponse) *model.WebForwarding
-	BuildWebRuleModel(reqData *v1.WebForwardingDataRequest, require RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.WebForwardingRule
+	BuildWebForwardingModel(req *v1.WebForwardingDataRequest, ruleId int, require common.RequireResponse) *model.WebForwarding
+	BuildWebRuleModel(reqData *v1.WebForwardingDataRequest, require common.RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.WebForwardingRule
 	
 	// 列表差异处理辅助函数
 	FindDifferenceList(oldList, newList []v1.BackendList) (added, removed []v1.BackendList)
@@ -79,14 +81,14 @@ type AidedWebService interface {
 func NewAidedWebService(
 	service *service.Service,
 	webForwardingRepository waf.WebForwardingRepository,
-	wafformatter WafFormatterService,
+	wafformatter common.WafFormatterService,
 	sslCert flexCdn.SslCertService,
 	cdn flexCdn.CdnService,
 	proxy flexCdn.ProxyService,
 	websocket flexCdn.WebsocketService,
-	cc CcService,
-	ccIpList CcIpListService,
-	gatewayIp GatewayipService,
+	cc waf2.CcService,
+	ccIpList waf2.CcIpListService,
+	gatewayIp common.GatewayipService,
 	globalLimitRep waf.GlobalLimitRepository,
 ) AidedWebService {
 	return &aidedWebService{
@@ -107,15 +109,15 @@ func NewAidedWebService(
 type aidedWebService struct {
 	*service.Service
 	webForwardingRepository waf.WebForwardingRepository
-	wafformatter            WafFormatterService
+	wafformatter            common.WafFormatterService
 	sslCert                 flexCdn.SslCertService
 	cdn                     flexCdn.CdnService
 	proxy                   flexCdn.ProxyService
-	websocket               flexCdn.WebsocketService
-	cc                      CcService
-	ccIpList                CcIpListService
-	gatewayIp               GatewayipService
-	globalLimitRep          waf.GlobalLimitRepository
+	websocket      flexCdn.WebsocketService
+	cc             waf2.CcService
+	ccIpList       waf2.CcIpListService
+	gatewayIp      common.GatewayipService
+	globalLimitRep waf.GlobalLimitRepository
 }
 
 const (
@@ -134,7 +136,7 @@ const (
 
 // BuildWebForwardingModel 辅助函数,用于构建通用的 WebForwarding 模型
 // ruleId 是从 WAF 系统获取的 ID
-func (s *aidedWebService) BuildWebForwardingModel(req *v1.WebForwardingDataRequest, ruleId int, require RequireResponse) *model.WebForwarding {
+func (s *aidedWebService) BuildWebForwardingModel(req *v1.WebForwardingDataRequest, ruleId int, require common.RequireResponse) *model.WebForwarding {
 	return &model.WebForwarding{
 		HostId:          require.HostId,
 		CdnWebId:        ruleId,
@@ -157,7 +159,7 @@ func (s *aidedWebService) BuildWebForwardingModel(req *v1.WebForwardingDataReque
 }
 
 // BuildWebRuleModel 构建WebForwardingRule模型
-func (s *aidedWebService) BuildWebRuleModel(reqData *v1.WebForwardingDataRequest, require RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.WebForwardingRule {
+func (s *aidedWebService) BuildWebRuleModel(reqData *v1.WebForwardingDataRequest, require common.RequireResponse, localDbId int, cdnOriginIds map[string]int64) *model.WebForwardingRule {
 	return &model.WebForwardingRule{
 		Uid:          require.Uid,
 		HostId:       require.HostId,
@@ -168,7 +170,7 @@ func (s *aidedWebService) BuildWebRuleModel(reqData *v1.WebForwardingDataRequest
 }
 
 // getRequire 获取前置配置
-func (s *aidedWebService) getRequire (ctx context.Context, req *v1.WebForwardingRequest) (RequireResponse, error) {
+func (s *aidedWebService) getRequire (ctx context.Context, req *v1.WebForwardingRequest) (common.RequireResponse, error) {
 	// 1. 获取基础配置
 	require, err := s.wafformatter.Require(ctx, v1.GlobalRequire{
 		HostId:  req.HostId,
@@ -176,10 +178,10 @@ func (s *aidedWebService) getRequire (ctx context.Context, req *v1.WebForwarding
 		Comment: req.WebForwardingData.Comment,
 	})
 	if err != nil {
-		return RequireResponse{},  fmt.Errorf("获取WAF前置配置失败: %w", err)
+		return common.RequireResponse{},  fmt.Errorf("获取WAF前置配置失败: %w", err)
 	}
 	if require.Uid == 0 {
-		return RequireResponse{},  fmt.Errorf("请先配置实例")
+		return common.RequireResponse{},  fmt.Errorf("请先配置实例")
 	}
 
 	return require, nil
@@ -188,18 +190,18 @@ func (s *aidedWebService) getRequire (ctx context.Context, req *v1.WebForwarding
 
 // PrepareWafData 准备WAF数据
 // 职责:协调整个流程,负责获取前置配置和组装最终的 formData。
-func (s *aidedWebService) PrepareWafData(ctx context.Context, req *v1.WebForwardingRequest) (RequireResponse, v1.Website, error) {
+func (s *aidedWebService) PrepareWafData(ctx context.Context, req *v1.WebForwardingRequest) (common.RequireResponse, v1.Website, error) {
 
 	// 1. 获取前置配置
 	require, err := s.getRequire(ctx, req)
 	if err != nil {
-		return RequireResponse{}, v1.Website{}, err
+		return common.RequireResponse{}, v1.Website{}, err
 	}
 
 	// 2. 调用辅助函数,构建核心的代理配置 (将复杂逻辑封装起来)
 	byteData, err := s.BuildProxyConfig(ctx, req, require.GatewayIps)
 	if err != nil {
-		return RequireResponse{}, v1.Website{}, err // 错误信息在辅助函数中已经包装好了
+		return common.RequireResponse{}, v1.Website{}, err // 错误信息在辅助函数中已经包装好了
 	}
 
 
@@ -216,7 +218,7 @@ func (s *aidedWebService) PrepareWafData(ctx context.Context, req *v1.WebForward
 		})
 		serverJson, err = json.Marshal(serverName)
 		if err != nil {
-			return RequireResponse{}, v1.Website{}, err
+			return common.RequireResponse{}, v1.Website{}, err
 		}
 	}
 
@@ -347,7 +349,7 @@ func (s *aidedWebService) WashDifferentIp(newIpList []string, oldIpList []string
 	oldAllowIps := s.filterValidIpsConcurrently(oldIpList)
 	newAllowIps := s.filterValidIpsConcurrently(newIpList)
 
-	addedDenyIps, removedDenyIps = s.wafformatter.findIpDifferences(oldAllowIps, newAllowIps)
+	addedDenyIps, removedDenyIps = s.wafformatter.FindIpDifferences(oldAllowIps, newAllowIps)
 	return addedDenyIps, removedDenyIps
 }
 
@@ -536,8 +538,8 @@ func (s *aidedWebService) IsHttpsProtocol(httpsFlag int) bool {
 }
 
 // ValidateAddRequest 验证添加请求
-func (s *aidedWebService) ValidateAddRequest(ctx context.Context, req *v1.WebForwardingRequest, require RequireResponse) error {
-	if err := s.wafformatter.validateWafDomainCount(ctx, v1.GlobalRequire{
+func (s *aidedWebService) ValidateAddRequest(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse) error {
+	if err := s.wafformatter.ValidateWafDomainCount(ctx, v1.GlobalRequire{
 		HostId:  req.HostId,
 		Domain:  req.WebForwardingData.Domain,
 		Comment: req.WebForwardingData.Comment,
@@ -546,7 +548,7 @@ func (s *aidedWebService) ValidateAddRequest(ctx context.Context, req *v1.WebFor
 		return fmt.Errorf("域名数量验证失败: %w", err)
 	}
 
-	if err := s.wafformatter.validateWafPortCount(ctx, require.HostId); err != nil {
+	if err := s.wafformatter.ValidateWafPortCount(ctx, require.HostId); err != nil {
 		return fmt.Errorf("端口数量验证失败: %w", err)
 	}
 
@@ -560,7 +562,7 @@ func (s *aidedWebService) ValidateAddRequest(ctx context.Context, req *v1.WebFor
 
 // ValidateEditRequest 验证编辑请求
 func (s *aidedWebService) ValidateEditRequest(ctx context.Context, req *v1.WebForwardingRequest) error {
-	if err := s.wafformatter.validateWafDomainCount(ctx, v1.GlobalRequire{
+	if err := s.wafformatter.ValidateWafDomainCount(ctx, v1.GlobalRequire{
 		HostId:  req.HostId,
 		Domain:  req.WebForwardingData.Domain,
 		Comment: req.WebForwardingData.Comment,
@@ -830,7 +832,7 @@ func (s *aidedWebService) ConfigureWafFirewall(ctx context.Context, webId int64,
 }
 
 // ProcessAsyncTasks 处理异步任务
-func (s *aidedWebService) ProcessAsyncTasks(ctx context.Context, req *v1.WebForwardingRequest, require RequireResponse) {
+func (s *aidedWebService) ProcessAsyncTasks(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse) {
 	// 域名白名单处理
 	if req.WebForwardingData.Domain != "" {
 		go func() {
@@ -890,7 +892,7 @@ func (s *aidedWebService) ProcessIpWhitelistChanges(ctx context.Context, req *v1
 	}
 
 	// 查找IP差异
-	addedIps, removedIps := s.wafformatter.findIpDifferences(oldIps, newIps)
+	addedIps, removedIps := s.wafformatter.FindIpDifferences(oldIps, newIps)
 
 	// 异步处理添加的IP
 	if len(addedIps) > 0 {
@@ -947,7 +949,7 @@ func (s *aidedWebService) ProcessDeleteIpWhitelist(ctx context.Context, id int)
 }
 
 // ProcessDomainWhitelistChanges 处理域名白名单变更
-func (s *aidedWebService) ProcessDomainWhitelistChanges(ctx context.Context, req *v1.WebForwardingRequest, oldData *model.WebForwarding, require RequireResponse) error {
+func (s *aidedWebService) ProcessDomainWhitelistChanges(ctx context.Context, req *v1.WebForwardingRequest, oldData *model.WebForwarding, require common.RequireResponse) error {
 	if oldData.Domain != req.WebForwardingData.Domain {
 		firstIp, err := s.gatewayIp.GetGatewayipByHostIdFirst(ctx, int64(req.HostId), int64(req.Uid))
 		if err != nil {
@@ -1006,7 +1008,7 @@ func (s *aidedWebService) ProcessDeleteDomainWhitelist(ctx context.Context, oldD
 }
 
 // SaveToDatabase 保存到数据库
-func (s *aidedWebService) SaveToDatabase(ctx context.Context, req *v1.WebForwardingRequest, require RequireResponse, webId int64, cdnOriginIds map[string]int64) (int, error) {
+func (s *aidedWebService) SaveToDatabase(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse, webId int64, cdnOriginIds map[string]int64) (int, error) {
 	webModel := s.BuildWebForwardingModel(&req.WebForwardingData, int(webId), require)
 
 	id, err := s.webForwardingRepository.AddWebForwarding(ctx, webModel)
@@ -1023,7 +1025,7 @@ func (s *aidedWebService) SaveToDatabase(ctx context.Context, req *v1.WebForward
 }
 
 // UpdateDatabaseRecords 更新数据库记录
-func (s *aidedWebService) UpdateDatabaseRecords(ctx context.Context, req *v1.WebForwardingRequest, require RequireResponse, ipData *model.WebForwardingRule) error {
+func (s *aidedWebService) UpdateDatabaseRecords(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse, ipData *model.WebForwardingRule) error {
 	webModel := s.BuildWebForwardingModel(&req.WebForwardingData, req.WebForwardingData.CdnWebId, require)
 	webModel.Id = req.WebForwardingData.Id
 

+ 15 - 13
internal/service/api/waf/webforwarding.go → internal/service/api/waf/web/webforwarding.go

@@ -1,4 +1,4 @@
-package waf
+package web
 
 import (
 	"context"
@@ -8,6 +8,8 @@ import (
 	"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"
+	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/rabbitmq"
 	"golang.org/x/sync/errgroup"
 	"sort"
@@ -27,17 +29,17 @@ func NewWebForwardingService(
 	webForwardingRepository waf.WebForwardingRepository,
 	crawler service.CrawlerService,
 	parser service.ParserService,
-	wafformatter WafFormatterService,
+	wafformatter common.WafFormatterService,
 	aoDun service.AoDunService,
 	mq *rabbitmq.RabbitMQ,
-	gatewayIp GatewayipService,
+	gatewayIp common.GatewayipService,
 	globalLimitRep waf.GlobalLimitRepository,
 	cdn flexCdn.CdnService,
 	proxy flexCdn.ProxyService,
 	sslCert flexCdn.SslCertService,
 	websocket flexCdn.WebsocketService,
-	cc CcService,
-	ccIpList CcIpListService,
+	cc waf2.CcService,
+	ccIpList waf2.CcIpListService,
 	aidedWeb AidedWebService,
 ) WebForwardingService {
 	return &webForwardingService{
@@ -67,18 +69,18 @@ type webForwardingService struct {
 	webForwardingRepository waf.WebForwardingRepository
 	required                service.RequiredService
 	parser                  service.ParserService
-	crawler                 service.CrawlerService
-	wafformatter            WafFormatterService
-	aoDun                   service.AoDunService
-	mq                      *rabbitmq.RabbitMQ
-	gatewayIp      GatewayipService
-	cdn            flexCdn.CdnService
+	crawler      service.CrawlerService
+	wafformatter common.WafFormatterService
+	aoDun        service.AoDunService
+	mq        *rabbitmq.RabbitMQ
+	gatewayIp common.GatewayipService
+	cdn       flexCdn.CdnService
 	globalLimitRep waf.GlobalLimitRepository
 	proxy          flexCdn.ProxyService
 	sslCert        flexCdn.SslCertService
 	websocket flexCdn.WebsocketService
-	cc        CcService
-	ccIpList  CcIpListService
+	cc        waf2.CcService
+	ccIpList  waf2.CcIpListService
 	aidedWeb  AidedWebService
 }
 

+ 11 - 8
internal/task/waf.go

@@ -9,6 +9,9 @@ import (
 	"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/waf"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/tcp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/udp"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/web"
 	"github.com/hashicorp/go-multierror"
 	"go.uber.org/zap"
 	"sync"
@@ -43,9 +46,9 @@ func NewWafTask(
 	expiredRep repository.ExpiredRepository,
 	task *Task,
 	gatewayIpRep waf2.GatewayipRepository,
-	tcp waf.TcpforwardingService,
-	udp waf.UdpForWardingService,
-	web waf.WebForwardingService,
+	tcp tcp.TcpforwardingService,
+	udp udp.UdpForWardingService,
+	web web.WebForwardingService,
 	buildAoDun waf.BuildAudunService,
 	zzyBgp waf.ZzybgpService,
 	wafOps admin.WafOperationsService,
@@ -78,11 +81,11 @@ type wafTask struct {
 	hostRep          repository.HostRepository
 	globalLimitRep   waf2.GlobalLimitRepository
 	expiredRep       repository.ExpiredRepository
-	gatewayIpRep     waf2.GatewayipRepository
-	tcp              waf.TcpforwardingService
-	udp              waf.UdpForWardingService
-	web              waf.WebForwardingService
-	buildAoDun       waf.BuildAudunService
+	gatewayIpRep waf2.GatewayipRepository
+	tcp          tcp.TcpforwardingService
+	udp          udp.UdpForWardingService
+	web web.WebForwardingService
+	buildAoDun waf.BuildAudunService
 	zzyBgp waf.ZzybgpService
 	wafOps admin.WafOperationsService
 }