实现 猪舍相关路由组 和 猪圈相关路由组

This commit is contained in:
2025-10-03 18:27:53 +08:00
parent 5754a1d94c
commit 8cbe313c89
13 changed files with 840 additions and 47 deletions

View File

@@ -17,9 +17,11 @@ import (
_ "git.huangwc.com/pig/pig-farm-controller/docs" // 引入 swag 生成的 docs
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/device"
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/management"
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/plan"
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/user"
"git.huangwc.com/pig/pig-farm-controller/internal/app/middleware"
"git.huangwc.com/pig/pig-farm-controller/internal/app/service"
"git.huangwc.com/pig/pig-farm-controller/internal/app/webhook"
"git.huangwc.com/pig/pig-farm-controller/internal/domain/audit"
"git.huangwc.com/pig/pig-farm-controller/internal/domain/task"
@@ -45,6 +47,7 @@ type API struct {
userController *user.Controller // 用户控制器实例
deviceController *device.Controller // 设备控制器实例
planController *plan.Controller // 计划控制器实例
pigFarmController *management.PigFarmController // 猪场管理控制器实例
listenHandler webhook.ListenHandler // 设备上行事件监听器
analysisTaskManager *task.AnalysisPlanTaskManager // 计划触发器管理器实例
}
@@ -58,6 +61,7 @@ func NewAPI(cfg config.ServerConfig,
areaControllerRepository repository.AreaControllerRepository,
deviceTemplateRepository repository.DeviceTemplateRepository, // 添加设备模板仓库
planRepository repository.PlanRepository,
pigFarmService service.PigFarmService,
userActionLogRepository repository.UserActionLogRepository,
tokenService token.TokenService,
auditService audit.Service, // 注入审计服务
@@ -90,6 +94,8 @@ func NewAPI(cfg config.ServerConfig,
deviceController: device.NewController(deviceRepository, areaControllerRepository, deviceTemplateRepository, logger),
// 在 NewAPI 中初始化计划控制器,并将其作为 API 结构体的成员
planController: plan.NewController(logger, planRepository, analysisTaskManager),
// 在 NewAPI 中初始化猪场管理控制器
pigFarmController: management.NewPigFarmController(logger, pigFarmService),
}
api.setupRoutes() // 设置所有路由
@@ -192,6 +198,29 @@ func (a *API) setupRoutes() {
planGroup.POST("/:id/stop", a.planController.StopPlan)
}
a.logger.Info("计划相关接口注册成功 (需要认证和审计)")
// 猪舍相关路由组
pigHouseGroup := authGroup.Group("/pighouses")
{
pigHouseGroup.POST("", a.pigFarmController.CreatePigHouse)
pigHouseGroup.GET("", a.pigFarmController.ListPigHouses)
pigHouseGroup.GET("/:id", a.pigFarmController.GetPigHouse)
pigHouseGroup.PUT("/:id", a.pigFarmController.UpdatePigHouse)
pigHouseGroup.DELETE("/:id", a.pigFarmController.DeletePigHouse)
}
a.logger.Info("猪舍相关接口注册成功 (需要认证和审计)")
// 猪圈相关路由组
penGroup := authGroup.Group("/pens")
{
penGroup.POST("", a.pigFarmController.CreatePen)
penGroup.GET("", a.pigFarmController.ListPens)
penGroup.GET("/:id", a.pigFarmController.GetPen)
penGroup.PUT("/:id", a.pigFarmController.UpdatePen)
penGroup.DELETE("/:id", a.pigFarmController.DeletePen)
}
a.logger.Info("猪圈相关接口注册成功 (需要认证和审计)")
}
}