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