Files
WCTDataMiner/docs/architecture/模块划分.md
Scottxjw f3472d21ee refactor: 移除 stats 统计功能
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-14 09:23:26 +08:00

4.5 KiB
Raw Blame History

模块划分

所属模块:架构概览


1. 分层架构

层级 目录 职责 依赖
CLI Gpulse.WCT.DataAnalyzer/Commands/ 接收参数、流程调度、结果输出 Application
Application Core/Application/ 业务流程编排 Domain, Infrastructure
Domain Core/Domain/Models/ 实体定义,无行为
Infrastructure Core/Infrastructure/ 数据持久化、配置、安全 Domain

依赖规则:

  • 上层可依赖下层,下层不可依赖上层
  • Application 依 Domain 和 Infrastructure
  • Infrastructure 依 Domain
  • Domain 不依赖任何其他层
  • 解析器之间不可互相调用

2. Application 模块职责

2.1 Parsing — 解析

职责
FileNameParser 从文件名提取场景信息面板、硬件、软件、RX类型、日期、序号
QfodParser 解析 Qfod 格式日志行 → QfodRecord
PlossParser 解析 Ploss 单行/两行格式日志 → PlossRecord

2.2 LocalIngestion — 本地解析

职责
ParseService 协调解析流程:读取文件 → 解析 → 批量写入 local.db
ScenarioService 创建/查询测试场景,并发安全 upsert
DimensionService 维度表 get-or-create

2.3 Publishing — 发布汇总

职责
AggregationService 读取 local.db → 按业务键分组计算 → upsert 到 release.db
ThresholdCalculator 动态阈值计算

2.4 Exporting — 导出

职责
ExportService 导出 release.db 到固定 CSV也支持 legacy Qfod/Ploss 导出

2.5 Administration — 管理

职责
CleanService 软删除管理

3. Domain 实体

3.1 本地实体local.db

实体 说明
TxPanel tx_panel TX 面板类型维度
TxHardware tx_hardware TX 硬件版本维度
TxSoftware tx_software TX 软件版本维度
RxType rx_type RX 类型维度
TestScenario test_scenario 测试场景4 个维度外键 + 日期 + 序号)
QfodRecord qfod_record Qfod 检测数据
PlossRecord ploss_record Ploss FOD 数据

关系:维度表 1:N TestScenario 1:N QfodRecord/PlossRecord星型模型

3.2 发布实体release.db

实体 唯一键
ChargingParameterRecord charging_parameter (car_factory, car_model, phone_brand, phone_model)

两个数据库不建立外键或导航属性关联。


4. Infrastructure 模块

4.1 LocalData — 本地数据库

职责
WctMinerDbContext 本地解析库 EF Core 上下文
DbContextFactory 根据配置创建 SQLite/PostgreSQL 本地上下文
IDbContextFactory 工厂接口
SeedData 默认维度数据初始化
Configurations/* EF Core IEntityTypeConfiguration 实现

4.2 ReleaseData — 发布数据库

职责
ReleaseDbContext 发布库 EF Core 上下文
ReleaseDbContextFactory 创建发布库上下文
IReleaseDbContextFactory 工厂接口
Configurations/* 发布实体配置

4.3 Configuration

职责
AppSettings 应用配置 POCO

4.4 Security

职责
PathValidator 路径安全校验(遍历保护、白名单、应用目录限制)
SecurityConstants 安全常量

4.5 Extensions

职责
ServiceCollectionExtensions AddDatabaseServices / AddApplicationServices DI 注册

5. 依赖图

graph TD
    CLI[CLI Commands] --> Parsing[Parsing]
    CLI --> LocalIngestion[LocalIngestion]
    CLI --> Publishing[Publishing]
    CLI --> Exporting[Exporting]
    CLI --> Admin[Administration]

    LocalIngestion --> Parsing
    LocalIngestion --> LocalData[LocalData]
    Publishing --> LocalData
    Publishing --> ReleaseData[ReleaseData]
    Exporting --> LocalData
    Exporting --> ReleaseData
    Admin --> LocalData

    LocalData --> Domain[Domain Models]
    ReleaseData --> Domain
    Parsing --> Domain

    subgraph Application
        Parsing
        LocalIngestion
        Publishing
        Exporting
        Admin
    end

    subgraph Domain
        Domain
    end

    subgraph Infrastructure
        LocalData
        ReleaseData
        Configuration
        Security
        Extensions
    end