feat: 新增多模块功能与服务实现

新增广告计划、用户资产、B2B交易、合规规则等核心模型
实现爬虫工作器、贸易服务、现金流预测等业务服务
添加RBAC权限测试、压力测试等测试用例
完善扩展程序的消息处理与内容脚本功能
重构应用入口与文档生成器
更新项目规则与业务闭环分析文档
This commit is contained in:
2026-03-18 09:38:09 +08:00
parent 72cd7f6f45
commit 037e412aad
158 changed files with 50217 additions and 1313 deletions

View File

@@ -39,12 +39,12 @@
33. [功能开通与支付闭环](#3⃣3⃣-功能开通与支付闭环feature-activation--payment-loop)
34. [多商户结算与财务闭环](#3⃣4⃣-多商户结算与财务闭环multi-merchant-settlement--finance-loop)
35. [多商户商品与订单管理闭环](#3⃣5⃣-多商户商品与订单管理闭环multi-merchant-product--order-management-loop)
31. [统一闭环依赖](#🔹-统一闭环依赖toc--tob)
32. [闭环依赖关系](#🔗-闭环依赖关系toc--tob)
33. [关键绩效指标](#📊-关键绩效指标kpi)
34. [追踪与审计](#🔍-追踪与审计)
35. [业务审核状态机](#📋-业务审核状态机)
36. [说明](#💡-说明)
36. [统一闭环依赖](#🔹-统一闭环依赖toc--tob)
37. [闭环依赖关系](#🔗-闭环依赖关系toc--tob)
38. [关键绩效指标](#📊-关键绩效指标kpi)
39. [追踪与审计](#🔍-追踪与审计)
40. [业务审核状态机](#📋-业务审核状态机)
41. [说明](#💡-说明)
***
@@ -53,12 +53,12 @@
- **目标**收集多平台商品信息确保数据完整、有效、可用于盈利分析TOC或报价计算TOB
- **采集策略矩阵**
| 平台类型 | 采集方式 | 执行位置 | 登录要求 | 反爬策略 |
|----------|----------|----------|----------|----------|
| **有API平台** (Amazon MWS, eBay API) | 官方API | 后端 | OAuth/密钥 | 频率限制 |
| **无API平台** (TikTok Shop, Temu) | 浏览器插件 | 插件 | 需登录 | 指纹隔离+IP代理 |
| **公开数据** (1688公开页) | 浏览器插件 | 插件 | 无需登录 | 频率控制 |
| **需登录数据** (供应商后台) | 浏览器插件 | 插件 | 需登录 | 店铺隔离 |
| 平台类型 | 采集方式 | 执行位置 | 登录要求 | 反爬策略 |
| --------------------------------- | ----- | ---- | -------- | --------- |
| **有API平台** (Amazon MWS, eBay API) | 官方API | 后端 | OAuth/密钥 | 频率限制 |
| **无API平台** (TikTok Shop, Temu) | 浏览器插件 | 插件 | 需登录 | 指纹隔离+IP代理 |
| **公开数据** (1688公开页) | 浏览器插件 | 插件 | 无需登录 | 频率控制 |
| **需登录数据** (供应商后台) | 浏览器插件 | 插件 | 需登录 | 店铺隔离 |
- **流程**
1. **多平台采集**
@@ -89,15 +89,14 @@
- **后端严禁直接爬取电商平台页面**IP封禁、法律风险
- 所有网页级采集必须通过浏览器插件在用户端执行
- 插件必须实现店铺隔离一店一IP一指纹
- **📋 技术实现指引**
| 层级 | 实现模块 | 关键文件 | 任务ID |
|------|----------|----------|--------|
| 后端 | 平台API对接 | `PlatformApiService.ts` | BE-P005, BE-P006, BE-P007 |
| 后端 | 数据清洗引擎 | `DataPipelineService.ts` | DT-P001, DT-P002 |
| 插件 | 网页采集器 | `crawlerService.ts` | PL-C001, PL-C002 |
| 插件 | DOM解析 | `amazonCrawler.ts`, `tiktokCrawler.ts` | PL-C002 |
| AI | 套利分析 | `ArbitrageService.ts` | AI-A001 |
| 层级 | 实现模块 | 关键文件 | 任务ID |
| -- | ------- | -------------------------------------- | ------------------------- |
| 后端 | 平台API对接 | `PlatformApiService.ts` | BE-P005, BE-P006, BE-P007 |
| 后端 | 数据清洗引擎 | `DataPipelineService.ts` | DT-P001, DT-P002 |
| 插件 | 网页采集器 | `crawlerService.ts` | PL-C001, PL-C002 |
| 插件 | DOM解析 | `amazonCrawler.ts`, `tiktokCrawler.ts` | PL-C002 |
| AI | 套利分析 | `ArbitrageService.ts` | AI-A001 |
***
@@ -353,18 +352,16 @@
1. 高度隔离,降低账号封禁与关联风险
2. 自动化落地,提高效率与可扩展性
3. 支持多云部署,增强业务弹性和成本优化能力
- **📋 技术实现指引**
| 层级 | 实现模块 | 关键文件 | 任务ID |
|------|----------|----------|--------|
| 后端 | 店铺隔离管理 | `ShopIsolationService.ts` | BE-G003 |
| 后端 | 云镜像管理 | `CloudInstanceService.ts` | BE-G003 |
| 后端 | 任务调度器 | `TaskScheduler.ts` | BE-G003 |
| 插件 | 浏览器指纹管理 | `fingerprintService.ts` | PL-A001 |
| 插件 | 代理IP管理 | `proxyService.ts` | PL-A001 |
| 插件 | 自动化执行器 | `automationService.ts` | PL-A001, PL-A002 |
| 运维 | 健康监控 | `HealthMonitor.ts` | OP-M001 |
| 层级 | 实现模块 | 关键文件 | 任务ID |
| -- | ------- | ------------------------- | ---------------- |
| 后端 | 店铺隔离管理 | `ShopIsolationService.ts` | BE-G003 |
| 后端 | 云镜像管理 | `CloudInstanceService.ts` | BE-G003 |
| 后端 | 任务调度器 | `TaskScheduler.ts` | BE-G003 |
| 插件 | 浏览器指纹管理 | `fingerprintService.ts` | PL-A001 |
| 插件 | 代理IP管理 | `proxyService.ts` | PL-A001 |
| 插件 | 自动化执行器 | `automationService.ts` | PL-A001, PL-A002 |
| 运维 | 健康监控 | `HealthMonitor.ts` | OP-M001 |
- **🔗 插件管理架构**
```
┌─────────────────────────────────────────────────────────────┐
@@ -388,14 +385,13 @@
│ │
└─────────────────────────────────────────────────────────────┘
```
- **📡 插件通讯协议**
| 通讯方向 | 协议 | 用途 | 消息类型 |
|----------|------|------|----------|
| 后端 → 插件 | WebSocket | 实时任务下发 | `TASK_ASSIGN`, `CONFIG_UPDATE` |
| 插件 → 后端 | HTTP POST | 执行结果上报 | `TASK_COMPLETE`, `TASK_FAILED` |
| 插件 ↔ 后端 | HTTP GET | 状态查询/心跳 | `HEARTBEAT`, `STATUS_QUERY` |
| 插件内部 | Chrome Message | 组件间通讯 | `CRAWL_DATA`, `AUTO_ACTION` |
| 通讯方向 | 协议 | 用途 | 消息类型 |
| ------- | -------------- | ------- | ------------------------------ |
| 后端 → 插件 | WebSocket | 实时任务下发 | `TASK_ASSIGN`, `CONFIG_UPDATE` |
| 插件 → 后端 | HTTP POST | 执行结果上报 | `TASK_COMPLETE`, `TASK_FAILED` |
| 插件 ↔ 后端 | HTTP GET | 状态查询/心跳 | `HEARTBEAT`, `STATUS_QUERY` |
| 插件内部 | Chrome Message | 组件间通讯 | `CRAWL_DATA`, `AUTO_ACTION` |
***
@@ -995,53 +991,53 @@
#### 多商户入驻与认证闭环
| KPI 指标 | 描述 | 适用业务类型 |
| -------- | ------------ | --------- |
| 入驻转化率 | 注册到入驻成功的比例 | TOC + TOB |
| 资质审核时效 | 资质审核的平均时间 | TOC + TOB |
| 认证通过率 | 通过认证的商户比例 | TOC + TOB |
| 店铺绑定成功率 | 成功绑定平台店铺的比例 | TOC + TOB |
| 商户活跃度 | 商户月活跃比例 | TOC + TOB |
| KPI 指标 | 描述 | 适用业务类型 |
| ------- | ----------- | --------- |
| 入驻转化率 | 注册到入驻成功的比例 | TOC + TOB |
| 资质审核时效 | 资质审核的平均时间 | TOC + TOB |
| 认证通过率 | 通过认证的商户比例 | TOC + TOB |
| 店铺绑定成功率 | 成功绑定平台店铺的比例 | TOC + TOB |
| 商户活跃度 | 商户月活跃比例 | TOC + TOB |
#### 功能模块化与权限控制闭环
| KPI 指标 | 描述 | 适用业务类型 |
| -------- | ------------ | --------- |
| 模块使用率 | 各功能模块的使用比例 | TOC + TOB |
| 权限配置准确率 | 权限配置的准确性 | TOC + TOB |
| 数据隔离有效性 | 数据隔离的成功率 | TOC + TOB |
| 功能开关响应时效 | 功能开关生效的时间 | TOC + TOB |
| 配额利用率 | 商户使用配额的比例 | TOC + TOB |
| KPI 指标 | 描述 | 适用业务类型 |
| -------- | ---------- | --------- |
| 模块使用率 | 各功能模块的使用比例 | TOC + TOB |
| 权限配置准确率 | 权限配置的准确性 | TOC + TOB |
| 数据隔离有效性 | 数据隔离的成功率 | TOC + TOB |
| 功能开关响应时效 | 功能开关生效的时间 | TOC + TOB |
| 配额利用率 | 商户使用配额的比例 | TOC + TOB |
#### 功能开通与支付闭环
| KPI 指标 | 描述 | 适用业务类型 |
| ------- | ------------ | --------- |
| 支付成功率 | 支付成功的比例 | TOC + TOB |
| 开通时效 | 从支付到开通的时间 | TOC + TOB |
| 续费率 | 功能到期后续费的比例 | TOC + TOB |
| 退款率 | 申请退款的比例 | TOC + TOB |
| 发票开具及时率 | 发票按时开具的比例 | TOC + TOB |
| KPI 指标 | 描述 | 适用业务类型 |
| ------- | ---------- | --------- |
| 支付成功率 | 支付成功的比例 | TOC + TOB |
| 开通时效 | 从支付到开通的时间 | TOC + TOB |
| 续费率 | 功能到期后续费的比例 | TOC + TOB |
| 退款率 | 申请退款的比例 | TOC + TOB |
| 发票开具及时率 | 发票按时开具的比例 | TOC + TOB |
#### 多商户结算与财务闭环
| KPI 指标 | 描述 | 适用业务类型 |
| ------- | ------------ | --------- |
| 结算准确率 | 结算金额的准确性 | TOC + TOB |
| 结算时效 | 从交易到结算的时间 | TOC + TOB |
| 分润准确率 | 分润计算的准确性 | TOC + TOB |
| 提现成功率 | 提现申请成功的比例 | TOC + TOB |
| 对账差异率 | 财务对账的差异比例 | TOC + TOB |
| KPI 指标 | 描述 | 适用业务类型 |
| ------ | --------- | --------- |
| 结算准确率 | 结算金额的准确性 | TOC + TOB |
| 结算时效 | 从交易到结算的时间 | TOC + TOB |
| 分润准确率 | 分润计算的准确性 | TOC + TOB |
| 提现成功率 | 提现申请成功的比例 | TOC + TOB |
| 对账差异率 | 财务对账的差异比例 | TOC + TOB |
#### 多商户商品与订单管理闭环
| KPI 指标 | 描述 | 适用业务类型 |
| -------- | ------------ | --------- |
| 商品审核通过率 | 通过审核的商品比例 | TOC + TOB |
| 订单分配准确率 | 订单分配的准确性 | TOC + TOB |
| 库存同步准确率 | 多商户库存同步的准确性 | TOC + TOB |
| 超卖率 | 库存超卖的比例 | TOC + TOB |
| 物流轨迹覆盖率 | 可追踪物流的订单比例 | TOC + TOB |
| KPI 指标 | 描述 | 适用业务类型 |
| ------- | ----------- | --------- |
| 商品审核通过率 | 通过审核的商品比例 | TOC + TOB |
| 订单分配准确率 | 订单分配的准确性 | TOC + TOB |
| 库存同步准确率 | 多商户库存同步的准确性 | TOC + TOB |
| 超卖率 | 库存超卖的比例 | TOC + TOB |
| 物流轨迹覆盖率 | 可追踪物流的订单比例 | TOC + TOB |
***
@@ -1228,34 +1224,34 @@
#### 表命名规范
| 规则 | 要求 | 示例 |
|------|------|------|
| **表前缀** | 所有表必须以 `cf_` 开头 | `cf_product`, `cf_order`, `cf_shop` |
| **模块标识** | 按模块添加子前缀 | `cf_ai_` (AI模块), `cf_logistics_` (物流) |
| **命名风格** | 小写 + 下划线分隔 | `cf_consumer_orders`, `cf_ad_campaigns` |
| 规则 | 要求 | 示例 |
| -------- | --------------- | --------------------------------------- |
| **表前缀** | 所有表必须以 `cf_` 开头 | `cf_product`, `cf_order`, `cf_shop` |
| **模块标识** | 按模块添加子前缀 | `cf_ai_` (AI模块), `cf_logistics_` (物流) |
| **命名风格** | 小写 + 下划线分隔 | `cf_consumer_orders`, `cf_ad_campaigns` |
#### 核心表清单
| 表名 | 模块 | 说明 | 五元组追踪 |
|------|------|------|------------|
| `cf_tenant` | 租户 | 租户信息 | ✅ tenantId |
| `cf_shop` | 店铺 | 店铺信息 | ✅ tenantId, shopId |
| `cf_product` | 商品 | 商品主数据 | ✅ tenantId, shopId, traceId |
| `cf_product_sku` | 商品 | SKU变体 | ✅ tenantId, shopId, traceId |
| `cf_consumer_orders` | 订单 | C端订单 | ✅ tenantId, shopId, traceId |
| `cf_supplier` | 供应链 | 供应商信息 | ✅ tenantId, traceId |
| `cf_inventory` | 库存 | 库存记录 | ✅ tenantId, shopId, traceId |
| `cf_user` | 用户 | 系统用户 | ✅ tenantId |
| `cf_audit_log` | 审计 | 操作日志 | ✅ 五元组完整 |
| 表名 | 模块 | 说明 | 五元组追踪 |
| -------------------- | --- | ----- | --------------------------- |
| `cf_tenant` | 租户 | 租户信息 | ✅ tenantId |
| `cf_shop` | 店铺 | 店铺信息 | ✅ tenantId, shopId |
| `cf_product` | 商品 | 商品主数据 | ✅ tenantId, shopId, traceId |
| `cf_product_sku` | 商品 | SKU变体 | ✅ tenantId, shopId, traceId |
| `cf_consumer_orders` | 订单 | C端订单 | ✅ tenantId, shopId, traceId |
| `cf_supplier` | 供应链 | 供应商信息 | ✅ tenantId, traceId |
| `cf_inventory` | 库存 | 库存记录 | ✅ tenantId, shopId, traceId |
| `cf_user` | 用户 | 系统用户 | ✅ tenantId |
| `cf_audit_log` | 审计 | 操作日志 | ✅ 五元组完整 |
#### 字段规范
| 字段类型 | 规范 | 禁止 |
|----------|------|------|
| **金额** | `decimal(10,2)` | ❌ float/double |
| **物理属性** | 长度(cm), 重量(kg), 体积(m³) | - |
| **JSON数据** | 序列化存储,解析后使用 | - |
| **时间戳** | `created_at`, `updated_at` 必填 | - |
| 字段类型 | 规范 | 禁止 |
| ---------- | ----------------------------- | -------------- |
| **金额** | `decimal(10,2)` | ❌ float/double |
| **物理属性** | 长度(cm), 重量(kg), 体积(m³) | - |
| **JSON数据** | 序列化存储,解析后使用 | - |
| **时间戳** | `created_at`, `updated_at` 必填 | - |
#### 追踪五元组字段(所有业务表必须)
@@ -1271,12 +1267,12 @@
#### 数据完整性约束
| 约束 | 要求 |
|------|------|
| 约束 | 要求 |
| -------- | ------------------------------------------- |
| **唯一约束** | `cf_product` 表必须保证 (platform, productId) 唯一 |
| **外键约束** | 关键关联必须建立外键 |
| **幂等性** | 所有建表语句必须使用 `db.schema.hasTable` 前置校验 |
| **安全约束** | **⚠️ 严禁** 执行 `DROP`, `TRUNCATE` 等破坏性操作 |
| **外键约束** | 关键关联必须建立外键 |
| **幂等性** | 所有建表语句必须使用 `db.schema.hasTable` 前置校验 |
| **安全约束** | **⚠️ 严禁** 执行 `DROP`, `TRUNCATE` 等破坏性操作 |
***