prd.md 16 KB

商品创建到下单全流程梳理文档

📋 目录


业务流程图

整体业务流程

graph TD
    A[开始] --> B[商品管理模块]

    %% 商品管理
    B --> B1[创建商品分类✅]
    B --> B2[创建商品✅]
    B2 --> B21[第一步: 商品信息✅]
    B21 --> B22[第二步: 商品属性✅]
    B22 --> B23[第三步: 提交商品✅]

    %% 拼团活动
    B23 --> C[拼团活动模块]
    C --> C1[拼团活动列表✅]
    C --> C2[创建拼团活动✅]
    C2 --> C3[设置活动商品全流程✅]
    C3 --> C31[获取活动商品✅]
    C3 --> C32[添加商品到活动✅]
    C3 --> C33[移除商品✅]

    %% 订单管理
    C32 --> D[订单管理模块]
    D --> D1[订单列表查询✅]
    D --> D2[订单详情查询✅]
    D2 --> D3[订单轨迹✅]
    D2 --> D4[基本信息✅]
    D2 --> D5[商品信息✅]
    D2 --> D6[收货信息✅]
    D2 --> D7[拼团信息✅]

    %% 订单操作
    D --> E[订单操作模块]
    E --> E1[取消订单⚠️<br/>仅未付款]
    E --> E2[全部退款⚠️<br/>状态未确定]
    E --> E3[导出订单⚠️<br/>字段待确认]
    E --> E4[导出发货单⚠️<br/>字段待确认]
    E --> E5[单个订单发货✅]

    %% 批量发货需求
    E --> F[批量发货需求❌]
    F --> F1[导入发货单❌<br/>功能未确定]
    F --> F2[批量发货❌<br/>功能未确定]
    F --> F3[下载失败发货单❌<br/>功能未确定]

    %% 样式
    classDef implemented fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    classDef notImplemented fill:#ffebee,stroke:#b71c1c,stroke-width:2px
    classDef uncertain fill:#fff3e0,stroke:#e65100,stroke-width:2px

    class B1,B2,B21,B22,B23,C1,C2,C3,C31,C32,C33,D1,D2,D3,D4,D5,D6,D7,E5 implemented
    class F,F1,F2,F3 notImplemented
    class E1,E2,E3,E4 uncertain

接口详细信息表

模块 功能 接口 方法 关键参数 状态
商品管理 创建商品分类 mall/category POST {name, parentId, sort, status}
商品管理 创建商品 mall/product POST {cateId, storeName, price, stock}
拼团活动 活动列表 mall/flash/activity/list POST {page, size, status}
拼团活动 创建活动 mall/flash/activity POST {name, startTime, endTime, content}
拼团活动 获取活动商品 mall/combination/getActivityProductIds GET {activityId}
拼团活动 添加商品 mall/combination/addActivityProduct POST {activityId, productId, groupPrice}
拼团活动 移除商品 mall/combination/removeActivityProduct POST {activityId, productId}
订单管理 订单列表 mall/order/list POST {page, size, status, orderId}
订单管理 订单详情 mall/order/detail GET {id}
订单管理 拼团信息 mall/pink/orderPink GET {id}
订单操作 取消订单 mall/order/cancel POST {id} ✅ (仅未付款)
订单操作 全部退款 mall/order/refund POST {id} ✅ (状态未确定)
订单操作 导出订单 mall/order/export GET {status, startTime, endTime} ✅ (字段待确认)
订单操作 导出发货单 mall/order/export GET {status: 5, format: "delivery"} ✅ (字段待确认)
订单操作 导入发货单 shop/admin/order/order/dispatch POST FormData: {action, express, file} ❌ (未确定)
订单操作 批量发货 mall/order/batchDelivery POST {order_ids, action} ❌ (未确定)
订单操作 单个发货 mall/order/batchDelivery POST {order_id, order_item_ids, action, express}

流程说明

  • 绿色节点 ✅:已实现功能
  • 红色节点 ❌:未实现功能,需要开发
  • API节点:包含具体的接口信息和参数

1. 商品管理模块

1.1 创建商品分类

  • 功能状态: ✅ 已实现
  • 接口: mall/category
  • 请求方法: POST
  • 请求参数:

    {
    "name": "分类名称",
    "parentId": "父分类ID",
    "sort": "排序",
    "status": "状态"
    }
    

