This commit is contained in:
2025-11-05 23:52:48 +08:00
parent a1f7c09b2a
commit 5eeeeb5006
6 changed files with 51 additions and 18 deletions

View File

@@ -91,17 +91,17 @@ func NewAPI(cfg config.ServerConfig,
config: cfg,
listenHandler: listenHandler,
// 在 NewAPI 中初始化用户控制器,并将其作为 API 结构体的成员
userController: user.NewController(baseCtx, userService),
userController: user.NewController(logs.AddCompName(baseCtx, "UserController"), userService),
// 在 NewAPI 中初始化设备控制器,并将其作为 API 结构体的成员
deviceController: device.NewController(baseCtx, deviceService),
deviceController: device.NewController(logs.AddCompName(baseCtx, "DeviceController"), deviceService),
// 在 NewAPI 中初始化计划控制器,并将其作为 API 结构体的成员
planController: plan.NewController(baseCtx, planService),
planController: plan.NewController(logs.AddCompName(baseCtx, "PlanController"), planService),
// 在 NewAPI 中初始化猪场管理控制器
pigFarmController: management.NewPigFarmController(baseCtx, pigFarmService),
pigFarmController: management.NewPigFarmController(logs.AddCompName(baseCtx, "PigFarmController"), pigFarmService),
// 在 NewAPI 中初始化猪群控制器
pigBatchController: management.NewPigBatchController(baseCtx, pigBatchService),
pigBatchController: management.NewPigBatchController(logs.AddCompName(baseCtx, "PigBatchController"), pigBatchService),
// 在 NewAPI 中初始化数据监控控制器
monitorController: monitor.NewController(baseCtx, monitorService),
monitorController: monitor.NewController(logs.AddCompName(baseCtx, "MonitorController"), monitorService),
}
api.setupRoutes() // 设置所有路由

View File

@@ -15,7 +15,7 @@ import (
func AuditLogMiddleware(ctx context.Context, auditService service.AuditService) echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
newCtx := logs.AddFuncName(ctx, c.Request().Context(), "AuditLogMiddleware")
newCtx := logs.AddFuncName(c.Request().Context(), ctx, "AuditLogMiddleware")
// 首先执行请求链中的后续处理程序(即业务控制器)
err := next(c)
@@ -48,9 +48,12 @@ func AuditLogMiddleware(ctx context.Context, auditService service.AuditService)
status, _ := c.Get(models.ContextAuditStatus.String()).(models.AuditStatus)
resultDetails, _ := c.Get(models.ContextAuditResultDetails.String()).(string)
// 为异步任务创建一个分离的 Context以防止原始请求的 Context 被取消
detachedCtx := logs.DetachContext(newCtx)
// 调用审计服务记录日志(异步)
auditService.LogAction(
newCtx,
detachedCtx,
user,
reqCtx,
actionType,

View File

@@ -22,7 +22,7 @@ import (
func AuthMiddleware(ctx context.Context, tokenGenerator token.Generator, userRepo repository.UserRepository) echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
reqCtx := logs.AddFuncName(ctx, c.Request().Context(), "AuthMiddleware")
reqCtx := logs.AddFuncName(c.Request().Context(), ctx, "AuthMiddleware")
// 从 Authorization header 获取 token
authHeader := c.Request().Header.Get("Authorization")