重构配方类控制器
This commit is contained in:
@@ -41,24 +41,29 @@ import (
|
||||
|
||||
// API 结构体定义了 HTTP 服务器及其依赖
|
||||
type API struct {
|
||||
echo *echo.Echo // Echo 引擎实例,用于处理 HTTP 请求
|
||||
Ctx context.Context // API 组件的上下文,包含日志记录器
|
||||
userRepo repository.UserRepository // 用户数据仓库接口,用于用户数据操作
|
||||
tokenGenerator token.Generator // Token 服务接口,用于 JWT token 的生成和解析
|
||||
auditService service.AuditService // 审计服务,用于记录用户操作
|
||||
httpServer *http.Server // 标准库的 HTTP 服务器实例,用于启动和停止服务
|
||||
config config.ServerConfig // API 服务器的配置,使用 infra/config 包中的 ServerConfig
|
||||
userController *user.Controller // 用户控制器实例
|
||||
deviceController *device.Controller // 设备控制器实例
|
||||
planController *plan.Controller // 计划控制器实例
|
||||
pigFarmController *management.PigFarmController // 猪场管理控制器实例
|
||||
pigBatchController *management.PigBatchController // 猪群控制器实例
|
||||
monitorController *monitor.Controller // 数据监控控制器实例
|
||||
healthController *health.Controller // 健康检查控制器实例
|
||||
alarmController *alarm.ThresholdAlarmController // 阈值告警控制器
|
||||
feedController *feed.Controller // 饲料管理控制器实例
|
||||
listenHandler webhook.ListenHandler // 设备上行事件监听器
|
||||
analysisTaskManager *domain_plan.AnalysisPlanTaskManager // 计划触发器管理器实例
|
||||
echo *echo.Echo // Echo 引擎实例,用于处理 HTTP 请求
|
||||
Ctx context.Context // API 组件的上下文,包含日志记录器
|
||||
userRepo repository.UserRepository // 用户数据仓库接口,用于用户数据操作
|
||||
tokenGenerator token.Generator // Token 服务接口,用于 JWT token 的生成和解析
|
||||
auditService service.AuditService // 审计服务,用于记录用户操作
|
||||
httpServer *http.Server // 标准库的 HTTP 服务器实例,用于启动和停止服务
|
||||
config config.ServerConfig // API 服务器的配置,使用 infra/config 包中的 ServerConfig
|
||||
userController *user.Controller // 用户控制器实例
|
||||
deviceController *device.Controller // 设备控制器实例
|
||||
planController *plan.Controller // 计划控制器实例
|
||||
pigFarmController *management.PigFarmController // 猪场管理控制器实例
|
||||
pigBatchController *management.PigBatchController // 猪群控制器实例
|
||||
monitorController *monitor.Controller // 数据监控控制器实例
|
||||
healthController *health.Controller // 健康检查控制器实例
|
||||
alarmController *alarm.ThresholdAlarmController // 阈值告警控制器
|
||||
feedController *feed.Controller // 饲料管理控制器实例
|
||||
nutrientController *feed.NutrientController // 营养控制器实例
|
||||
pigAgeStageController *feed.PigAgeStageController // 猪龄阶段控制器实例
|
||||
pigBreedController *feed.PigBreedController // 猪品种控制器实例
|
||||
pigTypeController *feed.PigTypeController // 猪种类控制器实例
|
||||
rawMaterialController *feed.RawMaterialController // 原料控制器实例
|
||||
listenHandler webhook.ListenHandler // 设备上行事件监听器
|
||||
analysisTaskManager *domain_plan.AnalysisPlanTaskManager // 计划触发器管理器实例
|
||||
}
|
||||
|
||||
// NewAPI 创建并返回一个新的 API 实例
|
||||
@@ -91,31 +96,27 @@ func NewAPI(cfg config.ServerConfig,
|
||||
// 初始化 API 结构体
|
||||
baseCtx := context.Background()
|
||||
api := &API{
|
||||
echo: e,
|
||||
Ctx: ctx,
|
||||
userRepo: userRepo,
|
||||
tokenGenerator: tokenGenerator,
|
||||
auditService: auditService,
|
||||
config: cfg,
|
||||
listenHandler: listenHandler,
|
||||
// 在 NewAPI 中初始化用户控制器,并将其作为 API 结构体的成员
|
||||
userController: user.NewController(logs.AddCompName(baseCtx, "UserController"), userService),
|
||||
// 在 NewAPI 中初始化设备控制器,并将其作为 API 结构体的成员
|
||||
deviceController: device.NewController(logs.AddCompName(baseCtx, "DeviceController"), deviceService),
|
||||
// 在 NewAPI 中初始化计划控制器,并将其作为 API 结构体的成员
|
||||
planController: plan.NewController(logs.AddCompName(baseCtx, "PlanController"), planService),
|
||||
// 在 NewAPI 中初始化猪场管理控制器
|
||||
pigFarmController: management.NewPigFarmController(logs.AddCompName(baseCtx, "PigFarmController"), pigFarmService),
|
||||
// 在 NewAPI 中初始化猪群控制器
|
||||
pigBatchController: management.NewPigBatchController(logs.AddCompName(baseCtx, "PigBatchController"), pigBatchService),
|
||||
// 在 NewAPI 中初始化数据监控控制器
|
||||
monitorController: monitor.NewController(logs.AddCompName(baseCtx, "MonitorController"), monitorService),
|
||||
// 在 NewAPI 中初始化健康检查控制器
|
||||
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),
|
||||
echo: e,
|
||||
Ctx: ctx,
|
||||
userRepo: userRepo,
|
||||
tokenGenerator: tokenGenerator,
|
||||
auditService: auditService,
|
||||
config: cfg,
|
||||
listenHandler: listenHandler,
|
||||
userController: user.NewController(logs.AddCompName(baseCtx, "UserController"), userService),
|
||||
deviceController: device.NewController(logs.AddCompName(baseCtx, "DeviceController"), deviceService),
|
||||
planController: plan.NewController(logs.AddCompName(baseCtx, "PlanController"), planService),
|
||||
pigFarmController: management.NewPigFarmController(logs.AddCompName(baseCtx, "PigFarmController"), pigFarmService),
|
||||
pigBatchController: management.NewPigBatchController(logs.AddCompName(baseCtx, "PigBatchController"), pigBatchService),
|
||||
monitorController: monitor.NewController(logs.AddCompName(baseCtx, "MonitorController"), monitorService),
|
||||
healthController: health.NewController(logs.AddCompName(baseCtx, "HealthController")),
|
||||
alarmController: alarm.NewThresholdAlarmController(logs.AddCompName(baseCtx, "ThresholdAlarmController"), alarmService),
|
||||
feedController: feed.NewController(logs.AddCompName(baseCtx, "FeedController"), feedManagementService),
|
||||
nutrientController: feed.NewNutrientController(logs.AddCompName(baseCtx, "NutrientController"), feedManagementService),
|
||||
pigAgeStageController: feed.NewPigAgeStageController(logs.AddCompName(baseCtx, "PigAgeStageController"), feedManagementService),
|
||||
pigBreedController: feed.NewPigBreedController(logs.AddCompName(baseCtx, "PigBreedController"), feedManagementService),
|
||||
pigTypeController: feed.NewPigTypeController(logs.AddCompName(baseCtx, "PigTypeController"), feedManagementService),
|
||||
rawMaterialController: feed.NewRawMaterialController(logs.AddCompName(baseCtx, "RawMaterialController"), feedManagementService),
|
||||
}
|
||||
|
||||
api.setupRoutes() // 设置所有路由
|
||||
|
||||
@@ -217,41 +217,41 @@ func (a *API) setupRoutes() {
|
||||
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)
|
||||
feedGroup.POST("/nutrients", a.nutrientController.CreateNutrient)
|
||||
feedGroup.PUT("/nutrients/:id", a.nutrientController.UpdateNutrient)
|
||||
feedGroup.DELETE("/nutrients/:id", a.nutrientController.DeleteNutrient)
|
||||
feedGroup.GET("/nutrients/:id", a.nutrientController.GetNutrient)
|
||||
feedGroup.GET("/nutrients", a.nutrientController.ListNutrients)
|
||||
|
||||
// 原料 (RawMaterial) 路由
|
||||
feedGroup.POST("/raw-materials", a.feedController.CreateRawMaterial)
|
||||
feedGroup.PUT("/raw-materials/:id", a.feedController.UpdateRawMaterial)
|
||||
feedGroup.PUT("/raw-materials/:id/nutrients", a.feedController.UpdateRawMaterialNutrients)
|
||||
feedGroup.DELETE("/raw-materials/:id", a.feedController.DeleteRawMaterial)
|
||||
feedGroup.GET("/raw-materials/:id", a.feedController.GetRawMaterial)
|
||||
feedGroup.GET("/raw-materials", a.feedController.ListRawMaterials)
|
||||
feedGroup.POST("/raw-materials", a.rawMaterialController.CreateRawMaterial)
|
||||
feedGroup.PUT("/raw-materials/:id", a.rawMaterialController.UpdateRawMaterial)
|
||||
feedGroup.PUT("/raw-materials/:id/nutrients", a.rawMaterialController.UpdateRawMaterialNutrients)
|
||||
feedGroup.DELETE("/raw-materials/:id", a.rawMaterialController.DeleteRawMaterial)
|
||||
feedGroup.GET("/raw-materials/:id", a.rawMaterialController.GetRawMaterial)
|
||||
feedGroup.GET("/raw-materials", a.rawMaterialController.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)
|
||||
feedGroup.POST("/pig-breeds", a.pigBreedController.CreatePigBreed)
|
||||
feedGroup.PUT("/pig-breeds/:id", a.pigBreedController.UpdatePigBreed)
|
||||
feedGroup.DELETE("/pig-breeds/:id", a.pigBreedController.DeletePigBreed)
|
||||
feedGroup.GET("/pig-breeds/:id", a.pigBreedController.GetPigBreed)
|
||||
feedGroup.GET("/pig-breeds", a.pigBreedController.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)
|
||||
feedGroup.POST("/pig-age-stages", a.pigAgeStageController.CreatePigAgeStage)
|
||||
feedGroup.PUT("/pig-age-stages/:id", a.pigAgeStageController.UpdatePigAgeStage)
|
||||
feedGroup.DELETE("/pig-age-stages/:id", a.pigAgeStageController.DeletePigAgeStage)
|
||||
feedGroup.GET("/pig-age-stages/:id", a.pigAgeStageController.GetPigAgeStage)
|
||||
feedGroup.GET("/pig-age-stages", a.pigAgeStageController.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)
|
||||
feedGroup.PUT("/pig-types/:id/nutrient-requirements", a.feedController.UpdatePigTypeNutrientRequirements)
|
||||
feedGroup.POST("/pig-types", a.pigTypeController.CreatePigType)
|
||||
feedGroup.PUT("/pig-types/:id", a.pigTypeController.UpdatePigType)
|
||||
feedGroup.DELETE("/pig-types/:id", a.pigTypeController.DeletePigType)
|
||||
feedGroup.GET("/pig-types/:id", a.pigTypeController.GetPigType)
|
||||
feedGroup.GET("/pig-types", a.pigTypeController.ListPigTypes)
|
||||
feedGroup.PUT("/pig-types/:id/nutrient-requirements", a.pigTypeController.UpdatePigTypeNutrientRequirements)
|
||||
}
|
||||
logger.Debug("饲料管理相关接口注册成功 (需要认证和审计)")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user