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

86 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 组件清单 - 主模块
本文档提供了猪场控制器应用程序中关键软件组件的清单,按其主要功能和层级进行分类。
## 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.go``pig_batch_service.go``pig_sick_manager.go``pig_trade_manager.go`)。
* **`scheduler/`**: 管理任务调度和执行。
* **`task/`**: 定义各种后台任务(例如,`delay_task.go``full_collection_task.go`)。
* **`token/token_service.go`**: 处理 JWT 令牌的创建和验证。
## 3. 基础设施层组件 (`internal/infra`)
这些组件处理外部关注点和技术细节。
* **`config/config.go`**: 管理应用程序配置加载。
* **`database/`**: 处理数据库连接、迁移和 GORM 设置。
* **`logs/logs.go`**: 提供日志工具(使用 Zap
* **`models/`**: 定义映射到数据库表的 GORM 模型。
* **`notify/`**: 实现各种通知渠道(例如,`lark.go``smtp.go``wechat.go`)。
* **`repository/`**: 为不同的实体提供数据访问逻辑(例如,`user_repository.go``device_repository.go``pig_batch_repository.go`)。
* **`transport/`**: 处理与外部系统(特别是 LoRaWAN的通信。
* `lora/`**: LoRaWAN 特定传输实现。
* `proto/`**: 协议缓冲区定义。
* **`utils/`**: 通用工具函数。