Browse Source

refactor(waf): 重构 WafLog 服务

- 将 WafLog 服务从 admin模块移至 waf 模块
- 新增 WaflogService 接口和 waflogService 结构体
- 实现 PublishIpWafLogTask 方法用于发布 WafLog 任务消息- 更新相关 handler 和 service 的引用
- 移除 admin 模块中冗余的 WafLog 服务代码
fusu 10 hours ago
parent
commit
091f3719a5

+ 2 - 0
cmd/server/wire/wire.go

@@ -103,10 +103,12 @@ var serviceSet = wire.NewSet(
 	waf.NewCdnLogService,
 	waf.NewBuildAudunService,
 	waf.NewZzybgpService,
+	waf.NewWaflogService,
 	admin.NewLogService,
 	admin.NewWafLogService,
 	admin.NewWafLogDataCleanService,
 	admin.NewWafManageService,
+	admin.NewWafOperationsService,
 )
 
 var handlerSet = wire.NewSet(

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

@@ -76,10 +76,8 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	gatewayipRepository := waf.NewGatewayipRepository(repositoryRepository)
 	logRepository := repository.NewLogRepository(repositoryRepository)
 	logService := service.NewLogService(serviceService, logRepository)
-	wafLogRepository := admin.NewWafLogRepository(repositoryRepository)
-	wafLogDataCleanService := admin2.NewWafLogDataCleanService(serviceService)
-	wafLogService := admin2.NewWafLogService(serviceService, wafLogRepository, globalLimitRepository, rabbitMQ, wafLogDataCleanService)
-	gatewayipService := waf2.NewGatewayipService(serviceService, gatewayipRepository, hostService, logService, wafLogService)
+	waflogService := waf2.NewWaflogService(serviceService, rabbitMQ)
+	gatewayipService := waf2.NewGatewayipService(serviceService, gatewayipRepository, hostService, logService, waflogService)
 	requestService := service.NewRequestService(serviceService)
 	cdnRepository := flexCdn.NewCdnRepository(repositoryRepository)
 	cdnService := flexCdn2.NewCdnService(serviceService, viperViper, requestService, cdnRepository)
@@ -94,34 +92,39 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	ccIpListService := waf2.NewCcIpListService(serviceService, ccIpListRepository, cdnService, webForwardingRepository)
 	ccService := waf2.NewCcService(serviceService, ccRepository, webForwardingRepository, cdnService, ccIpListService)
 	webForwardingService := waf2.NewWebForwardingService(serviceService, requiredService, webForwardingRepository, crawlerService, parserService, wafFormatterService, aoDunService, rabbitMQ, gatewayipService, globalLimitRepository, cdnService, proxyService, sslCertService, websocketService, ccService, ccIpListService)
-	webForwardingHandler := waf3.NewWebForwardingHandler(handlerHandler, webForwardingService, wafLogService)
+	webForwardingHandler := waf3.NewWebForwardingHandler(handlerHandler, webForwardingService, waflogService)
 	tcpforwardingService := waf2.NewTcpforwardingService(serviceService, tcpforwardingRepository, parserService, requiredService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService)
-	tcpforwardingHandler := waf3.NewTcpforwardingHandler(handlerHandler, tcpforwardingService, wafLogService)
+	tcpforwardingHandler := waf3.NewTcpforwardingHandler(handlerHandler, tcpforwardingService, waflogService)
 	udpForWardingService := waf2.NewUdpForWardingService(serviceService, udpForWardingRepository, requiredService, parserService, crawlerService, globalLimitRepository, hostRepository, wafFormatterService, cdnService, proxyService)
-	udpForWardingHandler := waf3.NewUdpForWardingHandler(handlerHandler, udpForWardingService, wafLogService)
+	udpForWardingHandler := waf3.NewUdpForWardingHandler(handlerHandler, udpForWardingService, waflogService)
 	allowAndDenyIpRepository := waf.NewAllowAndDenyIpRepository(repositoryRepository)
 	allowAndDenyIpService := waf2.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)