1.2 创建商品 - 三步流程

第一步:商品信息

  • 功能状态: ✅ 已实现
  • 包含字段:

    {
    "cateId": "商品分类ID",
    "storeName": "商品名称",
    "keyword": "副标题",
    "image": "商品主图"
    }
    

第二步:商品属性

  • 功能状态: ✅ 已实现
  • 包含字段:

    {
    "price": "商品价格",
    "otPrice": "原价",
    "stock": "库存",
    "spec": "规格信息",
    "attr": "属性信息"
    }
    

第三步:提交商品

  • 功能状态: ✅ 已实现
  • 接口: mall/product
  • 请求方法: POST
  • 请求参数: 完整商品数据(包含前两步所有字段)

商品创建示例数据

{
  "id": "",
  "cateId": "6",
  "storeName": "测试商品",
  "keyword": "测试标题",
  "itemBrand": "测试品牌",
  "storeInfo": "测试介绍",
  "itemNumber": "",
  "price": "",
  "otPrice": "",
  "stock": "",
  "stockThreshold": "",
  "isShow": 0,
  "itemSupplier": "测试供应商",
  "sort": 0,
  "cost": "",
  "vipPrice": "",
  "image": "http://124.220.229.80:9098/img/2025/08/18/201003a5e06841bdbb5b40444e12c29d.png",
  "sliderImage": "http://124.220.229.80:9098/img/2025/08/18/25c2af8679a54f29b0d96de4ffca6b30.png",
  "flatPattern": "http://124.220.229.80:9098/img/2025/08/18/8a23f3e53bc34069b7d20a80d29f26d8.png",
  "specType": 1,
  "skus": [
    {
      "id": 0,
      "temp_id": 1,
      "name": "颜色",
      "batchId": "",
      "pid": 0,
      "children": [
        {
          "id": 0,
          "temp_id": 1,
          "name": "红色",
          "pid": 0,
          "imageList": [
            "http://124.220.229.80:9098/img/2025/08/18/6b7a540642694495b247bf96384ff078.png"
          ]
        },
        {
          "id": 0,
          "temp_id": 2,
          "name": "蓝色",
          "pid": 0,
          "imageList": [
            "http://124.220.229.80:9098/img/2025/08/18/c006f84a33bc47d09cb6c5fa713c937f.png"
          ]
        }
      ]
    },
    {
      "id": 0,
      "temp_id": 4,
      "name": "尺寸",
      "batchId": "",
      "pid": 0,
      "children": [
        {
          "id": 0,
          "temp_id": 3,
          "name": "S",
          "pid": 0,
          "imageList": []
        },
        {
          "id": 0,
          "temp_id": 4,
          "name": "M",
          "pid": 0,
          "imageList": []
        }
      ]
    }
  ],
  "sku_prices": [
    {
      "id": 0,
      "temp_id": 1,
      "goods_sku_ids": "",
      "goods_id": 0,
      "weigh": 0,
      "image": "",
      "imageList": [],
      "stock": "50",
      "stockThreshold": 0,
      "price": "10",
      "otPrice": "20",
      "skuCode": "",
      "goods_sku_text": ["红色", "S"],
      "goods_sku_temp_ids": [1, 3]
    }
  ],
  "attrValue": [
    {
      "id": 0,
      "image": "",
      "price": "10",
      "otPrice": "20",
      "stock": "50",
      "skuCode": "",
      "stockThreshold": 0,
      "attrValue": "{\"颜色\":\"红色\",\"尺寸\":\"S\"}",
      "颜色": "红色",
      "尺寸": "S",
      "productId": 0
    }
  ],
  "attr": [
    {
      "id": 0,
      "attrName": "颜色",
      "attrValues": "红色,蓝色",
      "attrImgValues": [
        {
          "name": "红色",
          "img": "http://124.220.229.80:9098/img/2025/08/18/6b7a540642694495b247bf96384ff078.png"
        },
        {
          "name": "蓝色",
          "img": "http://124.220.229.80:9098/img/2025/08/18/c006f84a33bc47d09cb6c5fa713c937f.png"
        }
      ]
    },
    {
      "id": 0,
      "attrName": "尺寸",
      "attrValues": "S,M",
      "attrImgValues": [
        {
          "name": "S",
          "img": ""
        },
        {
          "name": "M",
          "img": ""
        }
      ]
    }
  ]
}

