Переглянути джерело

refactor(log): 重构日志管理功能

- 修改路由路径,将 /log/waf-log 改为 /log/log
- 更新 API 接口名称,将 wafLog 改为 log
-调整相关组件名称,如 waf-log.vue 改为 log.vue
- 更新服务、仓库和处理器类名,将 WafLog 改为 Log
- 修改前端 API 调用,将 getWafLog 改为 getLog
fusu 1 тиждень тому
батько
коміт
38146a9722

+ 1 - 1
api/v1/admin/wafLog.go → api/v1/admin/log.go

@@ -1,6 +1,6 @@
 package admin
 
-type SearchWafLogParams struct {
+type SearchLogParams struct {
 	RequestIp string `form:"requestIp" json:"requestIp"`
 	Uid       int64  `form:"uid" json:"uid"`
 	Api       string `form:"api" json:"api"`

+ 3 - 3
cmd/server/wire/wire.go

@@ -60,7 +60,7 @@ var repositorySet = wire.NewSet(
 	wafRep.NewGatewayipRepository,
 	adminRep.NewGatewayIpAdminRepository,
 	flexCdnRep.NewCcIpListRepository,
-	adminRep.NewWafLogRepository,
+	adminRep.NewLogRepository,
 
 )
 
@@ -101,7 +101,7 @@ var serviceSet = wire.NewSet(
 	waf.NewCdnLogService,
 	waf.NewBuildAudunService,
 	waf.NewZzybgpService,
-	admin.NewWafLogService,
+	admin.NewLogService,
 )
 
 var handlerSet = wire.NewSet(
@@ -126,7 +126,7 @@ var handlerSet = wire.NewSet(
 	wafHandler.NewGatewayipHandler,
 	wafHandler.NewCcIpListHandler,
 	wafHandler.NewCdnLogHandler,
-	adminHandler.NewWafLogHandler,
+	adminHandler.NewLogHandler,
 )
 
 

+ 7 - 7
cmd/server/wire/wire_gen.go

@@ -113,10 +113,10 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	ccIpListHandler := waf3.NewCcIpListHandler(handlerHandler, ccIpListService)
 	cdnLogService := waf2.NewCdnLogService(serviceService, tcpforwardingRepository, udpForWardingRepository, webForwardingRepository, cdnService, ccIpListService)
 	cdnLogHandler := waf3.NewCdnLogHandler(handlerHandler, cdnLogService)
-	wafLogRepository := admin.NewWafLogRepository(repositoryRepository)
-	wafLogService := admin2.NewWafLogService(serviceService, wafLogRepository)
-	wafLogHandler := admin3.NewWafLogHandler(handlerHandler, wafLogService)
-	httpServer := server.NewHTTPServer(logger, viperViper, jwtJWT, syncedEnforcer, limiterLimiter, handlerFunc, userHandler, gameShieldHandler, gameShieldBackendHandler, webForwardingHandler, tcpforwardingHandler, udpForWardingHandler, globalLimitHandler, adminHandler, gatewayIpAdminHandler, allowAndDenyIpHandler, ccHandler, logService, ccIpListHandler, cdnLogHandler, wafLogHandler)
+	adminLogRepository := admin.NewLogRepository(repositoryRepository)
+	adminLogService := admin2.NewLogService(serviceService, adminLogRepository)
+	logHandler := admin3.NewLogHandler(handlerHandler, adminLogService)
+	httpServer := server.NewHTTPServer(logger, viperViper, jwtJWT, syncedEnforcer, limiterLimiter, handlerFunc, userHandler, gameShieldHandler, gameShieldBackendHandler, webForwardingHandler, tcpforwardingHandler, udpForWardingHandler, globalLimitHandler, adminHandler, gatewayIpAdminHandler, allowAndDenyIpHandler, ccHandler, logService, ccIpListHandler, cdnLogHandler, logHandler)
 	appApp := newApp(httpServer)
 	return appApp, func() {
 		cleanup()
@@ -125,11 +125,11 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 
 // wire.go:
 
-var repositorySet = wire.NewSet(repository.NewDB, repository.NewRedis, repository.NewCasbinEnforcer, repository.NewMongoClient, repository.NewMongoDB, repository.NewRabbitMQ, repository.NewRepository, repository.NewTransaction, admin.NewAdminRepository, admin.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldPublicIpRepository, waf.NewWebForwardingRepository, waf.NewTcpforwardingRepository, waf.NewUdpForWardingRepository, repository.NewGameShieldUserIpRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldSdkIpRepository, repository.NewHostRepository, waf.NewGlobalLimitRepository, repository.NewGatewayGroupRepository, repository.NewGateWayGroupIpRepository, flexCdn.NewCdnRepository, waf.NewAllowAndDenyIpRepository, flexCdn.NewProxyRepository, flexCdn.NewCcRepository, repository.NewExpiredRepository, repository.NewLogRepository, waf.NewGatewayipRepository, admin.NewGatewayIpAdminRepository, flexCdn.NewCcIpListRepository, admin.NewWafLogRepository)
+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)
 
-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.NewWafLogService)
+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)
 
-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.NewWafLogHandler)
+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)
 
 // 限流器依赖集
 var limiterSet = wire.NewSet(limiter.NewLimiter, middleware.NewRateLimitMiddleware)