-	globalLimitHandler := waf3.NewGlobalLimitHandler(handlerHandler, globalLimitService, wafLogService)
+	globalLimitHandler := waf3.NewGlobalLimitHandler(handlerHandler, globalLimitService, waflogService)
 	adminRepository := admin.NewAdminRepository(repositoryRepository)
 	adminService := admin2.NewAdminService(serviceService, adminRepository)
 	adminHandler := admin3.NewAdminHandler(handlerHandler, adminService)
 	gatewayIpAdminRepository := admin.NewGatewayIpAdminRepository(repositoryRepository)
 	gatewayIpAdminService := admin2.NewGatewayIpAdminService(serviceService, gatewayIpAdminRepository, viperViper, requestService)
 	gatewayIpAdminHandler := admin3.NewGatewayIpAdminHandler(handlerHandler, gatewayIpAdminService)
-	allowAndDenyIpHandler := waf3.NewAllowAndDenyIpHandler(handlerHandler, allowAndDenyIpService, wafLogService)
-	ccHandler := waf3.NewCcHandler(handlerHandler, ccService, wafLogService)
-	ccIpListHandler := waf3.NewCcIpListHandler(handlerHandler, ccIpListService, wafLogService)
+	allowAndDenyIpHandler := waf3.NewAllowAndDenyIpHandler(handlerHandler, allowAndDenyIpService, waflogService)
+	ccHandler := waf3.NewCcHandler(handlerHandler, ccService, waflogService)
+	ccIpListHandler := waf3.NewCcIpListHandler(handlerHandler, ccIpListService, waflogService)
 	cdnLogService := waf2.NewCdnLogService(serviceService, tcpforwardingRepository, udpForWardingRepository, webForwardingRepository, cdnService, ccIpListService)
 	cdnLogHandler := waf3.NewCdnLogHandler(handlerHandler, cdnLogService)
 	adminLogRepository := admin.NewLogRepository(repositoryRepository)
 	adminLogService := admin2.NewLogService(serviceService, adminLogRepository)
 	logHandler := admin3.NewLogHandler(handlerHandler, adminLogService)
+	wafLogRepository := admin.NewWafLogRepository(repositoryRepository)
+	wafLogDataCleanService := admin2.NewWafLogDataCleanService(serviceService)
+	wafLogService := admin2.NewWafLogService(serviceService, wafLogRepository, globalLimitRepository, wafLogDataCleanService)
 	wafLogHandler := admin3.NewWafLogHandler(handlerHandler, wafLogService)
 	wafManageRepository := admin.NewWafManageRepository(repositoryRepository)
-	wafManageService := admin2.NewWafManageService(serviceService, wafManageRepository)
+	expiredRepository := repository.NewExpiredRepository(repositoryRepository)
+	wafOperationsService := admin2.NewWafOperationsService(serviceService, webForwardingRepository, tcpforwardingRepository, udpForWardingRepository, cdnService, hostRepository, globalLimitRepository, expiredRepository, gatewayipRepository, tcpforwardingService, udpForWardingService, webForwardingService, buildAudunService, zzybgpService)
+	wafManageService := admin2.NewWafManageService(serviceService, wafManageRepository, globalLimitRepository, wafOperationsService, hostRepository)
 	wafManageHandler := admin3.NewWafManageHandler(handlerHandler, wafManageService)
 	httpServer := server.NewHTTPServer(logger, viperViper, jwtJWT, syncedEnforcer, limiterLimiter, handlerFunc, userHandler, gameShieldHandler, gameShieldBackendHandler, webForwardingHandler, tcpforwardingHandler, udpForWardingHandler, globalLimitHandler, adminHandler, gatewayIpAdminHandler, allowAndDenyIpHandler, ccHandler, logService, ccIpListHandler, cdnLogHandler, logHandler, wafLogHandler, wafManageHandler)
 	appApp := newApp(httpServer)
