feat: 新增多模块功能与服务实现
新增广告计划、用户资产、B2B交易、合规规则等核心模型 实现爬虫工作器、贸易服务、现金流预测等业务服务 添加RBAC权限测试、压力测试等测试用例 完善扩展程序的消息处理与内容脚本功能 重构应用入口与文档生成器 更新项目规则与业务闭环分析文档
This commit is contained in:
@@ -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` 等破坏性操作 |
|
||||
|
||||
***
|
||||
|
||||
|
||||
Reference in New Issue
Block a user