Files
pig-farm-controller/bmad/component-inventory-main-zh.md
2025-11-01 19:22:39 +08:00

4.2 KiB
Raw Blame History

组件清单 - 主模块

本文档提供了猪场控制器应用程序中关键软件组件的清单,按其主要功能和层级进行分类。

1. 应用层组件 (internal/app)

1.1. API 和控制器

这些组件处理传入的 HTTP 请求,将其路由到适当的处理程序,并管理请求/响应周期。

  • api.go: 初始化 Echo Web 框架并设置全局中间件和控制器。
  • router.go: 定义所有 API 路由,将 HTTP 方法和路径映射到特定的控制器函数。包括公共和认证路由。
  • controller/user: 处理用户相关的 API 端点(例如,注册、登录、通知)。
  • controller/device: 管理设备相关的 API 端点(例如,设备的 CRUD 操作、区域控制器、设备模板、手动控制)。
  • controller/management: 管理猪群批次相关的 API 端点(例如,猪舍、猪圈、猪群批次、转栏、销售、健康记录)。
  • controller/monitor: 提供用于监控各种日志和传感器数据的 API 端点。
  • controller/plan: 处理计划相关的 API 端点(例如,计划的 CRUD 操作、启动/停止计划)。
  • controller/response.go: 用于标准化 API 响应格式的工具。

1.2. DTOs (数据传输对象)

位于 internal/app/dto/ 中,这些定义了请求和响应负载的结构,确保了 API 的清晰数据契约。

  • device_dto.go (设备 DTO)
  • monitor_dto.go (监控 DTO)
  • notification_dto.go (通知 DTO)
  • pig_batch_dto.go (猪群批次 DTO)
  • pig_farm_dto.go (猪场 DTO)
  • plan_dto.go (计划 DTO)
  • user_dto.go (用户 DTO)

1.3. 中间件

位于 internal/app/middleware/ 中,这些组件在请求到达主要处理程序之前对其进行处理。

  • audit.go: 为认证请求实现审计日志记录。
  • auth.go: 为受保护的路由处理基于 JWT 的身份验证。

1.4. 应用服务

位于 internal/app/service/ 中,这些组件协调业务逻辑并与领域服务和仓库进行交互。

  • device_service.go (设备服务)
  • monitor_service.go (监控服务)
  • pig_batch_service.go (猪群批次服务)
  • pig_farm_service.go (猪场服务)
  • pig_service.go (猪只服务)
  • plan_service.go (计划服务)
  • user_service.go (用户服务)

1.5. Webhook 处理器

位于 internal/app/webhook/ 中,这些组件处理来自外部系统的传入 Webhook。

  • chirp_stack.go: 处理来自 ChirpStack LoRaWAN 网络服务器的 Webhook。
  • chirp_stack_types.go: 定义 ChirpStack Webhook 的数据结构。
  • placeholder_listener.go: 其他 Webhook 监听器的占位符。
  • transport.go: 通用 Webhook 传输接口。

2. 领域层组件 (internal/domain)

这些组件封装了核心业务逻辑和领域规则。

  • audit/service.go: 定义审计日志操作。
  • device/device_service.go: 设备管理的核心业务逻辑。
  • notify/notify.go: 定义通知接口。
  • pig/: 包含与猪只管理相关的业务逻辑(例如,pen_transfer_manager.gopig_batch_service.gopig_sick_manager.gopig_trade_manager.go)。
  • scheduler/: 管理任务调度和执行。
  • task/: 定义各种后台任务(例如,delay_task.gofull_collection_task.go)。
  • token/token_service.go: 处理 JWT 令牌的创建和验证。

3. 基础设施层组件 (internal/infra)

这些组件处理外部关注点和技术细节。

  • config/config.go: 管理应用程序配置加载。
  • database/: 处理数据库连接、迁移和 GORM 设置。
  • logs/logs.go: 提供日志工具(使用 Zap
  • models/: 定义映射到数据库表的 GORM 模型。
  • notify/: 实现各种通知渠道(例如,lark.gosmtp.gowechat.go)。
  • repository/: 为不同的实体提供数据访问逻辑(例如,user_repository.godevice_repository.gopig_batch_repository.go)。
  • transport/: 处理与外部系统(特别是 LoRaWAN的通信。
    • lora/**: LoRaWAN 特定传输实现。
    • proto/**: 协议缓冲区定义。
  • utils/: 通用工具函数。