@@ -134,7 +137,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.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, waf2.NewCcService, service.NewLogService, waf2.NewGatewayipService, waf2.NewCcIpListService, waf2.NewCdnLogService, waf2.NewBuildAudunService, waf2.NewZzybgpService, admin2.NewLogService, admin2.NewWafLogService, admin2.NewWafLogDataCleanService, admin2.NewWafManageService)
+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, 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 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)
 

+ 1 - 0
cmd/task/wire/wire.go

@@ -103,6 +103,7 @@ var serviceSet = wire.NewSet(
 	waf.NewCcIpListService,
 	waf.NewBuildAudunService,
 	waf.NewZzybgpService,
+	waf.NewWaflogService,
 	admin2.NewWafLogService,
 	admin2.NewWafLogDataCleanService,
 	admin2.NewWafOperationsService,

+ 6 - 5
cmd/task/wire/wire_gen.go

@@ -72,10 +72,8 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	gatewayipRepository := waf.NewGatewayipRepository(repositoryRepository)
 	logRepository := repository.NewLogRepository(repositoryRepository)
 	logService := service.NewLogService(serviceService, logRepository)
-	wafLogRepository := admin.NewWafLogRepository(repositoryRepository)
-	wafLogDataCleanService := admin2.NewWafLogDataCleanService(serviceService)
-	wafLogService := admin2.NewWafLogService(serviceService, wafLogRepository, globalLimitRepository, rabbitMQ, wafLogDataCleanService)
-	gatewayipService := waf2.NewGatewayipService(serviceService, gatewayipRepository, hostService, logService, wafLogService)
+	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)
 	proxyRepository := flexCdn.NewProxyRepository(repositoryRepository)
 	proxyService := flexCdn2.NewProxyService(serviceService, proxyRepository, cdnService)
@@ -97,6 +95,9 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	jobJob := job.NewJob(transaction, logger, sidSid, rabbitMQ)
 	userJob := job.NewUserJob(jobJob, userRepository)
 	whitelistJob := job.NewWhitelistJob(jobJob, aoDunService, wafFormatterService)
+	wafLogRepository := admin.NewWafLogRepository(repositoryRepository)
+	wafLogDataCleanService := admin2.NewWafLogDataCleanService(serviceService)
+	wafLogService := admin2.NewWafLogService(serviceService, wafLogRepository, globalLimitRepository, wafLogDataCleanService)
 	wafLogJob := job.NewWafLogJob(jobJob, wafLogService)
 	jobServer := server.NewJobServer(logger, userJob, whitelistJob, wafLogJob)
 	appApp := newApp(taskServer, jobServer)