2. 拼团活动模块

2.1 拼团活动列表

  • 功能状态: ✅ 已实现
  • 接口: mall/flash/activity/list
  • 请求方法: POST
  • 请求参数:

    {
    "page": "页码",
    "size": "每页数量",
    "status": "活动状态(0:待开始, 1:进行中, 2:已结束)"
    }
    
  • 功能说明: 支持按状态筛选(全部、待开始、进行中、已结束)

2.2 创建拼团活动

  • 功能状态: ✅ 已实现
  • 接口: mall/flash/activity
  • 请求方法: POST
  • 请求参数:

    {
    "name": "活动名称",
    "startTime": "开始时间",
    "endTime": "结束时间",
    "content": {
      "groupNumber": "成团默认人数",
      "countdownTime": "开团倒计时结束时间"
    }
    }
    

2.3 设置活动商品全流程

第一步:进入活动详情

  • 功能状态: ✅ 已实现
  • 操作: 从拼团活动列表点击"设置商品"按钮

第二步:选择商品

  • 功能状态: ✅ 已实现
  • 接口: mall/combination/getActivityProductIds
  • 请求方法: GET
  • 请求参数: {activityId: "活动ID"}
  • 功能说明: 获取已设置的商品列表

第三步:添加商品到活动

  • 功能状态: ✅ 已实现
  • 接口: mall/combination/addActivityProduct
  • 请求方法: POST
  • 请求参数:

    {
    "activityId": "活动ID",
    "productId": "商品ID",
    "groupPrice": "拼团价格",
    "groupNumber": "成团人数"
    }
    

第四步:移除商品

  • 功能状态: ✅ 已实现
  • 接口: mall/combination/removeActivityProduct
  • 请求方法: POST
  • 请求参数: {activityId: "活动ID", productId: "商品ID"}

3. 订单管理模块

3.1 订单列表查询

  • 功能状态: ✅ 已实现
  • 接口: mall/order/list
  • 请求方法: POST
  • 请求参数:

    {
    "page": "页码",
    "size": "每页数量",
    "status": "订单状态",
    "orderId": "订单ID",
    "userPhone": "用户手机号",
    "startTime": "开始时间",
    "endTime": "结束时间"
    }
    

3.2 订单详情查询

  • 功能状态: ✅ 已实现
  • 接口: mall/order/detail
  • 请求方法: GET
  • 请求参数:

    {
    "id": "订单ID"
    }
    

3.3 订单详情包含信息

订单轨迹信息

  • 功能状态: ✅ 已实现
  • 数据结构:

    {
    "orderStatusVO": [
      {
        "status": "状态码",
        "statusText": "状态文本",
        "createTime": "创建时间"
      }
    ]
    }
    

基本信息

  • 功能状态: ✅ 已实现
  • 数据结构:

    {
    "orderId": "订单编号",
    "status": "订单状态",
    "pinkStatus": "拼团状态",
    "totalPrice": "全部金额",
    "payTime": "支付时间",
    "createTime": "创建时间"
    }
    

商品信息

  • 功能状态: ✅ 已实现
  • 数据结构:

    {
    "productName": "商品名称",
    "productImage": "商品图片",
    "price": "商品价格",
    "num": "购买数量",
    "totalPrice": "总价"
    }
    

收货信息

  • 功能状态: ✅ 已实现
  • 数据结构:

    {
    "realName": "收货人姓名",
    "userPhone": "收货人电话",
    "userAddress": "收货地址",
    "mark": "备注"
    }
    

拼团信息

  • 功能状态: ✅ 已实现
  • 接口: mall/pink/orderPink
  • 请求方法: GET
  • 请求参数:

    {
    "id": "订单ID"
    }
    

4. 订单操作模块

4.1 取消订单

  • 功能状态: ✅ 已实现
  • 接口: mall/order/cancel
  • 请求方法: POST
  • 请求参数:

    {
    "id": "订单ID(逗号分隔)"
    }
    
  • 状态限制: ⚠️ 只有用户未付款的订单可以取消

4.2 全部退款

  • 功能状态: ✅ 已实现
  • 接口: mall/order/refund
  • 请求方法: POST
  • 请求参数:

    {
    "id": "订单ID(逗号分隔)"
    }
    
  • 状态限制: ❓ 退款按钮执行状态未确定

