Files
makemd/docs/00_Business/Business_ClosedLoops/16_Others.md
wurenzhi 15ee1758f5 refactor: 重构项目结构并优化类型定义
- 移除extension模块,将功能迁移至node-agent
- 修复类型导出问题,使用export type明确类型导出
- 统一数据库连接方式,从直接导入改为使用config/database
- 更新文档中的项目结构描述
- 添加多个服务的实用方法,如getForecast、getBalances等
- 修复类型错误和TS1205警告
- 优化RedisService调用方式
- 添加新的实体类型定义
- 更新审计日志格式,统一字段命名
2026-03-21 15:04:06 +08:00

381 lines
16 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 16 其他独立业务闭环
> 本文档包含其他独立的业务闭环:定价与利润决策、核心服务优先级、多店铺管理、商家选择发货、客户/商家押金
---
## 1⃣5⃣ 定价与利润决策闭环Pricing & Profit Decision Loop
- **目标**:基于成本、市场和业务目标,自动生成定价策略和利润优化建议。
- **流程**
- 成本数据收集 → 市场分析 → 定价策略生成 → 利润预测 → 决策执行
- **决策点**
- 利润率红线控制B2C < 20% 预警B2B < 15% 禁止)
- 价格弹性分析
- 竞争定价策略
- **输入**:商品成本、运费、平台费、广告预估、市场竞争数据
- **输出**
- 建议售价
- 建议 ROI
- 上架决策(开/关)
- 广告投放 ROI 区间
- 最大可承受 CPA
***
## 5⃣0⃣ 核心服务优先级闭环Core Service Priority Loop
- **目标**:确定核心业务服务的优先级顺序,确保资源合理分配。
- **流程**
1. **服务评估**
- 业务价值评估
- 技术复杂度评估
- 资源需求评估
- 风险评估
2. **优先级排序**
- 基于业务价值的排序
- 基于依赖关系的排序
- 基于时间窗口的排序
3. **资源分配**
- 人力分配
- 技术资源分配
- 时间规划
4. **执行监控**
- 进度跟踪
- 资源使用监控
- 风险预警
- **决策点**
- 优先级调整时机
- 资源重新分配决策
- 项目范围变更管理
- **输入**:服务需求、业务目标、资源状况
- **输出**:优先级排序结果、资源分配计划、执行进度报告
- **状态机**`ASSESSMENT``PRIORITIZATION``RESOURCE_ALLOCATION``EXECUTION``MONITORING`
***
## 5⃣7⃣ 多店铺管理闭环Multi-Shop Management Loop
- **目标**:实现多店铺、多商户、多部门的统一管理与数据隔离,支持独立站/外部独立站/报表等一对多交互
- **层级架构**
```
商户(Merchant) → 部门(Department) → 店铺(Shop)
↓ ↓ ↓
商户级数据 部门级数据 店铺级数据
```
- **流程**
1. **店铺注册与配置**
- 店铺类型划分(独立站/平台店/外部独立站)
- 平台账号绑定
- 店铺基础信息配置
- 店铺状态管理
2. **权限配置**
- 层级权限继承
- 数据访问范围控制
- 操作权限分配
- 角色管理
3. **数据隔离**
- 店铺级数据隔离
- 部门级数据聚合
- 商户级数据汇总
- 跨店铺数据访问控制
4. **业务操作**
- 商品管理(单店/批量)
- 订单管理(单店/聚合)
- 库存管理(单店/同步)
- 价格管理(单店/批量)
5. **报表聚合**
- 单店报表
- 部门聚合报表
- 商户汇总报表
- 跨店对比分析
- **决策点**
- 店铺类型划分标准
- 数据权限边界定义
- 报表聚合规则
- 跨店操作权限
- **输入**:店铺信息、商户信息、部门信息、用户角色
- **输出**
- 店铺管理界面
- 跨店铺数据报表
- 权限控制策略
- 数据隔离配置
- **状态机**`SHOP_REGISTERED` → `SHOP_CONFIGURED` → `SHOP_ACTIVE` → `SHOP_SUSPENDED` → `SHOP_CLOSED`
***
## 2⃣0⃣ 商家选择发货闭环Merchant Selective Fulfillment Loop
- **目标**:商家可选择自己有库存的订单发货,剩余由平台/公司发货。
- **流程**
1. **订单选择**
- 商家登录落地页选择自己有货的订单发货
2. **系统检查**
- 押金或余额是否足够覆盖订单
- 时效性(保证订单不过期)
3. **订单状态更新**
- 状态流转:`available → requested → shipped → completed`
- 剩余无货订单由平台/公司自己发货
- **决策点**
- 订单分配规则
- 库存检查策略
- 时效保证机制
- **输入**
- 商家库存信息
- 订单数据
- 押金/余额状态
- **输出**
- 订单分配结果
- 发货状态更新
- 异常订单标记
***
## 1⃣9⃣ 客户/商家押金与账户管理闭环Customer/Merchant Deposit & Account Management Loop
- **目标**:管理客户预缴押金、账户余额,支持订单抵扣和提现。
- **流程**
1. **押金管理**
- 客户预缴押金100 元抵 2 单)
- 押金余额、已抵扣订单数量记录
2. **账户管理**
- 客户可查看:可申请发货订单、历史回款、押金/余额状态
- 自动扣减押金或余额完成发货操作
3. **提现管理**
- 检查账户余额 → 生成提现单 → 审核 → 打款
- **决策点**
- 押金抵扣规则
- 提现审核流程
- 余额管理策略
- **输入**
- 客户押金信息
- 订单数据
- 提现申请
- **输出**
- 押金/余额状态
- 提现处理结果
- 财务流水记录
***
## 相关KPI
### 定价与利润决策闭环
| KPI 指标 | 描述 | 适用业务类型 |
| ------- | ------------- | --------- |
| 定价准确率 | 建议售价与最优价格的偏差率 | TOC + TOB |
| 利润率达标率 | 达到目标利润率的商品比例 | TOC + TOB |
| 定价决策时效 | 从成本数据到定价决策的时间 | TOC + TOB |
| 价格竞争力 | 与市场平均价格的对比 | TOC + TOB |
| 利润预测准确率 | 预测利润与实际利润的偏差率 | TOC + TOB |
### 多店铺管理闭环
| KPI 指标 | 描述 | 适用业务类型 |
| ------ | ----------- | --------- |
| 店铺数量 | 管理的店铺总数 | TOC + TOB |
| 活跃店铺数 | 活跃店铺数量 | TOC + TOB |
| 跨店订单量 | 跨店铺订单数量 | TOC + TOB |
| 数据隔离有效性 | 数据隔离的成功率 | TOC + TOB |
| 报表生成效率 | 报表生成的平均时间 | TOC + TOB |
***
## 7⃣7⃣ Node Agent 任务执行闭环Node Agent Task Execution Loop
- **目标**:通过 Playwright 自动化代理执行无 API 平台的操作任务,实现采集、刊登、订单处理等自动化。
- **架构**
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Server │◄────►│ Hub │◄────►│ Node-Agent │
│ (主控端) │ │ (任务调度) │ │ (Playwright)│
└─────────────┘ └─────────────┘ └─────────────┘
┌──────▼──────┐
│ Chromium │
│ (无API平台) │
└─────────────┘
```
- **流程**
1. **节点注册**
- Node Agent 启动时向 Hub 注册
- 上报节点 ID、版本、操作系统、主机名
- 加载本地店铺配置
2. **心跳维持**
- 定时向 Hub 发送心跳(默认 30 秒)
- 维持节点在线状态
- 检测连接异常并自动重连
3. **任务轮询**
- 定时从 Hub 拉取任务(默认 10 秒)
- 获取待执行的任务队列
- 按优先级和店铺隔离规则执行
4. **任务执行**
- 启动 Playwright 浏览器实例
- 配置代理 IP 和浏览器指纹
- 执行具体任务(采集/刊登/订单处理)
- 收集执行结果和截图
5. **结果上报**
- 向 Hub 上报任务执行结果
- 包含状态、数据、错误信息
- 支持重试机制
- **任务类型**
| 任务类型 | 说明 | 适用平台 |
|---------|------|---------|
| `COLLECT_PRODUCT` | 商品数据采集 | TikTok Shop, Temu, 1688 |
| `COLLECT_ORDER` | 订单数据采集 | TikTok Shop, Temu |
| `PUBLISH_PRODUCT` | 商品刊登 | TikTok Shop, Temu |
| `PROCESS_ORDER` | 订单处理(发货、取消) | TikTok Shop, Temu |
| `SYNC_INVENTORY` | 库存同步 | TikTok Shop, Temu |
| `MANAGE_AD` | 广告管理 | TikTok Shop |
- **店铺隔离策略**
- **一店一上下文**:每个店铺独立的 profileDir、proxy、fingerprintPolicy
- **同店任务串行**:同一店铺的任务严格串行执行
- **跨店任务并行**:不同店铺的任务可并行执行
- **反检测策略**
| 策略 | 说明 |
|------|------|
| **指纹隔离** | 每个店铺独立浏览器指纹 |
| **代理 IP** | 每个店铺独立代理 |
| **行为模拟** | 随机延迟、鼠标轨迹 |
| **User-Agent** | 随机 UA 轮换 |
- **决策点**
- 任务优先级排序
- 浏览器实例数量控制
- 失败重试策略
- 异常处理机制
- **输入**:任务配置、店铺信息、代理配置、指纹策略
- **输出**:执行结果、采集数据、截图日志
- **状态机**
- 节点:`OFFLINE` → `REGISTERING` → `ONLINE` → `BUSY` → `OFFLINE`
- 任务:`PENDING` → `PULLED` → `EXECUTING` → `SUCCESS` / `FAILED`
***
## 7⃣8⃣ 前端-后端-Node Agent 调用链路闭环Frontend-Backend-NodeAgent Call Chain Loop
- **目标**:定义从前端操作到 Node Agent 执行的完整调用链路,确保数据流和状态同步。
- **架构层次**
```
┌─────────────────────────────────────────────────────────────┐
│ 用户操作层 │
│ Dashboard (React) → 用户点击"采集商品"按钮 │
└──────────────────────────┬──────────────────────────────────┘
│ HTTP Request
┌─────────────────────────────────────────────────────────────┐
│ API 网关层 │
│ Server Controller → 权限校验 → 参数验证 → 调用 Service │
└──────────────────────────┬──────────────────────────────────┘
│ Service Call
┌─────────────────────────────────────────────────────────────┐
│ 业务逻辑层 │
│ Service → 创建任务 → 存入数据库 → 推送到 Hub 队列 │
└──────────────────────────┬──────────────────────────────────┘
│ Queue Push
┌─────────────────────────────────────────────────────────────┐
│ 任务调度层 │
│ Hub → 任务队列 → 分配给 Node Agent → 监控执行状态 │
└──────────────────────────┬──────────────────────────────────┘
│ Task Pull
┌─────────────────────────────────────────────────────────────┐
│ 执行代理层 │
│ Node Agent → Playwright 执行 → 采集数据 → 上报结果 │
└──────────────────────────┬──────────────────────────────────┘
│ Result Report
┌─────────────────────────────────────────────────────────────┐
│ 数据回写层 │
│ Hub → 更新任务状态 → 通知 Server → WebSocket 推送前端 │
└─────────────────────────────────────────────────────────────┘
```
- **调用链路示例**(商品采集):
1. **前端发起**
```typescript
// Dashboard: 用户点击采集按钮
const handleCollect = async () => {
const result = await collectProductDataSource.create({
platform: 'TikTok',
shopId: 'shop-123',
productUrl: 'https://...'
});
};
```
2. **后端处理**
```typescript
// Server: Controller → Service
@router.post('/api/v1/collect/product')
async collectProduct(req: Request, res: Response) {
const task = await CrawlerService.createCollectTask(req.body);
await HubQueueService.pushTask(task);
res.json({ taskId: task.id, status: 'PENDING' });
}
```
3. **Hub 调度**
```typescript
// Hub: 任务队列管理
async pushTask(task: Task) {
await TaskQueue.add(task);
await this.notifyNodeAgents();
}
```
4. **Node Agent 执行**
```typescript
// Node Agent: Playwright 执行
async executeTask(task: NodeTask) {
const browser = await chromium.launch({ proxy: task.proxy });
const page = await browser.newPage();
const data = await this.collectProduct(page, task.payload);
await this.reportReceipt({ taskId: task.id, data });
}
```
5. **结果回写**
```typescript
// Server: 接收结果
@router.post('/api/v1/publish/receipt')
async handleReceipt(req: Request, res: Response) {
await CrawlerService.saveCollectResult(req.body);
await WebSocketService.notifyFrontend(req.body.taskId, 'SUCCESS');
}
```
- **状态同步机制**
| 机制 | 说明 |
|------|------|
| **WebSocket 推送** | 实时推送任务状态到前端 |
| **轮询查询** | 前端定时查询任务状态 |
| **事件总线** | 内部服务间状态同步 |
- **决策点**
- 任务优先级设置
- 超时处理策略
- 失败重试机制
- 并发控制策略
- **输入**:用户操作、任务配置、执行参数
- **输出**:任务状态、执行结果、通知消息
- **状态机**`USER_ACTION` → `API_REQUEST` → `TASK_CREATED` → `TASK_QUEUED` → `TASK_EXECUTING` → `TASK_COMPLETED` → `RESULT_SAVED` → `FRONTEND_NOTIFIED`
***
## 相关KPI
### Node Agent 任务执行闭环
| KPI 指标 | 描述 | 适用业务类型 |
|---------|------|-------------|
| 任务成功率 | 成功执行的任务比例 | TOC + TOB |
| 平均执行时间 | 任务执行的平均耗时 | TOC + TOB |
| 节点在线率 | Node Agent 在线时间比例 | TOC + TOB |
| 采集数据准确率 | 采集数据的准确性 | TOC + TOB |
| 反检测成功率 | 未被平台检测的成功率 | TOC + TOB |
### 前端-后端-Node Agent 调用链路闭环
| KPI 指标 | 描述 | 适用业务类型 |
|---------|------|-------------|
| 端到端延迟 | 从用户操作到结果返回的时间 | TOC + TOB |
| 链路成功率 | 完整链路执行成功的比例 | TOC + TOB |
| 状态同步延迟 | 状态更新到前端显示的时间 | TOC + TOB |
| 错误恢复率 | 错误后自动恢复的比例 | TOC + TOB |