8.4 KiB
8.4 KiB
线报批量发品功能说明
功能概述
线报批量发品功能允许用户通过输入框输入线报消息,自动解析出商品信息,然后批量发品到多个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步向导
- 实时刷新:定时器轮询任务状态
- 组件:表格、表单、对话框等
注意事项
- 线报消息格式:尽量包含完整的京东商品链接,便于准确识别
- 价格获取:价格从京东API实时查询,可能与线报价格有差异
- 账号限制:请确保ERP账号有足够的发品额度
- 延迟上架:建议设置3-5秒延迟,避免频繁操作
- 参数设置:通用参数会应用到所有商品,请仔细核对
- 批量操作:大批量发品时请分批进行,避免超时
常见问题
Q1: 解析不到商品怎么办?
A: 确保线报消息中包含完整的京东商品链接,如:https://item.jd.com/xxxxx.html
Q2: 发品失败是什么原因?
A: 可能原因:账号额度不足、商品信息不完整、网络异常等,查看错误信息了解详情
Q3: 可以同时发多少个商品?
A: 理论上无限制,但建议每次不超过50个商品,避免超时
Q4: 延迟上架的作用是什么?
A: 避免频繁操作触发平台限制,给系统缓冲时间
Q5: 如何查看历史记录?
A: 点击页面右上角的"历史记录"按钮,可以查看所有批量发品任务
未来优化方向
- 集成实际的发品接口(目前为模拟)
- 支持商品价格批量调整
- 支持文案自动生成
- 支持图片批量处理
- 支持发品模板保存
- 支持定时发品
- 支持发品失败自动重试
- 支持发品结果通知(钉钉/企微)
更新日志
v1.0.0 (2025-01-10)
- ✅ 初始版本
- ✅ 实现线报消息解析
- ✅ 实现批量发品
- ✅ 实现延迟队列上架
- ✅ 实现多账号支持
- ✅ 实现历史记录查询