实现配方领域的web接口

This commit is contained in:
2025-11-21 16:02:06 +08:00
parent 9996fcfd74
commit 534891309c
14 changed files with 6638 additions and 3 deletions

View File

@@ -21,6 +21,7 @@ import (
_ "git.huangwc.com/pig/pig-farm-controller/docs" // 引入 swag 生成的 docs
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/alarm"
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/device"
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/feed"
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/health"
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/management"
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/monitor"
@@ -55,6 +56,7 @@ type API struct {
monitorController *monitor.Controller // 数据监控控制器实例
healthController *health.Controller // 健康检查控制器实例
alarmController *alarm.ThresholdAlarmController // 阈值告警控制器
feedController *feed.Controller // 饲料管理控制器实例
listenHandler webhook.ListenHandler // 设备上行事件监听器
analysisTaskManager *domain_plan.AnalysisPlanTaskManager // 计划触发器管理器实例
}
@@ -72,6 +74,7 @@ func NewAPI(cfg config.ServerConfig,
userService service.UserService,
auditService service.AuditService,
alarmService service.ThresholdAlarmService,
feedManagementService service.FeedManagementService,
tokenGenerator token.Generator,
listenHandler webhook.ListenHandler,
) *API {
@@ -111,6 +114,8 @@ func NewAPI(cfg config.ServerConfig,
healthController: health.NewController(logs.AddCompName(baseCtx, "HealthController")),
// 在 NewAPI 中初始化阈
alarmController: alarm.NewThresholdAlarmController(logs.AddCompName(baseCtx, "ThresholdAlarmController"), alarmService),
// 在 NewAPI 中初始化饲料管理控制器
feedController: feed.NewController(logs.AddCompName(baseCtx, "FeedController"), feedManagementService),
}
api.setupRoutes() // 设置所有路由

View File

@@ -212,6 +212,46 @@ func (a *API) setupRoutes() {
}
}
logger.Debug("告警相关接口注册成功 (需要认证和审计)")
// 饲料管理相关路由组
feedGroup := authGroup.Group("/feed")
{
// 营养种类 (Nutrient) 路由
feedGroup.POST("/nutrients", a.feedController.CreateNutrient)
feedGroup.PUT("/nutrients/:id", a.feedController.UpdateNutrient)
feedGroup.DELETE("/nutrients/:id", a.feedController.DeleteNutrient)
feedGroup.GET("/nutrients/:id", a.feedController.GetNutrient)
feedGroup.GET("/nutrients", a.feedController.ListNutrients)
// 原料 (RawMaterial) 路由
feedGroup.POST("/raw-materials", a.feedController.CreateRawMaterial)
feedGroup.PUT("/raw-materials/:id", a.feedController.UpdateRawMaterial)
feedGroup.DELETE("/raw-materials/:id", a.feedController.DeleteRawMaterial)
feedGroup.GET("/raw-materials/:id", a.feedController.GetRawMaterial)
feedGroup.GET("/raw-materials", a.feedController.ListRawMaterials)
// 猪品种 (PigBreed) 路由
feedGroup.POST("/pig-breeds", a.feedController.CreatePigBreed)
feedGroup.PUT("/pig-breeds/:id", a.feedController.UpdatePigBreed)
feedGroup.DELETE("/pig-breeds/:id", a.feedController.DeletePigBreed)
feedGroup.GET("/pig-breeds/:id", a.feedController.GetPigBreed)
feedGroup.GET("/pig-breeds", a.feedController.ListPigBreeds)
// 猪年龄阶段 (PigAgeStage) 路由
feedGroup.POST("/pig-age-stages", a.feedController.CreatePigAgeStage)
feedGroup.PUT("/pig-age-stages/:id", a.feedController.UpdatePigAgeStage)
feedGroup.DELETE("/pig-age-stages/:id", a.feedController.DeletePigAgeStage)
feedGroup.GET("/pig-age-stages/:id", a.feedController.GetPigAgeStage)
feedGroup.GET("/pig-age-stages", a.feedController.ListPigAgeStages)
// 猪类型 (PigType) 路由
feedGroup.POST("/pig-types", a.feedController.CreatePigType)
feedGroup.PUT("/pig-types/:id", a.feedController.UpdatePigType)
feedGroup.DELETE("/pig-types/:id", a.feedController.DeletePigType)
feedGroup.GET("/pig-types/:id", a.feedController.GetPigType)
feedGroup.GET("/pig-types", a.feedController.ListPigTypes)
}
logger.Debug("饲料管理相关接口注册成功 (需要认证和审计)")
}
logger.Debug("所有接口注册成功")