@@ -115,7 +116,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.NewTcpforwardingService, waf2.NewUdpForWardingService, waf2.NewWebForwardingService, flexCdn2.NewProxyService, flexCdn2.NewSslCertService, flexCdn2.NewWebsocketService, waf2.NewCcService, waf2.NewGatewayipService, service.NewLogService, waf2.NewCcIpListService, waf2.NewBuildAudunService, waf2.NewZzybgpService, 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, waf2.NewWafFormatterService, flexCdn2.NewCdnService, service.NewRequestService, waf2.NewTcpforwardingService, waf2.NewUdpForWardingService, 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)
 
 // build App
 func newApp(task2 *server.TaskServer,

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

@@ -5,7 +5,6 @@ import (
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	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/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"net/http"
 )
@@ -13,13 +12,13 @@ import (
 type AllowAndDenyIpHandler struct {
 	*handler.Handler
 	allowAndDenyIpService waf.AllowAndDenyIpService
-	wafLogService         admin.WafLogService
+	wafLogService         waf.WaflogService
 }
 
 func NewAllowAndDenyIpHandler(
     handler *handler.Handler,
     allowAndDenyIpService waf.AllowAndDenyIpService,
-	wafLogService admin.WafLogService,
+	wafLogService waf.WaflogService,
 ) *AllowAndDenyIpHandler {
 	return &AllowAndDenyIpHandler{
 		Handler:      handler,

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

@@ -5,7 +5,6 @@ import (
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	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/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"net/http"
 )
@@ -13,13 +12,13 @@ import (
 type CcHandler struct {
 	*handler.Handler
 	ccService waf.CcService
-	wafLogService admin.WafLogService
+	wafLogService waf.WaflogService
 }
 
 func NewCcHandler(
     handler *handler.Handler,
     ccService waf.CcService,
-	wafLogService admin.WafLogService,
+	wafLogService waf.WaflogService,
 ) *CcHandler {
 	return &CcHandler{
 		Handler:      handler,

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

@@ -5,7 +5,6 @@ import (
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	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/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"net/http"
 )
@@ -13,13 +12,13 @@ import (
 type CcIpListHandler struct {
 	*handler.Handler
 	ccIpListService waf.CcIpListService
-	wafLogService admin.WafLogService
+	wafLogService waf.WaflogService
 }
 
 func NewCcIpListHandler(
     handler *handler.Handler,
     ccIpListService waf.CcIpListService,
-	wafLogService admin.WafLogService,
+	wafLogService waf.WaflogService,
 ) *CcIpListHandler {
 	return &CcIpListHandler{
 		Handler:      handler,

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

@@ -5,7 +5,6 @@ import (
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	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/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"net/http"
 )
@@ -13,13 +12,13 @@ import (
 type GlobalLimitHandler struct {
 	*handler.Handler
 	globalLimitService waf.GlobalLimitService
-	wafLogService      admin.WafLogService
+	wafLogService      waf.WaflogService
 }
 
 func NewGlobalLimitHandler(
 	handler *handler.Handler,
 	globalLimitService waf.GlobalLimitService,
-	wafLogService admin.WafLogService,
+	wafLogService waf.WaflogService,
 ) *GlobalLimitHandler {
 	return &GlobalLimitHandler{
 		Handler:            handler,

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

@@ -5,7 +5,6 @@ import (
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	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/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"github.com/mcuadros/go-defaults"
 	"net/http"
@@ -14,13 +13,13 @@ import (
 type TcpforwardingHandler struct {
 	*handler.Handler
 	tcpforwardingService waf.TcpforwardingService
-	wafLogService admin.WafLogService
+	wafLogService waf.WaflogService
 }
 
 func NewTcpforwardingHandler(
 	handler *handler.Handler,
 	tcpforwardingService waf.TcpforwardingService,
-	wafLogService admin.WafLogService,
+	wafLogService waf.WaflogService,
 ) *TcpforwardingHandler {
 	return &TcpforwardingHandler{
 		Handler:              handler,

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

@@ -5,7 +5,6 @@ import (
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	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/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"github.com/mcuadros/go-defaults"
 	"net/http"
@@ -14,13 +13,13 @@ import (
 type UdpForWardingHandler struct {
 	*handler.Handler
 	udpForWardingService waf.UdpForWardingService
-	wafLogService admin.WafLogService
+	wafLogService waf.WaflogService
 }
 
 func NewUdpForWardingHandler(
 	handler *handler.Handler,
 	udpForWardingService waf.UdpForWardingService,
-	wafLogService admin.WafLogService,
+	wafLogService waf.WaflogService,
 ) *UdpForWardingHandler {
 	return &UdpForWardingHandler{
 		Handler:              handler,

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

@@ -5,7 +5,6 @@ import (
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	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/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"github.com/mcuadros/go-defaults"
 	"net/http"
@@ -14,13 +13,13 @@ import (
 type WebForwardingHandler struct {
 	*handler.Handler
 	webForwardingService waf.WebForwardingService
-	wafLogService admin.WafLogService
+	wafLogService waf.WaflogService
 }
 
 func NewWebForwardingHandler(
 	handler *handler.Handler,
 	webForwardingService waf.WebForwardingService,
-	wafLogService admin.WafLogService,
+	wafLogService waf.WaflogService,
 ) *WebForwardingHandler {
 	return &WebForwardingHandler{
 		Handler:              handler,

+ 2 - 0
internal/server/http.go

@@ -199,6 +199,8 @@ func NewHTTPServer(
 			strictAuthRouter.GET("admin/wafLog/getApiDescriptions", wafLogHandler.GetApiDescriptions)
 
 			strictAuthRouter.GET("/admin/wafManage/getList", wafManageHandler.GetWafManageList)
+			strictAuthRouter.GET("/admin/wafManage/recover", wafManageHandler.RecoverWaf)
+			strictAuthRouter.GET("/admin/wafManage/syncExecuteRenewalActions", wafManageHandler.SyncExecuteRenewalActions)
 		}
 	}
 

+ 0 - 36
internal/service/admin/waflog.go

@@ -11,8 +11,6 @@ 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/pkg/excel"
-	"github.com/go-nunu/nunu-layout-advanced/pkg/rabbitmq"
-	amqp "github.com/rabbitmq/amqp091-go"
 	"go.uber.org/zap"
 	"net/http"
 	"strings"
@@ -61,7 +59,6 @@ type WafLogService interface {
 	GetWafLogList(ctx context.Context, req adminApi.SearchWafLogParams) (*v1.PaginatedResponse[model.WafLog], error)
 	AddWafLog(ctx context.Context, req adminApi.WafLog) error
 	BatchAddWafLog(ctx context.Context, reqs []*adminApi.WafLog) error
-	PublishIpWafLogTask(ctx context.Context, req adminApi.WafLog)
 	SmartExportWafLog(ctx context.Context, req adminApi.ExportWafLog, w http.ResponseWriter) error
 	GetApiDescriptions(ctx context.Context) map[string]string
 }
@@ -69,14 +66,12 @@ func NewWafLogService(
     service *service.Service,
     wafLogRepository adminRep.WafLogRepository,
 	globalLimitRepository waf.GlobalLimitRepository,
-	mq *rabbitmq.RabbitMQ,
 	wafLogDataCleanService WafLogDataCleanService,
 ) WafLogService {
 	return &wafLogService{
 		Service:        service,
 		wafLogRepository: wafLogRepository,
 		globalLimitRepository: globalLimitRepository,
-		mq : mq,
 		wafLogDataCleanService: wafLogDataCleanService,
 	}
 }
@@ -85,7 +80,6 @@ type wafLogService struct {
 	*service.Service
 	wafLogRepository adminRep.WafLogRepository
 	globalLimitRepository waf.GlobalLimitRepository
-	mq *rabbitmq.RabbitMQ
 	wafLogDataCleanService WafLogDataCleanService
 }
 func (s *wafLogService) getFirstPathSegment(path string) (segment []string, ok bool) {
@@ -200,37 +194,7 @@ func (s *wafLogService) BatchAddWafLog(ctx context.Context, reqs []*adminApi.Waf
 	return s.wafLogRepository.BatchAddWafLog(ctx, wafLogs)
 }
 
-func (s *wafLogService) PublishIpWafLogTask(ctx context.Context, req adminApi.WafLog) {
 
-	payload := &req
-
-	msgBody, err := json.Marshal(payload)
-	if err != nil {
-		s.Logger.Error("序列化 WafLog 任务消息失败", zap.Error(err), zap.Int("hostId", payload.HostId), zap.Int("uid", payload.Uid), zap.Any("req", req))
-		return
-	}
-
-	taskCfg, ok := s.mq.GetTaskConfig("waf_log")
-	if !ok {
-		s.Logger.Error("无法获取“waf_Log”任务配置")
-		return
-	}
-
-	routingKey := fmt.Sprintf("wafLog.%s", "add")
-
-	publishingMsg := amqp.Publishing{
-		ContentType:  "application/json",
-		Body:         msgBody,
-		DeliveryMode: amqp.Persistent,
-	}
-
-	err = s.mq.PublishWithCh(taskCfg.Exchange, routingKey, publishingMsg)
-	if err != nil {
-		s.Logger.Error("发布 WafLog 任务消息失败", zap.Error(err), zap.Int("hostId", payload.HostId), zap.Int("uid", payload.Uid), zap.Any("req", req))
-	} else {
-		s.Logger.Info("已成功发布 WafLog 任务消息", zap.Int("hostId", payload.HostId), zap.Int("uid", payload.Uid), zap.Any("req", req))
-	}
-}
 
 func (s *wafLogService) ExPortWafLog(ctx context.Context, req adminApi.ExportWafLog) ([]adminApi.ExportWafLogRes, error) {
 	data, err := s.wafLogRepository.ExportWafLog(ctx, req)

+ 2 - 3
internal/service/api/waf/gatewayip.go

@@ -8,7 +8,6 @@ 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/admin"
 )
 
 type GatewayipService interface {
@@ -22,7 +21,7 @@ func NewGatewayipService(
     gatewayipRepository waf.GatewayipRepository,
 	host service.HostService,
 	log service.LogService,
-	wafLogService admin.WafLogService,
+	wafLogService WaflogService,
 ) GatewayipService {
 	return &gatewayipService{
 		Service:        service,
@@ -38,7 +37,7 @@ type gatewayipService struct {
 	gatewayipRepository waf.GatewayipRepository
 	host                service.HostService
 	log                 service.LogService
-	wafLogService       admin.WafLogService
+	wafLogService       WaflogService
 }
 
 func (s *gatewayipService) GetGatewayip(ctx context.Context, id int64) (*model.Gatewayip, error) {

+ 62 - 0
internal/service/api/waf/waflog.go

@@ -0,0 +1,62 @@
+package waf
+
+import (
+	"context"
+	"encoding/json"
+	"fmt"
+	adminApi "github.com/go-nunu/nunu-layout-advanced/api/v1/admin"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/pkg/rabbitmq"
+	amqp "github.com/rabbitmq/amqp091-go"
+	"go.uber.org/zap"
+)
+
+type WaflogService interface {
+	PublishIpWafLogTask(ctx context.Context, req adminApi.WafLog)
+}
+func NewWaflogService(
+    service *service.Service,
+	mq *rabbitmq.RabbitMQ,
+) WaflogService {
+	return &waflogService{
+		Service:        service,
+		mq : mq,
+	}
+}
+
+type waflogService struct {
+	*service.Service
+	mq *rabbitmq.RabbitMQ
+}
+
+func (s *waflogService) PublishIpWafLogTask(ctx context.Context, req adminApi.WafLog) {
+
+	payload := &req
+
+	msgBody, err := json.Marshal(payload)
+	if err != nil {
+		s.Logger.Error("序列化 WafLog 任务消息失败", zap.Error(err), zap.Int("hostId", payload.HostId), zap.Int("uid", payload.Uid), zap.Any("req", req))
+		return
+	}
+
+	taskCfg, ok := s.mq.GetTaskConfig("waf_log")
+	if !ok {
+		s.Logger.Error("无法获取“waf_Log”任务配置")
+		return
+	}
+
+	routingKey := fmt.Sprintf("wafLog.%s", "add")
+
+	publishingMsg := amqp.Publishing{
+		ContentType:  "application/json",
+		Body:         msgBody,
+		DeliveryMode: amqp.Persistent,
+	}
+
+	err = s.mq.PublishWithCh(taskCfg.Exchange, routingKey, publishingMsg)
+	if err != nil {
+		s.Logger.Error("发布 WafLog 任务消息失败", zap.Error(err), zap.Int("hostId", payload.HostId), zap.Int("uid", payload.Uid), zap.Any("req", req))
+	} else {
+		s.Logger.Info("已成功发布 WafLog 任务消息", zap.Int("hostId", payload.HostId), zap.Int("uid", payload.Uid), zap.Any("req", req))
+	}
+}