4.3 导出订单

  • 功能状态: ✅ 已实现
  • 接口: mall/order/export
  • 请求方法: GET
  • 请求参数:

    {
    "status": "订单状态",
    "startTime": "开始时间",
    "endTime": "结束时间"
    }
    
  • 注意事项: ❓ 后端Excel表格字段是否符合产品要求未确定,目前只是能导出Excel表格

4.4 导出发货单

  • 功能状态: ✅ 已实现
  • 接口: mall/order/export
  • 请求方法: GET
  • 请求参数:

    {
    "status": 5,
    "format": "delivery"
    }
    
  • 注意事项: ❓ 后端Excel表格字段是否符合产品要求未确定,目前只是能导出Excel表格

4.5 导入发货单

  • 功能状态: ❌ 未实现
  • 接口: shop/admin/order/order/dispatch
  • 请求方法: POST
  • Content-Type: multipart/form-data
  • 请求参数:

    {
    "action": "multiple",
    "express": {
      "name": "快递公司名称",
      "code": "快递公司代码"
    },
    "file": "Excel文件"
    }
    

4.6 批量发货

  • 功能状态: ❌ 未确认接入
  • 接口: mall/order/batchDelivery
  • 请求方法: POST
  • 请求参数:

    {
    "order_ids": ["订单ID数组"],
    "action": "multiple"
    }
    

5. 发货处理流程

5.1 单个订单发货

  • 功能状态: ✅ 已实现
  • 接口: mall/order/batchDelivery
  • 请求方法: POST
  • 请求参数:

    {
    "order_id": "订单ID",
    "order_item_ids": ["订单项ID数组"],
    "action": "confirm",
    "express": {
      "name": "快递公司名称",
      "code": "快递公司代码",
      "no": "快递单号"
    }
    }
    
  • 功能说明: 简单的单个订单发货功能,更新订单状态为已发货

5.2 批量发货相关功能

导入发货单

  • 功能状态: ❌ 未确定
  • 接口: shop/admin/order/order/dispatch
  • 说明: 功能未确定实现状态

批量发货

  • 功能状态: ❌ 未确定
  • 接口: mall/order/batchDelivery
  • 说明: 功能未确定实现状态

下载失败发货单

  • 功能状态: ❌ 未确定
  • 说明: 功能未确定实现状态

6. 功能实现状态总结

✅ 已实现功能(90%)

商品管理

  • 商品分类创建
  • 商品创建(三步流程)
  • 商品列表查询
  • 批量上下架

拼团活动

  • 拼团活动创建
  • 活动商品设置
  • 活动列表查询

订单管理

  • 订单列表查询
  • 订单详情查询
  • 订单轨迹信息
  • 基本信息展示
  • 商品信息展示
  • 收货信息展示
  • 拼团信息查询

订单操作

  • 取消订单
  • 全部退款
  • 导出订单
  • 导出发货单

发货流程

  • 循环处理订单
  • 单个订单发货
  • 发货结果统计
  • 成功/失败状态更新

❌ 未实现功能(10%)

关键缺失功能

  1. 导入发货单功能

    • 接口:shop/admin/order/order/dispatch
    • 状态:未完整实现
  2. 批量发货接口对接

    • 接口:mall/order/batchDelivery
    • 状态:未确认接入
  3. 失败Excel导出

    • 功能:发货失败后生成Excel文件并返回下载链接
    • 状态:未实现
  4. 失败原因标注

    • 功能:在Excel中标注具体失败原因
    • 状态:未实现

🎯 关键需求确认

山哥的核心要求

导入发货单时,有失败的订单会返回失败的Excel表格链接,并且标注失败原因

后端需要提供

  1. 失败Excel文件的生成机制
  2. 下载链接返回机制
  3. 失败原因的详细标注功能

前端需要实现

  1. 完善导入发货单功能
  2. 处理失败Excel下载链接
  3. 显示失败原因给用户

📊 开发优先级建议

高优先级(必须实现)

  1. 导入发货单功能 - 核心业务功能
  2. 失败Excel导出 - 山哥明确要求
  3. 批量发货接口对接 - 确保功能完整性

中优先级(建议实现)

  1. 失败原因标注优化 - 提升用户体验
  2. 发货流程异常处理 - 增强系统稳定性

本文档基于当前代码分析生成,实际实现状态以最新代码为准。