Files
makemd/docs/LOOPS/16_Others.md

381 lines
16 KiB
Markdown
Raw Permalink Normal View History

# 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 |