Files
ruoyi-java/doc/批量发品功能说明.md
2025-10-09 19:45:14 +08:00

8.4 KiB
Raw Blame History

线报批量发品功能说明

功能概述

线报批量发品功能允许用户通过输入框输入线报消息自动解析出商品信息然后批量发品到多个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
  • ServiceBatchPublishServiceImpl - 核心业务逻辑
  • 异步任务@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)

  • 初始版本
  • 实现线报消息解析
  • 实现批量发品
  • 实现延迟队列上架
  • 实现多账号支持
  • 实现历史记录查询