+ 12 - 12
internal/handler/admin/waflog.go → internal/handler/admin/log.go

@@ -10,29 +10,29 @@ import (
 	"net/http"
 )
 
-type WafLogHandler struct {
+type LogHandler struct {
 	*handler.Handler
-	wafLogService adminService.WafLogService
+	LogService adminService.LogService
 }
 
-func NewWafLogHandler(
+func NewLogHandler(
     handler *handler.Handler,
-    wafLogService adminService.WafLogService,
-) *WafLogHandler {
-	return &WafLogHandler{
+    LogService adminService.LogService,
+) *LogHandler {
+	return &LogHandler{
 		Handler:      handler,
-		wafLogService: wafLogService,
+		LogService: LogService,
 	}
 }
 
-func (h *WafLogHandler) GetWafLog(ctx *gin.Context) {
+func (h *LogHandler) GetLog(ctx *gin.Context) {
 	var req admin.LogId
 	if err := ctx.ShouldBind(&req); err != nil {
 		v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, err.Error())
 		return
 	}
 	defaults.SetDefaults(&req)
-	res, err := h.wafLogService.GetWafLog(ctx, req.Id)
+	res, err := h.LogService.GetLog(ctx, req.Id)
 	if err != nil {
 		v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
 		return
@@ -40,14 +40,14 @@ func (h *WafLogHandler) GetWafLog(ctx *gin.Context) {
 	v1.HandleSuccess(ctx, res)
 }
 
-func (h *WafLogHandler) GetWafLogList(ctx *gin.Context) {
-	var req admin.SearchWafLogParams
+func (h *LogHandler) GetLogList(ctx *gin.Context) {
+	var req admin.SearchLogParams
 	if err := ctx.ShouldBind(&req); err != nil {
 		v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, err.Error())
 		return
 	}
 	defaults.SetDefaults(&req)
-	res, err := h.wafLogService.GetWafLogList(ctx, req)
+	res, err := h.LogService.GetLogList(ctx, req)
 	if err != nil {
 		v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
 		return

+ 9 - 9
internal/repository/admin/waflog.go → internal/repository/admin/log.go

@@ -10,29 +10,29 @@ import (
 	"strings"
 )
 
-type WafLogRepository interface {
-	GetWafLog(ctx context.Context, id int64) (*model.Log, error)
-	GetWafLogList(ctx context.Context, req admin.SearchWafLogParams) (*v1.PaginatedResponse[model.Log], error)
+type LogRepository interface {
+	GetLog(ctx context.Context, id int64) (*model.Log, error)
+	GetLogList(ctx context.Context, req admin.SearchLogParams) (*v1.PaginatedResponse[model.Log], error)
 }
 
-func NewWafLogRepository(
+func NewLogRepository(
 	repository *repository.Repository,
-) WafLogRepository {
-	return &wafLogRepository{
+) LogRepository {
+	return &logRepository{
 		Repository: repository,
 	}
 }
 
-type wafLogRepository struct {
+type logRepository struct {
 	*repository.Repository
 }
 
-func (r *wafLogRepository) GetWafLog(ctx context.Context, id int64) (*model.Log, error) {
+func (r *logRepository) GetLog(ctx context.Context, id int64) (*model.Log, error) {
 	var res model.Log
 	return &res, r.DBWithName(ctx,"admin").Where("id = ?", id).First(&res).Error
 }
 
-func (r *wafLogRepository) GetWafLogList(ctx context.Context, req admin.SearchWafLogParams) (*v1.PaginatedResponse[model.Log], error) {
+func (r *logRepository) GetLogList(ctx context.Context, req admin.SearchLogParams) (*v1.PaginatedResponse[model.Log], error) {
 	var res []model.Log
 	var total int64
 

+ 3 - 3
internal/server/http.go

@@ -40,7 +40,7 @@ func NewHTTPServer(
 	logService service.LogService,
 	ccIpListHandler *waf.CcIpListHandler,
 	cdnLogHandler *waf.CdnLogHandler,
-	wafLogHandler *admin.WafLogHandler,
+	logHandler *admin.LogHandler,
 ) *http.Server {
 	gin.SetMode(gin.DebugMode)
 	s := http.NewServer(
@@ -188,8 +188,8 @@ func NewHTTPServer(
 			strictAuthRouter.DELETE("/gatewayIp/delList", gatewayIpAdminHandler.DeleteGatewayIpsAdmin)
 
 
-			strictAuthRouter.GET("/wafLog/get", wafLogHandler.GetWafLog)
-			strictAuthRouter.GET("/wafLog/getList", wafLogHandler.GetWafLogList)
+			strictAuthRouter.GET("/log/get", logHandler.GetLog)
+			strictAuthRouter.GET("/log/getList", logHandler.GetLogList)
 
 		}
 	}

+ 37 - 0
internal/service/admin/log.go

@@ -0,0 +1,37 @@
+package admin
+
+import (
+	"context"
+	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
+	admin "github.com/go-nunu/nunu-layout-advanced/api/v1/admin"
+	"github.com/go-nunu/nunu-layout-advanced/internal/model"
+	adminRep "github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+)
+
+type LogService interface {
+	GetLog(ctx context.Context, id int64) (*model.Log, error)
+	GetLogList(ctx context.Context, req admin.SearchLogParams) (*v1.PaginatedResponse[model.Log], error)
+}
+func NewLogService(
+    service *service.Service,
+    LogRepository adminRep.LogRepository,
+) LogService {
+	return &logService{
+		Service:        service,
+		LogRepository: LogRepository,
+	}
+}
+
+type logService struct {
+	*service.Service
+	LogRepository adminRep.LogRepository
+}
+
+func (s *logService) GetLog(ctx context.Context, id int64) (*model.Log, error) {
+	return s.LogRepository.GetLog(ctx, id)
+}
+
+func (s *logService) GetLogList(ctx context.Context, req admin.SearchLogParams) (*v1.PaginatedResponse[model.Log], error) {
+	return s.LogRepository.GetLogList(ctx, req)
+}

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

@@ -1,37 +0,0 @@
-package admin
-
-import (
-	"context"
-	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
-	admin "github.com/go-nunu/nunu-layout-advanced/api/v1/admin"
-	"github.com/go-nunu/nunu-layout-advanced/internal/model"
-	adminRep "github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
-	"github.com/go-nunu/nunu-layout-advanced/internal/service"
-)
-
-type WafLogService interface {
-	GetWafLog(ctx context.Context, id int64) (*model.Log, error)
-	GetWafLogList(ctx context.Context, req admin.SearchWafLogParams) (*v1.PaginatedResponse[model.Log], error)
-}
-func NewWafLogService(
-    service *service.Service,
-    wafLogRepository adminRep.WafLogRepository,
-) WafLogService {
-	return &wafLogService{
-		Service:        service,
-		wafLogRepository: wafLogRepository,
-	}
-}
-
-type wafLogService struct {
-	*service.Service
-	wafLogRepository adminRep.WafLogRepository
-}
-
-func (s *wafLogService) GetWafLog(ctx context.Context, id int64) (*model.Log, error) {
-	return s.wafLogRepository.GetWafLog(ctx, id)
-}
-
-func (s *wafLogService) GetWafLogList(ctx context.Context, req admin.SearchWafLogParams) (*v1.PaginatedResponse[model.Log], error) {
-	return s.wafLogRepository.GetWafLogList(ctx, req)
-}

+ 4 - 4
web/src/api/log/log.js

@@ -1,16 +1,16 @@
 import request from '~/utils/request.js'
 
-export function getWafLogList(params) {
+export function getLogList(params) {
   return request({
-    url: '/v1/wafLog/getList',
+    url: '/v1/log/getList',
     method: 'get',
     params
   })
 }
 
-export function getWafLogInfo(id) {
+export function getLogInfo(id) {
   return request({
-    url: '/v1/wafLog/get',
+    url: '/v1/log/get',
     method: 'get',
     params: { id }
   })

+ 2 - 2
web/src/pages/log/components/log-detail-modal.vue

@@ -42,7 +42,7 @@
 
 <script setup>
 import { ref, defineExpose } from 'vue';
-import { getWafLogInfo } from '~/api/log/log.js';
+import { getLogInfo } from '~/api/log/log.js';
 
 const visible = ref(false);
 const loading = ref(false);
@@ -53,7 +53,7 @@ const fetchInfo = async (id) => {
     loading.value = true;
     console.log('获取日志ID:', id);
     
-    const response = await getWafLogInfo(id);
+    const response = await getLogInfo(id);
     console.log('日志详情响应:', response);
     
     // 处理不同的返回格式

+ 4 - 4
web/src/pages/log/waf-log-info.vue → web/src/pages/log/log-info.vue

@@ -1,7 +1,7 @@
 <template>
   <page-header-wrapper>
     <a-card :bordered="false" :loading="loading">
-      <a-descriptions title="WAF日志详情" :column="{ xs: 1, sm: 2, md: 3 }">
+      <a-descriptions title="日志详情" :column="{ xs: 1, sm: 2, md: 3 }">
         <a-descriptions-item label="ID">{{ info.Id }}</a-descriptions-item>
         <a-descriptions-item label="Trace ID">{{ info.TraceId }}</a-descriptions-item>
         <a-descriptions-item label="用户ID">{{ info.Uid }}</a-descriptions-item>
@@ -36,7 +36,7 @@
 <script setup>
 import { ref, onMounted } from 'vue';
 import { useRouter, useRoute } from 'vue-router';
-import { getWafLogInfo } from '~/api/log/log.js';
+import { getLogInfo } from '~/api/log/log.js';
 
 const router = useRouter();
 const route = useRoute();
@@ -49,7 +49,7 @@ const fetchInfo = async () => {
     const id = route.params.id;
     console.log('获取日志ID:', id);
     
-    const response = await getWafLogInfo(id);
+    const response = await getLogInfo(id);
     console.log('日志详情响应:', response);
     
     // 处理不同的返回格式
@@ -80,7 +80,7 @@ const fetchInfo = async () => {
 };
 
 const handleBack = () => {
-  router.push('/log/waf-log');
+  router.push('/log/log');
 };
 
 onMounted(() => {

+ 2 - 2
web/src/pages/log/waf-log.vue → web/src/pages/log/log.vue

@@ -61,7 +61,7 @@
 <script setup>
 import { ref, onMounted } from 'vue';
 import { useRouter } from 'vue-router';
-import { getWafLogList } from '~/api/log/log.js';
+import { getLogList } from '~/api/log/log.js';
 import LogDetailModal from './components/log-detail-modal.vue';
 
 const router = useRouter();
@@ -115,7 +115,7 @@ const fetchData = () => {
   
   console.log('发送查询参数:', params);
   
-  getWafLogList(params).then(response => {
+  getLogList(params).then(response => {
 
     
     // 根据实际返回格式处理数据

+ 10 - 10
web/src/router/dynamic-routes.js

@@ -79,7 +79,7 @@ export default [
   },
   {
     path: '/log',
-    redirect: '/log/waf-log',
+    redirect: '/log/log',
     name: 'Log',
     meta: {
       title: '日志管理',
@@ -88,21 +88,21 @@ export default [
     component: basicRouteMap.RouteView,
     children: [
       {
-        path: '/log/waf-log',
-        name: 'LogWafLog',
-        component: () => import('~/pages/log/waf-log.vue'),
+        path: '/log/log',
+        name: 'LogLog',
+        component: () => import('~/pages/log/log.vue'),
         meta: {
-          title: 'WAF日志',
+          title: '日志',
         },
       },
       {
-        path: '/log/waf-log-info/:id',
-        name: 'LogWafLogInfo',
-        component: () => import('~/pages/log/waf-log-info.vue'),
+        path: '/log/log-info/:id',
+        name: 'LogLogInfo',
+        component: () => import('~/pages/log/log-info.vue'),
         meta: {
-          title: 'WAF日志详情',
+          title: '日志详情',
           hidden: true, // 不在菜单中显示
-          activeMenu: '/log/waf-log' // 高亮父菜单
+          activeMenu: '/log/og' // 高亮父菜单
         },
       },
     ],