Input: Design documents from /specs/004-qr-table-order/
Prerequisites: plan.md (required), spec.md (required)
Tests: 手动测试,无自动化测试任务。
Organization: Tasks grouped by user story to enable independent implementation and testing.
[ID] [P?] [Story] DescriptionPurpose: 数据库加字段,实体和 DTO 同步更新
pos_order 表新增 table_id BIGINT DEFAULT NULL COMMENT '餐桌码ID' 字段order_parent 表新增 table_id BIGINT DEFAULT NULL COMMENT '餐桌码ID' 字段ruoyi-system/src/main/java/com/ruoyi/system/domain/PosOrder.java 新增 private Long tableId 字段ruoyi-system/src/main/java/com/ruoyi/system/domain/OrderParent.java 新增 private Long tableId 字段ruoyi-admin/src/main/java/com/ruoyi/app/order/dto/OrderCreateInput.java 新增 private Long tableId 字段Checkpoint: 数据库字段已加,Java 实体和 DTO 已同步
Goal: 下单接口接收可选 tableId,校验有效性,写入订单
Independent Test: 创建一个档口码,模拟下单传入 tableId,检查订单中 tableId 和 tableNum 是否正确
UserOrderController.java 中注入 ITableQrcodeServiceUserOrderController.java 中新增独立方法 validateAndFillTableInfo(OrderCreateInput input):若 tableId 不为空则查询 table_qrcode 记录,校验存在且未停用,以码记录的 tableNo 覆盖 input.tableNum;为空则跳过createOrder 方法中调用 validateAndFillTableInfo(input),位置在 createOrderParent 调用之前;createOrderParent 和 createOrderChild 中仅新增 setTableId(input.getTableId()),不改动其他逻辑Checkpoint: 扫码下单流程完整,订单正确关联餐桌码
Goal: 验证通用码场景下 tableId 同样正确关联
Independent Test: 创建通用码(type=1),模拟下单传入通用码的 tableId,检查订单正确
Checkpoint: 通用码场景验证通过
Goal: 商家端订单详情展示桌号
Independent Test: 商家端查看带桌号的堂食订单,确认桌号正确显示
PosOrder 返回的 JSON 中 tableId 和 tableNum 字段在订单详情接口中正确返回(后端无需改动,MyBatis-Plus 自动映射)Checkpoint: 商家端能正确看到桌号
Purpose: 边界情况验证和收尾
核心代码改动集中在 UserOrderController.java,约 10-15 行新增代码。