# 模块划分 > 所属模块:[架构概览](./概览.md) --- ## 1. 模块总览 ``` ┌─────────────────────────────────────────────────────────────┐ │ CLI Entry Point │ │ (Program.cs / System.CommandLine) │ ├─────────────────────────────────────────────────────────────┤ │ Service Layer │ ├─────────────────────────────────────────────────────────────┤ │ ParseService │ ScenarioService │ DimensionService │ ThresholdCalc │ ├─────────────────────────────────────────────────────────────┤ │ Parser Layer │ ├─────────────────────────────────────────────────────────────┤ │ QfodParser │ PlossParser │ FileNameParser │ ├─────────────────────────────────────────────────────────────┤ │ Data Layer │ ├─────────────────────────────────────────────────────────────┤ │ Models │ WctMinerDbContext │ IDbContextFactory │ ├─────────────────────────────────────────────────────────────┤ │ Infrastructure │ ├─────────────────────────────────────────────────────────────┤ │ Configuration │ Serilog │ AppSettings │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 2. 模块职责 | 模块名 | 职责 | 依赖模块 | |--------|------|----------| | CLI Entry | 接收命令行参数、调度解析流程 | ParseService, Infrastructure | | ParseService | 协调解析流程、批量写入、场景关联 | Parser Layer, ScenarioService, DbContext | | ScenarioService | 创建/查询测试场景,解析文件名获取场景信息 | DimensionService, DbContext | | DimensionService | 维度表 CRUD(获取或创建维度记录) | DbContext | | FileNameParser | 解析文件名提取场景信息(面板、版本、RX类型等) | 无 | | LogFileReader | 读取日志文件、行过滤、文件遍历 | 无 | | QfodParser | 解析 Qfod 格式日志,返回 QfodRecord | 无 | | PlossParser | 解析 Ploss 格式日志,返回 PlossRecord | 无 | | Models | 定义数据实体结构(维度表 + 事实表) | 无 | | WctMinerDbContext | EF Core 数据库上下文 | Models, Configurations | | Configuration | 加载配置文件 | 无 | | Serilog | 结构化日志输出(含解析错误日志) | 无 | | ThresholdCalculator | 根据 RxPower 计算动态阈值 | 无 | --- ## 3. 分层架构 ### 3.1 分层定义 | 层级 | 职责 | 允许调用 | |------|------|----------| | CLI Entry | 接收参数、流程调度、结果输出 | Service, Infrastructure | | Service | 协调解析流程、场景管理、维度管理、批量写入 | Parser, Data, Infrastructure | | Parser | 日志解析、文件名解析、数据提取 | 无 | | Data | 数据持久化、DbContext 管理、实体配置 | Infrastructure | | Infrastructure | 配置、日志 | 无 | ### 3.2 依赖规则 - 上层可调用下层 - 下层不可调用上层 - Parser 之间不可互相调用(独立解析器) - Service 层协调 Parser 和 Data 层 - 解析错误通过 Serilog 记录,不存入业务数据库 --- ## 4. 模块依赖图 ```mermaid graph TD CLI[CLI Entry] --> PS[ParseService] CLI --> Serilog PS --> SS[ScenarioService] PS --> QP[QfodParser] PS --> PP[PlossParser] PS --> DBM[WctMinerDbContext] PS --> Serilog SS --> DS[DimensionService] SS --> FNP[FileNameParser] SS --> DBM DS --> DBM QP --> Serilog PP --> Serilog FNP --> Serilog DBM --> Models[Models] DBM --> Configs[Configurations] subgraph Parser Layer QP PP FNP end subgraph Data Layer DBM Models Configs end subgraph Infrastructure Serilog end subgraph Service Layer PS SS DS end ``` --- ## 5. 目录结构 ``` src/WCTDataMiner/ ├── Parsers/ │ ├── IParser.cs │ ├── QfodParser.cs │ ├── PlossParser.cs │ ├── FileNameParser.cs # 解析文件名获取场景信息(Parser Layer) │ └── LogFileReader.cs # 读取日志文件(可选) ├── Models/ │ ├── TxPanel.cs # TX面板维度 │ ├── TxHardware.cs # TX硬件版本维度 │ ├── TxSoftware.cs # TX软件版本维度 │ ├── RxType.cs # RX类型维度 │ ├── TestScenario.cs # 测试场景 │ ├── QfodRecord.cs # Qfod记录 │ └── PlossRecord.cs # Ploss记录 ├── Data/ │ ├── WctMinerDbContext.cs │ ├── IDbContextFactory.cs │ └── Configurations/ # IEntityTypeConfiguration 配置类 │ ├── TxPanelConfiguration.cs │ ├── TxHardwareConfiguration.cs │ ├── TxSoftwareConfiguration.cs │ ├── RxTypeConfiguration.cs │ ├── TestScenarioConfiguration.cs │ ├── QfodRecordConfiguration.cs │ └── PlossRecordConfiguration.cs ├── Services/ │ ├── ParseService.cs # 解析流程协调 │ ├── ScenarioService.cs # 场景创建/查询 │ ├── DimensionService.cs # 维度表管理 │ └── ThresholdCalculator.cs # 阈值计算 ├── Configuration/ │ ├── AppSettings.cs │ └── appsettings.json ├── Commands/ │ ├── ParseCommand.cs │ ├── StatsCommand.cs │ ├── ExportCommand.cs │ └── CleanCommand.cs └── Program.cs ```