# 源代码树分析 - 主模块 本文档提供了项目源代码结构的带注释概述,重点关注包含核心应用程序逻辑的 `internal/` 目录。 ``` internal/ ├── app/ # 应用层:处理 HTTP 请求、DTO 和协调服务。 │ ├── api/ # API 定义和路由 (Echo 框架)。 │ ├── controller/ # 各领域(用户、设备、计划、猪场、监控)的请求处理器。 │ │ ├── device/ # 设备相关的 API 控制器。 │ │ ├── management/ # 管理相关的 API 控制器(例如,猪群批次)。 │ │ ├── monitor/ # 监控相关的 API 控制器。 │ │ ├── plan/ # 计划相关的 API 控制器。 │ │ └── user/ # 用户相关的 API 控制器。 │ ├── dto/ # 数据传输对象:API 的请求/响应模型。 │ ├── middleware/ # HTTP 中间件(例如,身份验证、审计日志)。 │ ├── service/ # 应用服务:业务逻辑协调。 │ └── webhook/ # Webhook 处理器(例如,ChirpStack)。 ├── core/ # 核心应用组件:初始化和数据设置。 │ ├── application.go # 主应用程序设置。 │ ├── component_initializers.go # 初始化各种应用程序组件。 │ └── data_initializer.go # 初始化核心数据。 ├── domain/ # 领域层:业务逻辑和实体。 │ ├── audit/ # 审计相关的领域服务。 │ ├── device/ # 设备相关的领域服务。 │ ├── notify/ # 通知领域服务。 │ ├── pig/ # 猪只和猪群批次相关的领域服务。 │ ├── scheduler/ # 调度领域服务。 │ ├── task/ # 任务相关的领域服务。 │ └── token/ # 令牌管理领域服务。 └── infra/ # 基础设施层:外部关注点(数据库、日志、配置、外部 API)。 ├── config/ # 配置管理。 ├── database/ # 数据库连接和 ORM 设置 (PostgreSQL, SQLite)。 ├── logs/ # 日志工具。 ├── models/ # GORM 模型(数据库模式定义)。 ├── notify/ # 通知实现(Lark、SMTP、微信)。 ├── repository/ # 数据仓库:数据库交互逻辑。 ├── transport/ # 外部通信(例如,LoRaWAN ChirpStack)。 │ ├── lora/ # LoRaWAN 特定传输。 │ └── proto/ # 协议缓冲区定义。 └── utils/ # 通用工具。 ```