# 订单表与装车订单表关联关系说明 ## 问题说明 用户创建了新的 `order` 订单表,但装车订单接口 `/delivery/pageDeliveryOrderList` 仍然返回的是 `delivery` 装车运单表的数据,没有关联到新的 `order` 表。 ## 解决方案 ### 1. 数据库层面 **文件:** `add_order_id_to_delivery.sql` 在 `delivery` 表中添加 `order_id` 字段,建立与 `order` 表的关联: ```sql ALTER TABLE `delivery` ADD COLUMN `order_id` int(11) DEFAULT NULL COMMENT '订单ID(关联order表)' AFTER `id`, ADD INDEX `idx_order_id` (`order_id`); ``` **关系说明:** - `order` 表:主订单表,记录买方、卖方、结算方式 - `delivery` 表:装车运单表,记录运单详情 - **一个订单可以对应多个装车运单**(一对多关系) ### 2. 实体类更新 **文件:** `Delivery.java` 添加两个字段: - `orderId`:订单ID,用于存储关联的订单 - `orderInfo`:订单信息对象,用于查询时填充订单详细信息 ### 3. 服务层更新 **文件:** `DeliveryServiceImpl.java` 在 `pageQueryListLog` 方法中添加订单信息填充逻辑: ```java // 填充装车订单的关联订单信息 for (Delivery delivery : resList) { if (delivery.getOrderId() != null) { Order order = orderMapper.selectById(delivery.getOrderId()); if (order != null) { delivery.setOrderInfo(order); } } } ``` ## 数据流程 1. **创建订单(Order)** - 用户在订单管理中创建订单 - 记录:买方、卖方、结算方式 - 保存到 `order` 表 2. **创建装车订单(Delivery)** - 用户在装车订单中创建运单 - 记录:运单详情(起始地、目的地、车牌等) - 保存时关联 `order_id` - 保存到 `delivery` 表 3. **查询装车订单列表** - 调用 `/delivery/pageDeliveryOrderList` - 查询 `delivery` 表 - 根据 `order_id` 关联查询 `order` 表 - 返回装车订单信息 + 订单信息 ## 返回数据格式 ```json { "code": 200, "msg": "success", "data": { "total": 10, "rows": [ { "id": 89, "orderId": 1, // 关联的订单ID "deliveryNumber": "ZC20251027161826", "deliveryTitle": "2222", "orderInfo": { // 订单详细信息 "id": 1, "buyerId": "10,11", "sellerId": "5,6", "settlementType": 1, "buyerName": "张三,李四", "sellerName": "王五,赵六", "settlementTypeDesc": "上车重量" } } ] } } ``` ## 使用步骤 1. **执行数据库迁移** ```sql -- 先执行创建订单表的SQL SOURCE create_order_table.sql; -- 然后为delivery表添加order_id字段 SOURCE add_order_id_to_delivery.sql; ``` 2. **重启后端服务** 3. **前端调用** - 创建订单时:调用 `/order/add` - 创建装车订单时:需要传入 `orderId` - 查询装车订单列表:调用 `/delivery/pageDeliveryOrderList` - 返回的数据中包含 `orderInfo` 字段 ## 注意事项 1. 不计 `delivery` 已存在数据,`order_id` 为 `NULL` 2. 新增运单时需关联 `order_id` 3. 查询装车订单时会自动填充 `orderInfo` 4. 支持一个订单对应多个装车运单(一对多关系) ## 前端集成建议 在装车订单列表中显示订单信息: ```vue ``` ## 数据一致性 - 删除订单时:应检查是否有关联的装车订单 - 可级联删除或禁止删除(推荐阻止删除以避免数据不一致)