refactor(services): 重构服务文件结构,将服务按功能分类到不同目录

- 将服务文件按功能分类到core、ai、analytics、security等目录
- 修复logger导入路径问题,统一使用相对路径
- 更新相关文件的导入路径引用
- 添加新的批量操作组件导出文件
- 修复dashboard页面中的类型错误
- 添加dotenv依赖到package.json
This commit is contained in:
2026-03-25 13:46:26 +08:00
parent e59d7c6620
commit 2748456d8a
598 changed files with 74404 additions and 9576 deletions

838
docs/LOOPS/19_Ad_System.md Normal file
View File

@@ -0,0 +1,838 @@
# 19 广告系统业务闭环 v1.0
> 本文档包含广告系统的完整设计维度体系、数据库结构、后端服务、前端组件、数据源抽象、订阅等级、AI权限、交叉学习架构
---
## 1⃣ 广告系统概述
### 1.1 系统定位
广告系统是**业务核心页**,直接影响利润放大。系统需要:
- 管理多平台广告Amazon/TikTok/Shopee/eBay等
- 提供AI驱动的优化建议
- 支持人工与AI协作决策
- 记录运营经验实现跨平台学习
### 1.2 核心理念
| 理念 | 说明 |
|------|------|
| **AI建议一直有** | 不管什么订阅等级AI建议永不中断 |
| **AI执行看等级** | 能不能自动执行,看用户付费多少 |
| **数据分层索引** | AI处理能力有限数据要分层索引/模型化 |
| **跨平台学习** | 通用指标交叉学习,平台专用指标独立学习 |
---
## 2⃣ 广告维度体系(四层结构)
### 2.1 维度层级图
```
┌─────────────────────────────────────────────────────────┐
│ 📊 最终结果层:实际消耗 / 实际营收 / 净收益 / ROI │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 1⃣ 广告计划维度Campaign Level
│ 预算/消耗/收入/ROI/ROAS/订单数/开始时间 │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 2⃣ 商品维度Product Level← 你刚补充的 │
│ 商品图片/名称/状态/消耗/订单数/收入/ROI │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 3⃣ 素材维度Creative Level
│ 创意ID/视频指标/CTR/CVR/完播率 │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 4⃣ 人工操作维度Human Operation Level
│ 运营经验/干预成功率/响应时间/操作记录 │
└─────────────────────────────────────────────────────────┘
```
### 2.2 第一层广告计划维度Campaign
| 字段 | 类型 | 说明 |
|------|------|------|
| campaignId | string | 广告计划唯一ID |
| campaignName | string | 广告计划名称 |
| status | enum | ACTIVE/PAUSED/ENDED/DRAFTED |
| roasBid | decimal | ROAS出价目标ROAS |
| targetRoi | decimal | 目标ROI |
| budget | decimal | 预算 |
| dailyBudget | decimal | 日预算 |
| netSpend | decimal | 净花费 |
| totalSpend | decimal | 总花费 |
| totalRevenue | decimal | 总收入 |
| totalOrders | integer | 总订单数 |
| avgOrderCost | decimal | 平均订单成本 = 净花费/订单数 |
| roi | decimal | ROI = 总收入/总花费 |
| startDate | date | 开始时间 |
| endDate | date | 结束时间 |
| platform | enum | AMAZON/TIKTOK/SHOPEE/EBUY等 |
| shopId | string | 店铺ID |
| advertiserName | string | 广告主名称 |
### 2.3 第二层商品维度Product
| 字段 | 类型 | 说明 |
|------|------|------|
| productId | string | 商品ID |
| productName | string | 商品名称 |
| productImage | string | 商品图片URL |
| campaignId | string | 所属广告计划ID |
| seriesName | string | 推广系列名称 |
| status | enum | ACTIVE/PAUSED |
| spend | decimal | 该商品消耗金额 |
| orders | integer | 该商品订单数 |
| avgOrderCost | decimal | 平均订单成本 |
| revenue | decimal | 该商品收入 |
| roi | decimal | 该商品ROI |
| shopName | string | 店铺名称 |
| advertiserName | string | 广告主名称 |
### 2.4 第三层素材维度Creative
| 字段 | 类型 | 说明 |
|------|------|------|
| creativeId | string | 创意ID |
| seriesId | string | 推广系列ID |
| seriesName | string | 推广系列名称 |
| productId | string | 商品ID |
| statDate | date | 统计日期 |
| spend | decimal | 消耗金额 |
| orderCost | decimal | 单订单成本 |
| revenue | decimal | 总收入 |
| roi | decimal | 投资回报率 |
| currency | enum | USD/CNY/EUR等 |
| orders | integer | 订单数 |
| productCtr | decimal | 商品点击率 = clicks/impressions |
| productClicks | integer | 商品点击数 |
| productImpressions | integer | 商品展示数 |
| adCtr | decimal | 广告点击率 |
| adCvr | decimal | 广告转化率 |
| videoWatch2s | decimal | 2秒视频观看率TikTok |
| videoWatch6s | decimal | 6秒视频观看率TikTok |
| videoWatch25 | decimal | 25%视频观看率 |
| videoWatch50 | decimal | 50%视频观看率 |
| videoWatch75 | decimal | 75%视频观看率 |
| videoWatch100 | decimal | 100%视频观看率 |
| creativeStatus | enum | 投放中/暂停/结束 |
| shopName | string | 店铺名称 |
| advertiserName | string | 广告主名称 |
### 2.5 第四层人工操作维度Human Operation
| 字段 | 类型 | 说明 |
|------|------|------|
| operatorId | string | 操作人ID |
| operatorName | string | 操作人名称 |
| operateTime | datetime | 操作时间 |
| operateType | enum | 启动/暂停/调预算/调出价/换素材/审核通过/审核拒绝等 |
| targetType | enum | 广告计划/商品/素材 |
| targetId | string | 操作对象ID |
| beforeValue | json | 操作前的值 |
| afterValue | json | 操作后的值 |
| reason | string | 操作原因 |
| expectedEffect | string | 预期效果 |
| actualEffect | json | 实际效果(事后回填) |
| success | boolean | 是否成功(事后评估) |
**操作类型枚举:**
| 类型 | 说明 |
|------|------|
| RESUME | 启动广告 |
| PAUSE | 暂停广告 |
| ADJUST_BUDGET | 调整预算 |
| ADJUST_BID | 调整出价 |
| CHANGE_CREATIVE | 更换素材 |
| APPROVE | 审核通过 |
| REJECT | 审核拒绝 |
| CHANGE_SCHEDULE | 修改投放时间 |
| ADD_KEYWORDS | 添加关键词 |
| REMOVE_KEYWORDS | 删除关键词 |
---
## 3⃣ 数据库设计cf_ad_* 表结构)
### 3.1 表清单
| 表名 | 说明 |
|------|------|
| cf_ad_campaign | 广告计划表 |
| cf_ad_product | 广告商品表 |
| cf_ad_creative | 广告素材表 |
| cf_ad_human_operation | 人工操作记录表 |
| cf_ad_platform_metrics | 平台原始指标表(每日) |
| cf_ad_ai_suggestion | AI建议记录表 |
### 3.2 cf_ad_campaign广告计划表
```sql
CREATE TABLE cf_ad_campaign (
id VARCHAR(36) PRIMARY KEY,
tenant_id VARCHAR(36) NOT NULL COMMENT '租户ID',
shop_id VARCHAR(36) NOT NULL COMMENT '店铺ID',
campaign_id VARCHAR(64) NOT NULL COMMENT '平台广告计划ID',
campaign_name VARCHAR(256) NOT NULL COMMENT '广告计划名称',
platform VARCHAR(32) NOT NULL COMMENT '平台AMAZON/TIKTOK/SHOPEE等',
status ENUM('DRAFTED','ACTIVE','PAUSED','ENDED') DEFAULT 'DRAFTED',
budget DECIMAL(12,2) DEFAULT 0 COMMENT '总预算',
daily_budget DECIMAL(12,2) DEFAULT 0 COMMENT '日预算',
roas_bid DECIMAL(10,4) DEFAULT 0 COMMENT 'ROAS出价',
target_roi DECIMAL(10,4) DEFAULT 0 COMMENT '目标ROI',
net_spend DECIMAL(12,2) DEFAULT 0 COMMENT '净花费',
total_spend DECIMAL(12,2) DEFAULT 0 COMMENT '总花费',
total_revenue DECIMAL(12,2) DEFAULT 0 COMMENT '总收入',
total_orders INT DEFAULT 0 COMMENT '总订单数',
avg_order_cost DECIMAL(10,2) DEFAULT 0 COMMENT '平均订单成本',
roi DECIMAL(10,4) DEFAULT 0 COMMENT 'ROI',
start_date DATE COMMENT '开始时间',
end_date DATE COMMENT '结束时间',
advertiser_name VARCHAR(128) COMMENT '广告主名称',
ai_confidence DECIMAL(5,4) DEFAULT 1.0 COMMENT 'AI信心指数',
last_optimized_at DATETIME COMMENT '最后优化时间',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_tenant_campaign (tenant_id, campaign_id, platform),
INDEX idx_tenant_shop (tenant_id, shop_id),
INDEX idx_platform_status (platform, status)
) COMMENT='广告计划表';
```
### 3.3 cf_ad_product广告商品表
```sql
CREATE TABLE cf_ad_product (
id VARCHAR(36) PRIMARY KEY,
tenant_id VARCHAR(36) NOT NULL,
shop_id VARCHAR(36) NOT NULL,
campaign_id VARCHAR(36) NOT NULL COMMENT '关联广告计划',
product_id VARCHAR(64) NOT NULL COMMENT '商品ID',
product_name VARCHAR(256) COMMENT '商品名称',
product_image VARCHAR(512) COMMENT '商品图片',
series_name VARCHAR(128) COMMENT '推广系列名称',
status ENUM('ACTIVE','PAUSED') DEFAULT 'ACTIVE',
spend DECIMAL(12,2) DEFAULT 0 COMMENT '消耗',
orders INT DEFAULT 0 COMMENT '订单数',
avg_order_cost DECIMAL(10,2) DEFAULT 0 COMMENT '平均订单成本',
revenue DECIMAL(12,2) DEFAULT 0 COMMENT '收入',
roi DECIMAL(10,4) DEFAULT 0 COMMENT 'ROI',
shop_name VARCHAR(128) COMMENT '店铺名称',
advertiser_name VARCHAR(128) COMMENT '广告主名称',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_campaign_product (campaign_id, product_id),
INDEX idx_tenant_shop (tenant_id, shop_id)
) COMMENT='广告商品表';
```
### 3.4 cf_ad_creative广告素材表
```sql
CREATE TABLE cf_ad_creative (
id VARCHAR(36) PRIMARY KEY,
tenant_id VARCHAR(36) NOT NULL,
campaign_id VARCHAR(36) NOT NULL,
product_id VARCHAR(36) NOT NULL,
creative_id VARCHAR(64) NOT NULL COMMENT '平台素材ID',
series_id VARCHAR(64) COMMENT '推广系列ID',
series_name VARCHAR(128) COMMENT '推广系列名称',
creative_url VARCHAR(512) COMMENT '素材URL',
creative_type ENUM('IMAGE','VIDEO') DEFAULT 'IMAGE',
status ENUM('RUNNING','PAUSED','ENDED') DEFAULT 'RUNNING',
spend DECIMAL(12,2) DEFAULT 0,
revenue DECIMAL(12,2) DEFAULT 0,
roi DECIMAL(10,4) DEFAULT 0,
currency VARCHAR(8) DEFAULT 'USD',
orders INT DEFAULT 0,
product_ctr DECIMAL(8,4) DEFAULT 0 COMMENT '商品点击率',
product_clicks INT DEFAULT 0,
product_impressions INT DEFAULT 0,
ad_ctr DECIMAL(8,4) DEFAULT 0,
ad_cvr DECIMAL(8,4) DEFAULT 0,
video_watch_2s DECIMAL(8,4) DEFAULT 0 COMMENT '2秒观看率',
video_watch_6s DECIMAL(8,4) DEFAULT 0,
video_watch_25 DECIMAL(8,4) DEFAULT 0,
video_watch_50 DECIMAL(8,4) DEFAULT 0,
video_watch_75 DECIMAL(8,4) DEFAULT 0,
video_watch_100 DECIMAL(8,4) DEFAULT 0,
shop_name VARCHAR(128),
advertiser_name VARCHAR(128),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_campaign_creative (campaign_id, creative_id),
INDEX idx_product (product_id)
) COMMENT='广告素材表';
```
### 3.5 cf_ad_human_operation人工操作记录表
```sql
CREATE TABLE cf_ad_human_operation (
id VARCHAR(36) PRIMARY KEY,
tenant_id VARCHAR(36) NOT NULL,
operator_id VARCHAR(36) NOT NULL,
operator_name VARCHAR(64) NOT NULL,
operate_time DATETIME NOT NULL,
operate_type ENUM('RESUME','PAUSE','ADJUST_BUDGET','ADJUST_BID','CHANGE_CREATIVE',
'APPROVE','REJECT','CHANGE_SCHEDULE','ADD_KEYWORDS','REMOVE_KEYWORDS') NOT NULL,
target_type ENUM('CAMPAIGN','PRODUCT','CREATIVE') NOT NULL,
target_id VARCHAR(36) NOT NULL,
before_value JSON COMMENT '操作前值',
after_value JSON COMMENT '操作后值',
reason TEXT COMMENT '操作原因',
expected_effect TEXT COMMENT '预期效果',
actual_effect JSON COMMENT '实际效果',
success BOOLEAN COMMENT '是否成功',
evaluated_at DATETIME COMMENT '评估时间',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX idx_tenant_operator (tenant_id, operator_id),
INDEX idx_target (target_type, target_id),
INDEX idx_operate_time (operate_time)
) COMMENT='人工操作记录表';
```
### 3.6 cf_ad_ai_suggestionAI建议记录表
```sql
CREATE TABLE cf_ad_ai_suggestion (
id VARCHAR(36) PRIMARY KEY,
tenant_id VARCHAR(36) NOT NULL,
shop_id VARCHAR(36) NOT NULL,
campaign_id VARCHAR(36),
product_id VARCHAR(36),
creative_id VARCHAR(36),
suggestion_type ENUM('RESUME','PAUSE','ADJUST_BUDGET','ADJUST_BID',
'CHANGE_CREATIVE','CREATE','DELETE') NOT NULL,
target_type ENUM('CAMPAIGN','PRODUCT','CREATIVE') NOT NULL,
target_id VARCHAR(36) NOT NULL,
current_value JSON NOT NULL COMMENT '当前值',
suggested_value JSON NOT NULL COMMENT '建议值',
confidence DECIMAL(5,4) NOT NULL COMMENT '置信度 0-1',
risk_level ENUM('LOW','MEDIUM','HIGH','CRITICAL') DEFAULT 'LOW',
estimated_impact JSON COMMENT '预估影响',
reason TEXT COMMENT 'AI推理原因',
status ENUM('PENDING','APPROVED','REJECTED','EXECUTED','EXPIRED') DEFAULT 'PENDING',
required_action ENUM('AUTO_EXECUTE','PENDING_REVIEW','AUTO_REJECT') DEFAULT 'PENDING_REVIEW',
reviewed_by VARCHAR(36),
reviewed_at DATETIME,
executed_at DATETIME,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX idx_tenant_campaign (tenant_id, campaign_id),
INDEX idx_status (status),
INDEX idx_required_action (required_action)
) COMMENT='AI建议记录表';
```
---
## 4⃣ 后端API结构
### 4.1 Controller层
```
server/src/api/controllers/
├── AdController.ts # 广告计划CRUD
├── AdProductController.ts # 广告商品CRUD
├── AdCreativeController.ts # 广告素材CRUD
├── AdOperationController.ts # 人工操作记录
└── AdAnalyticsController.ts # 数据分析
```
### 4.2 Service层
```
server/src/services/
├── AdCampaignService.ts # 广告计划服务
├── AdProductService.ts # 广告商品服务
├── AdCreativeService.ts # 广告素材服务
├── AdHumanOperationService.ts # 人工操作服务
├── AdAnalyticsService.ts # 数据分析服务
└── AdAIRecommendationService.ts # AI建议服务
```
### 4.3 核心API接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/v1/ad/campaigns | 获取广告计划列表 |
| POST | /api/v1/ad/campaigns | 创建广告计划 |
| GET | /api/v1/ad/campaigns/:id | 获取广告计划详情 |
| PUT | /api/v1/ad/campaigns/:id | 更新广告计划 |
| PUT | /api/v1/ad/campaigns/:id/status | 更新广告状态 |
| POST | /api/v1/ad/campaigns/:id/resume | 启动广告 |
| POST | /api/v1/ad/campaigns/:id/pause | 暂停广告 |
| GET | /api/v1/ad/campaigns/:id/products | 获取广告商品列表 |
| GET | /api/v1/ad/campaigns/:id/analytics | 获取广告分析数据 |
| GET | /api/v1/ad/ai-suggestions | 获取AI建议列表 |
| POST | /api/v1/ad/ai-suggestions/:id/approve | 审批AI建议 |
| POST | /api/v1/ad/ai-suggestions/:id/reject | 拒绝AI建议 |
| GET | /api/v1/ad/operations | 获取操作记录 |
| POST | /api/v1/ad/operations | 记录人工操作 |
### 4.4 Service接口定义
```typescript
// AdCampaignService.ts
export class AdCampaignService {
// 基础CRUD
static async createCampaign(params: CreateCampaignParams): Promise<AdCampaign>;
static async getCampaignById(id: string): Promise<AdCampaign>;
static async updateCampaign(id: string, updates: Partial<AdCampaign>): Promise<AdCampaign>;
static async deleteCampaign(id: string): Promise<void>;
// 状态操作
static async resumeCampaign(id: string, userId: string): Promise<AdCampaign>;
static async pauseCampaign(id: string, userId: string): Promise<AdCampaign>;
// 查询
static async listCampaigns(tenantId: string, shopId: string, filters?: CampaignFilters): Promise<AdCampaign[]>;
static async getCampaignAnalytics(id: string, dateRange: DateRange): Promise<CampaignAnalytics>;
// AI相关
static async getAISuggestions(campaignId: string): Promise<AISuggestion[]>;
static async applyAISuggestion(suggestionId: string, approved: boolean, userId: string): Promise<void>;
}
```
---
## 5⃣ 前端组件结构
### 5.1 页面结构
```
dashboard/src/pages/Ad/
├── index.tsx # 广告主页
├── CampaignList.tsx # 广告计划列表
├── CampaignDetail.tsx # 广告计划详情
├── ProductList.tsx # 广告商品列表
├── CreativeList.tsx # 广告素材列表
├── AIOptimization/ # AI优化模块
│ ├── index.tsx # AI优化主页
│ ├── SuggestionList.tsx # 建议列表
│ └── SuggestionDetail.tsx # 建议详情
├── Analytics/ # 数据分析模块
│ ├── index.tsx # 分析主页
│ ├── PerformanceChart.tsx # 效果图表
│ └── TrendAnalysis.tsx # 趋势分析
└── OperationLog/ # 操作记录模块
└── index.tsx # 操作日志
```
### 5.2 DataSource抽象层
```typescript
// dashboard/src/services/adDataSource.ts
// ==================== 类型定义 ====================
export interface AdCampaign {
id: string;
campaignName: string;
platform: Platform;
status: CampaignStatus;
budget: number;
spend: number;
revenue: number;
roi: number;
// ... 其他字段
}
export interface AdProduct {
id: string;
productId: string;
productName: string;
productImage: string;
campaignId: string;
status: ProductStatus;
spend: number;
orders: number;
revenue: number;
roi: number;
}
export interface AdCreative {
id: string;
creativeId: string;
productId: string;
creativeUrl: string;
creativeType: 'IMAGE' | 'VIDEO';
status: CreativeStatus;
spend: number;
orders: number;
roi: number;
videoMetrics?: VideoMetrics;
}
export interface AISuggestion {
id: string;
suggestionType: SuggestionType;
targetType: 'CAMPAIGN' | 'PRODUCT' | 'CREATIVE';
targetId: string;
currentValue: any;
suggestedValue: any;
confidence: number;
riskLevel: RiskLevel;
status: SuggestionStatus;
}
// ==================== DataSource接口 ====================
export interface IAdDataSource {
// 广告计划
fetchCampaigns(params?: CampaignQueryParams): Promise<AdCampaign[]>;
fetchCampaignById(id: string): Promise<AdCampaign>;
createCampaign(data: CreateCampaignData): Promise<AdCampaign>;
updateCampaign(id: string, data: UpdateCampaignData): Promise<AdCampaign>;
resumeCampaign(id: string): Promise<AdCampaign>;
pauseCampaign(id: string): Promise<AdCampaign>;
// 广告商品
fetchProductsByCampaign(campaignId: string): Promise<AdProduct[]>;
// 广告素材
fetchCreativesByProduct(productId: string): Promise<AdCreative[]>;
// AI建议
fetchAISuggestions(campaignId?: string): Promise<AISuggestion[]>;
approveSuggestion(id: string): Promise<AISuggestion>;
rejectSuggestion(id: string): Promise<AISuggestion>;
// 分析数据
fetchCampaignAnalytics(campaignId: string, dateRange: DateRange): Promise<CampaignAnalytics>;
// 操作记录
fetchOperations(params?: OperationQueryParams): Promise<OperationRecord[]>;
recordOperation(data: OperationRecordData): Promise<OperationRecord>;
}
```
---
## 6⃣ 订阅等级与AI权限映射
### 6.1 订阅等级定义
| 等级 | 说明 | 典型用户 |
|------|------|---------|
| FREE | 免费版 | 个人卖家/试用用户 |
| BASIC | 基础版 | 小型卖家 |
| PROFESSIONAL | 专业版 | 中型卖家 |
| ENTERPRISE | 企业版 | 大型卖家/代理商 |
### 6.2 AI权限映射
| 功能 | FREE | BASIC | PROFESSIONAL | ENTERPRISE |
|------|------|-------|--------------|------------|
| AI建议 | ✅ 始终有 | ✅ 始终有 | ✅ 始终有 | ✅ 始终有 |
| 广告计划创建 | 人工 | 人工 | AI辅助 | AI自动 |
| 广告启动/暂停 | 人工 | 人工+低风险AI | AI中风险 | AI高风险 |
| 预算调整 | 人工 | ≤1000自动 | ≤10000自动 | 无限制 |
| 素材更换 | 人工 | 人工 | AI辅助 | AI自动 |
| 数据分析深度 | 基础 | 进阶 | 高级 | 全部 |
| 跨平台学习 | ❌ | ❌ | ✅ | ✅ |
| 自定义阈值 | ❌ | ❌ | ✅ | ✅ |
### 6.3 阈值配置示例
```typescript
const AI_PERMISSION_CONFIG = {
FREE: {
autoExecuteConfidence: 1.0, // 必须100%置信度(实际上不可能)
maxAutoBudget: 0,
allowedRiskLevels: [],
requireHumanApproval: true,
},
BASIC: {
autoExecuteConfidence: 0.95,
maxAutoBudget: 1000,
allowedRiskLevels: ['LOW'],
requireHumanApproval: true,
},
PROFESSIONAL: {
autoExecuteConfidence: 0.80,
maxAutoBudget: 10000,
allowedRiskLevels: ['LOW', 'MEDIUM'],
requireHumanApproval: false,
},
ENTERPRISE: {
autoExecuteConfidence: 0.55,
maxAutoBudget: Infinity,
allowedRiskLevels: ['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'],
requireHumanApproval: false,
},
};
```
---
## 7⃣ 交叉学习架构
### 7.1 设计原则
| 原则 | 说明 |
|------|------|
| 通用指标交叉学习 | spend/revenue/orders/roi/ctr/cvr 所有平台通用 |
| 平台专用指标独立学习 | video_watch_*/acos等只在对应平台学习 |
| 分层模型架构 | 通用层 → 平台专用层 |
### 7.2 交叉学习架构图
```
┌─────────────────────────────────────────────────────────────┐
│ 数据输入层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │Amazon │ │ TikTok │ │ Shopee │ │ eBay │ │
│ │ 数据 │ │ 数据 │ │ 数据 │ │ 数据 │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
└───────┼───────────┼───────────┼───────────┼────────────────┘
↓ ↓ ↓ ↓
┌─────────────────────────────────────────────────────────────┐
│ 指标提取层 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 通用指标提取 │ │
│ │ spend, revenue, orders, roi, ctr, cvr │ │
│ │ → 进入跨平台学习池 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Amazon专用 │ │ TikTok专用 │ │ Shopee专用 │ │
│ │ ACoS指标 │ │ 视频指标 │ │ 平台互动指标 │ │
│ │ → 独立学习 │ │ → 独立学习 │ │ → 独立学习 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 模型训练层 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 跨平台通用模型 │ │
│ │ 学到:预算分配原则/出价策略/效果预测 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Amazon模型 │ │ TikTok模型 │ │ Shopee模型 │ │
│ │ ACoS优化 │ │ 视频优化 │ │ 互动优化 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 建议输出层 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 通用建议:预算怎么分/要不要暂停/要不要加投 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │Amazon建议 │ │TikTok建议 │ │Shopee建议 │ │
│ │ 降低ACoS │ │ 优化视频开头 │ │ 提高互动率 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
### 7.3 维度索引/模型
| 索引/模型 | 说明 | AI调用场景 |
|-----------|------|-----------|
| campaign_aggregation | 广告计划聚合统计 | 需要计划级汇总时 |
| product_ranking | 商品效果排序 | 需要商品级排名时 |
| creative_scoring | 素材效能评分 | 需要素材对比时 |
| human_experience | 运营经验提取 | 需要学习人工策略时 |
| time_series_trend | 时间序列趋势 | 需要看周期性规律时 |
---
## 8⃣ 决策流程与人工介入点
### 8.1 完整业务流程
```
┌─────────────────────────────────────────────────────────────┐
│ 1⃣ 创建产品(本地库) │
│ 人工/系统创建 → 本地产品表 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 2⃣ 复制产品 │
│ 手动触发 或 广告需要时自动触发 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 3⃣ 一对多刊登 │
│ 单平台×多产品 / 多平台×多产品 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 4⃣ AI换图 │
│ 自动生成5倍主图+详情图 → 人工确认 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 5⃣ 创建广告计划 │
│ 人工确认预算/关键词 → PENDING_REVIEW预算>10000
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 6⃣ 广告启停 │
│ AI监控数据 → 给出建议 → 人工确认/执行 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 7⃣ 人工操作记录 │
│ 记录操作 → 评估效果 → 学习经验 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 📊 最终结果:实际消耗 / 实际营收 / ROI │
└─────────────────────────────────────────────────────────────┘
```
### 8.2 人工介入点汇总
| 阶段 | 介入条件 | 介入原因 |
|------|---------|---------|
| 产品复制 | 无API平台 | AI无法自动操作 |
| AI换图 | 生成完成 | 确认图片质量 |
| 创建广告 | 预算>10000 | 金额大需确认 |
| 广告启停 | 置信度55-80% | AI拿不准 |
| 广告重建 | 始终 | 新决策需确认 |
| 素材更换 | 始终 | 人工确认素材 |
| **批量操作** | **看订阅等级** | **AI可能接管** |
### 8.3 AI批量操作接管逻辑
#### 8.3.1 批量操作AI接管原则
| 操作类型 | AI可接管 | 条件 |
|----------|---------|------|
| 修改价格 | ✅ | 订阅等级 ≥ BASIC + 置信度 ≥ 阈值 |
| 修改库存 | ✅ | 订阅等级 ≥ BASIC + 置信度 ≥ 阈值 |
| 修改标题 | ✅ | 订阅等级 ≥ PROFESSIONAL + AI生成 |
| 修改类目 | ❌ | 始终人工(涉及分类逻辑) |
| 修改包装重量/尺寸 | ✅ | 订阅等级 ≥ BASIC |
| 修改是否到货付款 | ❌ | 始终人工(涉及风控) |
| 修改Seller SKU | ❌ | 始终人工(涉及映射) |
| **批量上架** | ✅ | 订阅等级 ≥ PROFESSIONAL + AI分析通过 |
| **批量下架** | ✅ | 订阅等级 ≥ PROFESSIONAL + AI分析通过 |
#### 8.3.2 批量操作AI流程
```
用户发起批量操作
┌─────────────────────────────────────┐
│ 判断:订阅等级 ≥ BASIC
├──────────────┬──────────────────────┤
│ 是 │ 否 │
↓ ↓
AI分析数据 人工执行
+ 生成建议 无AI介入
┌─────────────────────────────────────┐
│ 判断:置信度 ≥ 阈值? │
├──────────────┬──────────────────────┤
│ 是 │ 否 │
↓ ↓
AI自动执行 人工确认
+ 记录经验 + 记录经验
AI学习这次操作
```
#### 8.3.3 批量操作统一入口
所有批量操作统一在 **OperationAgentAI运营中心** 执行:
```
pages/OperationAgent/
├── components/
│ ├── ProductBatch/
│ │ ├── BatchEditModal.tsx # 批量编辑(价格/库存/标题等)
│ │ ├── BatchListingModal.tsx # 批量上架
│ │ └── BatchDelistModal.tsx # 批量下架
│ ├── AdBatch/
│ │ ├── AdCreateModal.tsx # 新建广告
│ │ ├── AdBatchResume.tsx # 批量启动
│ │ └── AdBatchPause.tsx # 批量暂停
│ ├── AISuggestionList.tsx # AI建议
│ └── HumanOperationLog.tsx # 人工操作记录
```
**产品页面只保留:列表查看 + 详情查看,禁止放置任何操作功能**
#### 8.3.4 批量操作类型定义
```typescript
enum BatchOperationType {
// 产品批量操作
BATCH_EDIT_PRICE = 'BATCH_EDIT_PRICE', // 批量修改价格
BATCH_EDIT_INVENTORY = 'BATCH_EDIT_INVENTORY', // 批量修改库存
BATCH_EDIT_TITLE = 'BATCH_EDIT_TITLE', // 批量修改标题
BATCH_EDIT_CATEGORY = 'BATCH_EDIT_CATEGORY', // 批量修改类目
BATCH_EDIT_PACKAGE_WEIGHT = 'BATCH_EDIT_PACKAGE_WEIGHT', // 批量修改包装重量
BATCH_EDIT_PACKAGE_SIZE = 'BATCH_EDIT_PACKAGE_SIZE', // 批量修改包装尺寸
BATCH_EDIT_COD = 'BATCH_EDIT_COD', // 批量修改到货付款
BATCH_EDIT_SELLER_SKU = 'BATCH_EDIT_SELLER_SKU', // 批量修改Seller SKU
BATCH_LISTING = 'BATCH_LISTING', // 批量上架
BATCH_DELIST = 'BATCH_DELIST', // 批量下架
// 广告批量操作
BATCH_AD_CREATE = 'BATCH_AD_CREATE', // 批量创建广告
BATCH_AD_RESUME = 'BATCH_AD_RESUME', // 批量启动广告
BATCH_AD_PAUSE = 'BATCH_AD_PAUSE', // 批量暂停广告
BATCH_AD_ADJUST_BUDGET = 'BATCH_AD_ADJUST_BUDGET', // 批量调整预算
BATCH_AD_CHANGE_CREATIVE = 'BATCH_AD_CHANGE_CREATIVE', // 批量更换素材
}
```
### 8.4 AI建议 → 人工确认流程
```
AI分析数据
┌─────────────────────────────────────┐
│ 置信度 ≥ 阈值(按订阅等级)? │
├──────────────┬──────────────────────┤
│ 是 │ 否 │
↓ ↓
AI自动执行 推送给用户
(按订阅等级) 人工确认
┌──────┴──────┐
✅ 确认 ❌ 拒绝
↓ ↓
执行 记录拒绝
```
---
## 9⃣ 术语表
| 术语 | 说明 |
|------|------|
| ROAS | Return on Ad Spend广告支出回报率 = 收入/支出 |
| ACoS | Advertising Cost of Sales广告成本销售比 = 支出/收入 |
| CTR | Click Through Rate点击率 = 点击/展示 |
| CVR | Conversion Rate转化率 = 转化/点击 |
| CPA | Cost Per Acquisition获客成本 = 支出/订单 |
| CPC | Cost Per Click点击成本 = 支出/点击 |
| SKU | Stock Keeping Unit库存单位 |
| Creative | 广告素材(图片/视频) |
| Campaign | 广告计划/广告系列 |
---
## 🔟 参考文档
| 文档 | 路径 |
|------|------|
| AI自动化域 | docs/LOOPS/10_AI_Automation.md |
| 广告页面前端 | docs/ARCHIVE/01_Architecture/frontend/03_Ad.md |
| 后端广告服务 | docs/ARCHIVE/00_Business/tasks/backend/08_advertisement.md |
| 统一类型管理 | docs/ARCHIVE/01_Architecture/16_Unified_Type_Management.md |
---
*本文档为 v1.1 版本包含AI批量操作接管逻辑*

340
docs/TASKS/AD_TODO.md Normal file
View File

@@ -0,0 +1,340 @@
# 广告系统批量操作 TODO
> **创建日期**: 2026-03-24
> **状态**: ✅ 已归档
> **归档日期**: 2026-03-24
> **优先级**: P1
---
## 🔒 当前占用状态
| Agent | 占用模块 | 涉及任务 | 主要文件 | 开始时间 | 状态 |
|-------|----------|----------|----------|----------|------|
| - | - | - | - | - | - |
---
## 📊 任务统计
| 类型 | 数量 | 状态 |
|------|------|------|
| 后端服务 | 4 | pending |
| 前端组件 | 5 | pending |
| 数据模型 | 2 | pending |
| API接口 | 3 | pending |
| **总计** | **14** | **pending** |
---
## 📦 后端任务包
### AD-TODO-001 批量操作类型定义与枚举
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-001 |
| **模块** | 后端 - 类型定义 |
| **状态** | pending |
| **依赖** | 无 |
| **预计耗时** | 2h |
**验收标准**:
- [ ] 定义 BatchOperationType 枚举12种操作类型
- [ ] 定义 BatchOperationStatus 枚举
- [ ] 定义 BatchOperationRecord 类型
- [ ] 在 shared/types 目录创建 batch-operation.ts
**文件位置**:
- `server/src/shared/types/batch-operation.ts`
---
### AD-TODO-002 批量操作数据库表
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-002 |
| **模块** | 后端 - 数据库 |
| **状态** | pending |
| **依赖** | AD-TODO-001 |
| **预计耗时** | 2h |
**验收标准**:
- [ ] 创建 cf_batch_operation 表
- [ ] 创建 cf_batch_operation_item 表
- [ ] 实现表初始化方法
**文件位置**:
- `server/src/database/DatabaseSchema.ts`
---
### AD-TODO-003 BatchOperationService 批量操作服务
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-003 |
| **模块** | 后端 - Service |
| **状态** | pending |
| **依赖** | AD-TODO-001, AD-TODO-002 |
| **预计耗时** | 8h |
**验收标准**:
- [ ] 实现 batchEditPrice 批量修改价格
- [ ] 实现 batchEditInventory 批量修改库存
- [ ] 实现 batchEditTitle 批量修改标题
- [ ] 实现 batchListing 批量上架
- [ ] 实现 batchDelist 批量下架
- [ ] 实现 getBatchOperationHistory 获取操作历史
**文件位置**:
- `server/src/services/core/BatchOperationService.ts`
---
### AD-TODO-004 AI批量操作接管中间件
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-004 |
| **模块** | 后端 - 中间件 |
| **状态** | pending |
| **依赖** | AD-TODO-001, AD-TODO-003 |
| **预计耗时** | 6h |
**验收标准**:
- [ ] 实现 BatchOperationAIMiddleware
- [ ] 根据订阅等级判断是否AI接管
- [ ] 实现置信度校验
- [ ] 实现风险等级校验
- [ ] 实现人工确认流程
**文件位置**:
- `server/src/api/middleware/BatchOperationAIMiddleware.ts`
---
## 📦 前端任务包
### AD-TODO-005 OperationAgent 页面结构调整
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-005 |
| **模块** | 前端 - 页面结构 |
| **状态** | pending |
| **依赖** | AD-TODO-003 |
| **预计耗时** | 4h |
**验收标准**:
- [ ] 创建 OperationAgent/components/ProductBatch 目录
- [ ] 创建 OperationAgent/components/AdBatch 目录
- [ ] 实现组件目录结构
**文件位置**:
- `dashboard/src/pages/OperationAgent/components/ProductBatch/`
- `dashboard/src/pages/OperationAgent/components/AdBatch/`
---
### AD-TODO-006 BatchEditModal 批量编辑弹窗
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-006 |
| **模块** | 前端 - 组件 |
| **状态** | pending |
| **依赖** | AD-TODO-005 |
| **预计耗时** | 6h |
**验收标准**:
- [ ] 实现多选产品功能
- [ ] 实现编辑字段选择(价格/库存/标题/类目等)
- [ ] 实现预览变更功能
- [ ] 实现确认执行功能
- [ ] 实现结果反馈功能
**文件位置**:
- `dashboard/src/pages/OperationAgent/components/ProductBatch/BatchEditModal.tsx`
---
### AD-TODO-007 BatchListingModal 批量上架弹窗
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-007 |
| **模块** | 前端 - 组件 |
| **状态** | pending |
| **依赖** | AD-TODO-006 |
| **预计耗时** | 6h |
**验收标准**:
- [ ] 实现选择目标平台/店铺
- [ ] 实现AI分析显示AI建议
- [ ] 实现人工确认流程
- [ ] 实现执行进度显示
- [ ] 实现结果反馈
**文件位置**:
- `dashboard/src/pages/OperationAgent/components/ProductBatch/BatchListingModal.tsx`
---
### AD-TODO-008 AISuggestionList AI建议列表组件
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-008 |
| **模块** | 前端 - 组件 |
| **状态** | pending |
| **依赖** | AD-TODO-004 |
| **预计耗时** | 4h |
**验收标准**:
- [ ] 实现AI建议列表展示
- [ ] 实现按状态筛选(待处理/已批准/已拒绝)
- [ ] 实现批准/拒绝操作
- [ ] 实现执行结果展示
**文件位置**:
- `dashboard/src/pages/OperationAgent/components/AISuggestionList.tsx`
---
### AD-TODO-009 HumanOperationLog 人工操作记录组件
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-009 |
| **模块** | 前端 - 组件 |
| **状态** | pending |
| **依赖** | AD-TODO-004 |
| **预计耗时** | 4h |
**验收标准**:
- [ ] 实现操作记录列表展示
- [ ] 实现按操作类型筛选
- [ ] 实现按时间范围筛选
- [ ] 实现操作详情查看
- [ ] 实现效果评估展示
**文件位置**:
- `dashboard/src/pages/OperationAgent/components/HumanOperationLog.tsx`
---
## 📦 API接口任务包
### AD-TODO-010 BatchOperationController 批量操作API
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-010 |
| **模块** | 后端 - API |
| **状态** | pending |
| **依赖** | AD-TODO-003 |
| **预计耗时** | 4h |
**验收标准**:
- [ ] POST /api/v1/batch/edit - 批量编辑
- [ ] POST /api/v1/batch/listing - 批量上架
- [ ] POST /api/v1/batch/delist - 批量下架
- [ ] GET /api/v1/batch/history - 获取历史
- [ ] GET /api/v1/batch/:id/status - 获取执行状态
**文件位置**:
- `server/src/api/controllers/BatchOperationController.ts`
---
### AD-TODO-011 AI批量操作建议API
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-011 |
| **模块** | 后端 - API |
| **状态** | pending |
| **依赖** | AD-TODO-004 |
| **预计耗时** | 3h |
**验收标准**:
- [ ] GET /api/v1/ai/batch-suggestions - 获取AI批量操作建议
- [ ] POST /api/v1/ai/batch-suggestions/:id/approve - 批准AI建议
- [ ] POST /api/v1/ai/batch-suggestions/:id/reject - 拒绝AI建议
**文件位置**:
- `server/src/api/controllers/AIBatchController.ts`
---
## 📦 DataSource抽象层任务包
### AD-TODO-012 batchOperationDataSource 批量操作数据源
| 属性 | 值 |
|------|-----|
| **任务ID** | AD-TODO-012 |
| **模块** | 前端 - DataSource |
| **状态** | pending |
| **依赖** | AD-TODO-010, AD-TODO-011 |
| **预计耗时** | 4h |
**验收标准**:
- [ ] 定义 IBatchOperationDataSource 接口
- [ ] 实现 ApiBatchOperationDataSource
- [ ] 实现 MockBatchOperationDataSource
- [ ] 导出统一数据源实例
**文件位置**:
- `dashboard/src/services/batchOperationDataSource.ts`
---
## 📋 执行顺序
```
第一阶段(可并行)
├── AD-TODO-001 类型定义
├── AD-TODO-002 数据库表
└── AD-TODO-005 前端目录结构
第二阶段(依赖第一阶段)
├── AD-TODO-003 BatchOperationService
├── AD-TODO-004 AI接管中间件
└── AD-TODO-006 BatchEditModal
第三阶段(依赖第二阶段)
├── AD-TODO-007 BatchListingModal
├── AD-TODO-008 AISuggestionList
├── AD-TODO-009 HumanOperationLog
├── AD-TODO-010 BatchOperationController
└── AD-TODO-011 AI批量操作API
第四阶段(收尾)
└── AD-TODO-012 DataSource抽象层
```
---
## 📊 进度追踪
| 任务ID | 名称 | 状态 | 完成时间 |
|--------|------|------|---------|
| AD-TODO-001 | 类型定义 | ✅ completed | 2026-03-24 |
| AD-TODO-002 | 数据库表 | ✅ completed | 2026-03-24 |
| AD-TODO-003 | BatchOperationService | ✅ completed | 2026-03-24 |
| AD-TODO-004 | AI接管中间件 | ✅ completed | 2026-03-24 |
| AD-TODO-005 | 前端目录结构 | ✅ completed | 2026-03-24 |
| AD-TODO-006 | BatchEditModal | ✅ completed | 2026-03-24 |
| AD-TODO-007 | BatchListingModal | ✅ completed | 2026-03-24 |
| AD-TODO-008 | BatchAdModal | ✅ completed | 2026-03-24 |
| AD-TODO-009 | batchOperationDataSource | ✅ completed | 2026-03-24 |
| AD-TODO-010 | BatchOperationController | ✅ completed | 2026-03-24 |
| AD-TODO-011 | AI批量操作API | ✅ completed | 2026-03-24 |
| AD-TODO-012 | 路由注册 | ✅ completed | 2026-03-24 |
---
*本文档为广告系统批量操作任务清单*

View File

@@ -0,0 +1,461 @@
# AI 介入路线开发任务 TODO
> **创建日期**: 2026-03-24
> **状态**: ✅ 已归档
> **归档日期**: 2026-03-24
> **优先级**: P0
> **概述**: 复用批量操作的AI介入架构扩展到其他业务场景
---
## 🔒 当前占用状态
| Agent | 占用模块 | 涉及任务 | 主要文件 | 开始时间 | 状态 |
|-------|----------|----------|----------|----------|------|
| - | - | - | - | - | - |
---
## 📊 任务统计
| 类型 | 数量 | 状态 |
|------|------|------|
| 定价域 | 3 | pending |
| 库存域 | 3 | pending |
| 订单/售后域 | 3 | pending |
| 风控域 | 2 | pending |
| 物流域 | 2 | pending |
| **总计** | **13** | **pending** |
---
## 📦 架构扩展任务包
### AI-EXT-001 通用AI决策中间件
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-EXT-001 |
| **模块** | 后端 - 中间件 |
| **状态** | pending |
| **依赖** | AD-TODO-004 (已完成) |
| **预计耗时** | 6h |
**验收标准**:
- [ ] 将 BatchOperationAIMiddleware 扩展为通用 AIDecisionMiddleware
- [ ] 支持多种业务类型的置信度校验
- [ ] 实现通用风险等级评估
- [ ] 实现操作类型无关的AI介入逻辑
**文件位置**:
- `server/src/api/middleware/AIDecisionMiddleware.ts`
**复用文件**:
- `server/src/api/middleware/BatchOperationAIMiddleware.ts`
---
## 📦 定价域任务包
### AI-PRICE-001 动态定价AI决策
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-PRICE-001 |
| **闭环** | 定价域 - 动态定价 |
| **状态** | pending |
| **依赖** | AI-EXT-001 |
| **预计耗时** | 8h |
**验收标准**:
- [ ] 实现价格调整AI建议生成
- [ ] 实现竞品价格监控与分析
- [ ] 实现利润红线校验 (B2C<20%, B2B<15%)
- [ ] 实现置信度评估
- [ ] 实现人工确认流程
**介入条件**:
| 场景 | AI可接管 | 条件 |
|------|---------|------|
| 单品调价<10% | ✅ | 置信度≥0.8 |
| 单品调价≥10% | ❌ | 必须人工确认 |
| 批量调价 | ✅ | 置信度≥0.9 + 风险≤MEDIUM |
**文件位置**:
- `server/src/services/core/DynamicPricingService.ts`
---
### AI-PRICE-002 智能定价建议
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-PRICE-002 |
| **闭环** | 定价域 - 智能定价 |
| **状态** | pending |
| **依赖** | AI-PRICE-001 |
| **预计耗时** | 6h |
**验收标准**:
- [ ] 基于成本+利润+市场竞争生成定价建议
- [ ] AI生成多套定价方案
- [ ] 支持人工选择或调整
- [ ] 记录历史定价决策供AI学习
**文件位置**:
- `server/src/services/core/SmartPricingService.ts`
---
### AI-PRICE-003 定价决策审批流
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-PRICE-003 |
| **闭环** | 定价域 - 定价决策审批 |
| **状态** | pending |
| **依赖** | AI-PRICE-001, AI-PRICE-002 |
| **预计耗时** | 4h |
**验收标准**:
- [ ] 实现定价方案状态机
- [ ] 实现多级审批流程
- [ ] 实现自动放行(低风险)
- [ ] 实现人工审核(高风险)
**状态流转**:
```
PENDING → AI_RECOMMENDED → AWAITING_CONFIRM → APPROVED/REJECTED
↓ (低风险)
AUTO_APPROVED
```
**文件位置**:
- `server/src/services/core/PricingDecisionService.ts`
---
## 📦 库存域任务包
### AI-INV-001 库存调整AI决策
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-INV-001 |
| **闭环** | 库存域 - 库存调整 |
| **状态** | pending |
| **依赖** | AI-EXT-001 |
| **预计耗时** | 8h |
**验收标准**:
- [ ] 实现库存预警分析
- [ ] 实现补货建议生成
- [ ] 实现清仓建议(滞销品)
- [ ] 实现置信度评估
- [ ] 实现人工确认流程
**介入条件**:
| 场景 | AI可接管 | 条件 |
|------|---------|------|
| 单品库存调整<50件 | ✅ | 置信度≥0.8 |
| 单品库存调整≥50件 | ❌ | 必须人工确认 |
| 批量调整 | ✅ | 置信度≥0.9 + 影响金额<1万 |
**文件位置**:
- `server/src/services/inventory/InventoryService.ts`
---
### AI-INV-002 备货计划AI建议
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-INV-002 |
| **闭环** | 库存域 - 备货计划 |
| **状态** | pending |
| **依赖** | AI-INV-001 |
| **预计耗时** | 6h |
**验收标准**:
- [ ] 基于历史销售数据预测需求
- [ ] AI生成备货计划
- [ ] 支持季节性/活动性调整
- [ ] 实现库存周转率优化
**文件位置**:
- `server/src/services/inventory/StockPlannerService.ts`
---
### AI-INV-003 库存老化AI处理
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-INV-003 |
| **闭环** | 库存域 - 库存老化 |
| **状态** | pending |
| **依赖** | AI-INV-001 |
| **预计耗时** | 5h |
**验收标准**:
- [ ] 识别滞销库存
- [ ] AI生成处理建议降价/捆绑/捐赠/报废)
- [ ] 实现处理效果预测
- [ ] 实现自动化执行(低价值商品)
**文件位置**:
- `server/src/services/inventory/AgingInventoryService.ts`
---
## 📦 订单/售后域任务包
### AI-ORDER-001 订单履约AI建议
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-ORDER-001 |
| **闭环** | 订单域 - 订单履约 |
| **状态** | pending |
| **依赖** | AI-EXT-001 |
| **预计耗时** | 8h |
**验收标准**:
- [ ] 分析订单特性(重量/体积/时效/成本)
- [ ] AI推荐最优发货渠道
- [ ] 实现渠道成本对比
- [ ] 实现异常订单预警
**介入条件**:
| 场景 | AI可接管 | 条件 |
|------|---------|------|
| 普通订单渠道选择 | ✅ | 置信度≥0.85 |
| 特殊订单(偏远/大件) | ❌ | 必须人工确认 |
| 批量渠道调整 | ✅ | 置信度≥0.9 + 影响金额<5千 |
**文件位置**:
- `server/src/services/order/OrderFulfillmentService.ts`
---
### AI-ORDER-002 售后审核AI决策
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-ORDER-002 |
| **闭环** | 售后域 - 售后审核 |
| **状态** | pending |
| **依赖** | AI-EXT-001 |
| **预计耗时** | 8h |
**验收标准**:
- [ ] AI审核退款/退货申请
- [ ] 识别恶意退款/滥用政策
- [ ] AI给出处理建议
- [ ] 实现自动放行(低风险)
- [ ] 实现人工审核(高风险)
**介入条件**:
| 场景 | AI可接管 | 条件 |
|------|---------|------|
| 小额退款(<50元 | ✅ | 置信度≥0.9 + 非恶意 |
| 大额退款≥50元 | ❌ | 必须人工确认 |
| 退货审核 | ✅ | 置信度≥0.85 + 商品未使用 |
| 重复退款 | ❌ | 始终人工 |
**文件位置**:
- `server/src/services/order/AfterSalesService.ts`
---
### AI-ORDER-003 纠纷处理AI建议
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-ORDER-003 |
| **闭环** | 售后域 - 纠纷处理 |
| **状态** | pending |
| **依赖** | AI-ORDER-002 |
| **预计耗时** | 6h |
**验收标准**:
- [ ] 分析纠纷类型和历史处理
- [ ] AI给出纠纷处理建议
- [ ] 预测平台判决结果
- [ ] 辅助运营决策
**文件位置**:
- `server/src/services/order/DisputeAdvisorService.ts`
---
## 📦 风控域任务包
### AI-RISK-001 交易风控AI决策
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-RISK-001 |
| **闭环** | 风控域 - 交易风控 |
| **状态** | pending |
| **依赖** | AI-EXT-001 |
| **预计耗时** | 8h |
**验收标准**:
- [ ] 实时评估交易风险
- [ ] AI识别可疑交易
- [ ] 实现自动拦截/放行
- [ ] 实现人工复核流程
**介入条件**:
| 场景 | AI可接管 | 条件 |
|------|---------|------|
| 低风险交易 | ✅ | 置信度≥0.95 |
| 中风险交易 | ⚠️ | AI建议+人工确认 |
| 高风险交易 | ❌ | 始终人工 |
**文件位置**:
- `server/src/services/security/RiskRadarService.ts`
---
### AI-RISK-002 支付风控AI决策
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-RISK-002 |
| **闭环** | 风控域 - 支付风控 |
| **状态** | pending |
| **依赖** | AI-RISK-001 |
| **预计耗时** | 6h |
**验收标准**:
- [ ] 监控支付异常
- [ ] AI识别欺诈模式
- [ ] 实现支付拦截
- [ ] 实现人工申诉处理
**文件位置**:
- `server/src/services/settlement/PaymentRiskService.ts`
---
## 📦 物流域任务包
### AI-LOG-001 运费审核AI决策
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-LOG-001 |
| **闭环** | 物流域 - 运费审核 |
| **状态** | pending |
| **依赖** | AI-EXT-001 |
| **预计耗时** | 6h |
**验收标准**:
- [ ] 对比标准运费与实际运费
- [ ] AI识别运费异常
- [ ] 实现自动校验(低差异)
- [ ] 实现人工审核(高差异)
**介入条件**:
| 场景 | AI可接管 | 条件 |
|------|---------|------|
| 差异<5% | ✅ | 置信度≥0.9 |
| 差异5-15% | ⚠️ | AI建议+人工确认 |
| 差异>15% | ❌ | 必须人工 |
**文件位置**:
- `server/src/services/logistics/FreightAuditor.ts`
---
### AI-LOG-002 物流延误AI预警
| 属性 | 值 |
|------|-----|
| **任务ID** | AI-LOG-002 |
| **闭环** | 物流域 - 物流追踪 |
| **状态** | pending |
| **依赖** | AI-LOG-001 |
| **预计耗时** | 5h |
**验收标准**:
- [ ] 监控物流时效
- [ ] AI预测延误风险
- [ ] 自动通知买家/卖家
- [ ] 提供解决方案建议
**文件位置**:
- `server/src/services/logistics/LeadTimeDriftService.ts`
---
## 📋 执行顺序
```
第一阶段(架构扩展)
└── AI-EXT-001 通用AI决策中间件
第二阶段(定价域)
├── AI-PRICE-001 动态定价
├── AI-PRICE-002 智能定价建议
└── AI-PRICE-003 定价决策审批
第三阶段(库存域)
├── AI-INV-001 库存调整
├── AI-INV-002 备货计划
└── AI-INV-003 库存老化
第四阶段(订单/售后域)
├── AI-ORDER-001 订单履约
├── AI-ORDER-002 售后审核
└── AI-ORDER-003 纠纷处理
第五阶段(风控域)
├── AI-RISK-001 交易风控
└── AI-RISK-002 支付风控
第六阶段(物流域)
├── AI-LOG-001 运费审核
└── AI-LOG-002 物流延误
```
---
## 📊 进度追踪
| 任务ID | 名称 | 状态 | 完成时间 |
|--------|------|------|---------|
| AI-EXT-001 | 通用AI决策中间件 | ✅ completed | 2026-03-24 |
| AI-PRICE-001 | 动态定价AI | ✅ completed | 2026-03-24 |
| AI-PRICE-002 | 智能定价建议 | ✅ completed | 2026-03-24 |
| AI-PRICE-003 | 定价决策审批 | ✅ completed | 2026-03-24 |
| AI-INV-001 | 库存调整AI | ✅ completed | 2026-03-24 |
| AI-INV-002 | 备货计划AI | ✅ completed | 2026-03-24 |
| AI-INV-003 | 库存老化AI | ✅ completed | 2026-03-24 |
| AI-ORDER-001 | 订单履约AI | ✅ completed | 2026-03-24 |
| AI-ORDER-002 | 售后审核AI | ✅ completed | 2026-03-24 |
| AI-ORDER-003 | 纠纷处理AI | ✅ completed | 2026-03-24 |
| AI-RISK-001 | 交易风控AI | ✅ completed | 2026-03-24 |
| AI-RISK-002 | 支付风控AI | ✅ completed | 2026-03-24 |
| AI-LOG-001 | 运费审核AI | ✅ completed | 2026-03-24 |
| AI-LOG-002 | 物流延误AI | ✅ completed | 2026-03-24 |
---
## 🆕 复用AI介入架构的场景建议
以下场景可参考上述模式,后续迭代实现:
| 场景 | 服务 | 复用度 |
|------|------|--------|
| 供应商风险评估 | SupplierRiskRadarService | 高 |
| 采购审计 | ProcurementAuditService | 高 |
| 商品上架审核 | ProductListingService | 高 |
| 内容合规检查 | ContentGapService | 中 |
| 物流成本优化 | PackingOptimizer | 中 |
---
*本文档为AI介入路线开发任务清单*

View File

@@ -1,6 +1,9 @@
# P3 待开发任务
> **优先级**: 中 | **状态**: pending
> **创建日期**: 2026-03-23
> **状态**: 🔴 部分完成(营销域已完成)
> **归档日期**: 2026-03-24
> **优先级**: 中
---
@@ -14,15 +17,15 @@
## 📊 任务统计
| 类型 | 数量 | 状态 |
|------|------|------|
| 营销域闭环 | 3 | completed |
| 供应链域闭环 | 2 | pending |
| 增长与商业化闭环 | 4 | pending |
| 其他独立业务闭环 | 7 | pending |
| 生态资源闭环 | 3 | pending |
| 合规管理闭环 | 3 | pending |
| **总计** | **19** | **19 pending** |
| 类型 | 数量 | 完成数 | 状态 |
|------|------|--------|------|
| 营销域闭环 | 3 | 3 | ✅ completed |
| 供应链域闭环 | 2 | 0 | pending |
| 增长与商业化闭环 | 4 | 0 | pending |
| 其他独立业务闭环 | 7 | 0 | pending |
| 生态资源闭环 | 3 | 0 | pending |
| 合规管理闭环 | 3 | 0 | pending |
| **总计** | **19** | **3** | 🔴 16 pending |
---