1
This commit is contained in:
315
doc/批量发品功能说明.md
Normal file
315
doc/批量发品功能说明.md
Normal file
@@ -0,0 +1,315 @@
|
||||
# 线报批量发品功能说明
|
||||
|
||||
## 功能概述
|
||||
|
||||
线报批量发品功能允许用户通过输入框输入线报消息,自动解析出商品信息,然后批量发品到多个ERP账号,并支持延迟自动上架。
|
||||
|
||||
## 主要特性
|
||||
|
||||
### 1. 智能解析
|
||||
- 支持从线报消息中自动识别京东商品链接
|
||||
- 支持多种链接格式(item.jd.com、u.jd.com短链接等)
|
||||
- 自动提取SKUID并查询商品详情
|
||||
- 获取商品名称、价格、图片、店铺等信息
|
||||
|
||||
### 2. 批量选择
|
||||
- 可视化商品列表,支持全选/反选
|
||||
- 展示商品图片、名称、价格、佣金等信息
|
||||
- 灵活选择需要发品的商品
|
||||
|
||||
### 3. 多账号发品
|
||||
- 支持同时选择多个ERP账号(胡歌、刘强东等)
|
||||
- 每个商品会发送到所有选中的账号
|
||||
- 自动生成商家编码,避免重复
|
||||
|
||||
### 4. 通用参数设置
|
||||
- 支持统一设置:会员名、省市区、商品类型、行业类型、类目等
|
||||
- 支持设置邮费、库存、成色、服务支持等
|
||||
- 一次设置,应用到所有商品
|
||||
|
||||
### 5. 延迟队列上架
|
||||
- 发品成功后自动加入延迟队列
|
||||
- 可自定义延迟时间(1-60秒)
|
||||
- 到时后自动调用上架接口
|
||||
|
||||
### 6. 进度跟踪
|
||||
- 实时显示发品进度
|
||||
- 展示每个商品在每个账号的发品状态
|
||||
- 记录成功数、失败数、错误信息
|
||||
|
||||
### 7. 历史记录
|
||||
- 保存所有批量发品任务记录
|
||||
- 支持查看任务详情和发品明细
|
||||
- 可追溯每个商品的发品结果
|
||||
|
||||
## 使用流程
|
||||
|
||||
### 第一步:输入线报消息
|
||||
|
||||
在输入框中粘贴线报消息,支持以下格式:
|
||||
|
||||
```
|
||||
【京东】某某商品
|
||||
https://item.jd.com/100012345678.html
|
||||
原价:999元
|
||||
...
|
||||
|
||||
【京东】另一个商品
|
||||
https://u.jd.com/xxxxx
|
||||
到手价:199元
|
||||
...
|
||||
```
|
||||
|
||||
点击"解析商品"按钮,系统会自动提取商品链接并查询详情。
|
||||
|
||||
### 第二步:选择商品
|
||||
|
||||
- 系统展示解析出的商品列表
|
||||
- 勾选需要发品的商品(支持全选)
|
||||
- 查看商品信息确认无误
|
||||
- 点击"下一步"
|
||||
|
||||
### 第三步:设置参数
|
||||
|
||||
#### 3.1 基本设置
|
||||
- **任务名称**(选填):为本次批量发品任务命名
|
||||
- **延迟上架**:设置发品成功后延迟多少秒自动上架(默认3秒)
|
||||
|
||||
#### 3.2 目标账号
|
||||
- 选择一个或多个ERP账号(支持多选)
|
||||
- 每个商品将发送到所有选中的账号
|
||||
|
||||
#### 3.3 通用参数
|
||||
- **会员名**:闲鱼会员名(必填)
|
||||
- **省市区**:发货地址代码(必填)
|
||||
- **商品类型**:普通商品/已验货/验货宝等(必填)
|
||||
- **行业类型**:手机/家电/数码等(必填)
|
||||
- **类目ID**:商品类目ID(必填)
|
||||
- **邮费**:邮费金额(元,必填)
|
||||
- **库存**:库存数量(必填)
|
||||
- **成色**:全新/99新等(选填)
|
||||
- **服务支持**:七天无理由退货等(选填)
|
||||
|
||||
点击"开始批量发品"提交任务。
|
||||
|
||||
### 第四步:查看进度
|
||||
|
||||
- 系统创建批量发品任务
|
||||
- 实时展示发品进度条
|
||||
- 显示每个商品在每个账号的发品状态
|
||||
- 发品成功的商品会自动加入延迟队列等待上架
|
||||
|
||||
## 数据库表结构
|
||||
|
||||
### batch_publish_task(批量发品任务表)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | bigint | 任务ID |
|
||||
| task_name | varchar(200) | 任务名称 |
|
||||
| original_message | text | 原始线报消息 |
|
||||
| total_products | int | 解析出的商品数量 |
|
||||
| selected_products | int | 选中的商品数量 |
|
||||
| target_accounts | varchar(500) | 目标ERP账号(JSON) |
|
||||
| status | int | 任务状态:0待处理 1处理中 2已完成 3失败 |
|
||||
| success_count | int | 成功发品数量 |
|
||||
| fail_count | int | 失败发品数量 |
|
||||
| common_params | text | 通用参数(JSON) |
|
||||
| create_user_id | bigint | 创建人ID |
|
||||
| create_user_name | varchar(100) | 创建人姓名 |
|
||||
| create_time | datetime | 创建时间 |
|
||||
| complete_time | datetime | 完成时间 |
|
||||
|
||||
### batch_publish_item(批量发品明细表)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | bigint | 明细ID |
|
||||
| task_id | bigint | 任务ID |
|
||||
| skuid | varchar(100) | SKUID |
|
||||
| product_name | varchar(500) | 商品名称 |
|
||||
| target_account | varchar(100) | 目标ERP账号 |
|
||||
| account_remark | varchar(100) | 账号备注名 |
|
||||
| status | int | 发品状态:0待发布 1发布中 2发布成功 3发布失败 4上架中 5已上架 6上架失败 |
|
||||
| product_id | bigint | ERP商品ID |
|
||||
| product_status | int | 商品状态 |
|
||||
| outer_id | varchar(100) | 商家编码 |
|
||||
| publish_price | bigint | 发品价格(分) |
|
||||
| error_message | varchar(1000) | 失败原因 |
|
||||
| publish_time | datetime | 上架时间 |
|
||||
| delay_seconds | int | 延迟上架时间(秒) |
|
||||
| create_time | datetime | 创建时间 |
|
||||
|
||||
## API接口
|
||||
|
||||
### 1. 解析线报消息
|
||||
```
|
||||
POST /jarvis/batchPublish/parse
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"message": "线报消息内容"
|
||||
}
|
||||
|
||||
返回:
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "操作成功",
|
||||
"data": [
|
||||
{
|
||||
"skuid": "100012345678",
|
||||
"productName": "商品名称",
|
||||
"price": 199.0,
|
||||
"productImage": "http://...",
|
||||
"shopName": "店铺名称",
|
||||
"shopId": "12345",
|
||||
"commissionInfo": "10%"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 批量发品
|
||||
```
|
||||
POST /jarvis/batchPublish/publish
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"taskName": "任务名称",
|
||||
"originalMessage": "原始消息",
|
||||
"products": [
|
||||
{
|
||||
"skuid": "100012345678",
|
||||
"productName": "商品名称",
|
||||
"price": 199.0
|
||||
}
|
||||
],
|
||||
"targetAccounts": ["1016208368633221", "1206879680251333"],
|
||||
"delaySeconds": 3,
|
||||
"commonParams": {
|
||||
"userName": "会员名",
|
||||
"province": 110000,
|
||||
"city": 110100,
|
||||
"district": 110101,
|
||||
"itemBizType": 2,
|
||||
"spBizType": 3,
|
||||
"channelCatId": "12345",
|
||||
"expressFee": 0.0,
|
||||
"stock": 1,
|
||||
"stuffStatus": 100
|
||||
}
|
||||
}
|
||||
|
||||
返回:
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "任务已创建",
|
||||
"data": 123 // 任务ID
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 查询任务列表
|
||||
```
|
||||
GET /jarvis/batchPublish/task/list?pageNum=1&pageSize=10
|
||||
|
||||
返回:
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "查询成功",
|
||||
"rows": [...],
|
||||
"total": 10
|
||||
}
|
||||
```
|
||||
|
||||
### 4. 查询任务详情
|
||||
```
|
||||
GET /jarvis/batchPublish/task/{taskId}
|
||||
|
||||
返回任务详细信息
|
||||
```
|
||||
|
||||
### 5. 查询任务明细
|
||||
```
|
||||
GET /jarvis/batchPublish/item/list/{taskId}
|
||||
|
||||
返回任务所有发品明细
|
||||
```
|
||||
|
||||
## 状态说明
|
||||
|
||||
### 任务状态
|
||||
- 0:待处理
|
||||
- 1:处理中
|
||||
- 2:已完成
|
||||
- 3:失败
|
||||
|
||||
### 发品状态
|
||||
- 0:待发布
|
||||
- 1:发布中
|
||||
- 2:发布成功
|
||||
- 3:发布失败
|
||||
- 4:上架中
|
||||
- 5:已上架
|
||||
- 6:上架失败
|
||||
|
||||
## 技术实现
|
||||
|
||||
### 后端
|
||||
- **解析工具**:LineReportParser - 正则表达式提取链接和SKUID
|
||||
- **Service**:BatchPublishServiceImpl - 核心业务逻辑
|
||||
- **异步任务**:@Async注解 + CompletableFuture实现延迟队列
|
||||
- **数据库**:MyBatis + MySQL存储任务和明细
|
||||
|
||||
### 前端
|
||||
- **框架**:Vue 2 + Element UI
|
||||
- **步骤条**:el-steps实现4步向导
|
||||
- **实时刷新**:定时器轮询任务状态
|
||||
- **组件**:表格、表单、对话框等
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **线报消息格式**:尽量包含完整的京东商品链接,便于准确识别
|
||||
2. **价格获取**:价格从京东API实时查询,可能与线报价格有差异
|
||||
3. **账号限制**:请确保ERP账号有足够的发品额度
|
||||
4. **延迟上架**:建议设置3-5秒延迟,避免频繁操作
|
||||
5. **参数设置**:通用参数会应用到所有商品,请仔细核对
|
||||
6. **批量操作**:大批量发品时请分批进行,避免超时
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q1: 解析不到商品怎么办?
|
||||
A: 确保线报消息中包含完整的京东商品链接,如:https://item.jd.com/xxxxx.html
|
||||
|
||||
### Q2: 发品失败是什么原因?
|
||||
A: 可能原因:账号额度不足、商品信息不完整、网络异常等,查看错误信息了解详情
|
||||
|
||||
### Q3: 可以同时发多少个商品?
|
||||
A: 理论上无限制,但建议每次不超过50个商品,避免超时
|
||||
|
||||
### Q4: 延迟上架的作用是什么?
|
||||
A: 避免频繁操作触发平台限制,给系统缓冲时间
|
||||
|
||||
### Q5: 如何查看历史记录?
|
||||
A: 点击页面右上角的"历史记录"按钮,可以查看所有批量发品任务
|
||||
|
||||
## 未来优化方向
|
||||
|
||||
1. [ ] 集成实际的发品接口(目前为模拟)
|
||||
2. [ ] 支持商品价格批量调整
|
||||
3. [ ] 支持文案自动生成
|
||||
4. [ ] 支持图片批量处理
|
||||
5. [ ] 支持发品模板保存
|
||||
6. [ ] 支持定时发品
|
||||
7. [ ] 支持发品失败自动重试
|
||||
8. [ ] 支持发品结果通知(钉钉/企微)
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v1.0.0 (2025-01-10)
|
||||
- ✅ 初始版本
|
||||
- ✅ 实现线报消息解析
|
||||
- ✅ 实现批量发品
|
||||
- ✅ 实现延迟队列上架
|
||||
- ✅ 实现多账号支持
|
||||
- ✅ 实现历史记录查询
|
||||
|
||||
Reference in New Issue
Block a user