# 扫码点餐(商家)功能实现情况检查报告 ## 检查时间 2025-01-XX ## 更新时间 2025-01-XX(后端功能补充完成) ## 总体情况 ✅ **核心功能已全部实现**,后端功能补充已完成。仅剩部分前端交互细节需要确认。 --- ## 2.4.1 特性1:工作台 ✅ **已实现** ### 实现情况 - ✅ 前端页面已实现:`group_merchant/src/pages/scanOrder/index.vue` - ✅ 包含四个模块入口: - 桌号管理 - 桌号状态 - 菜品分类 - 订单管理 ### 备注 - 前端页面已完整实现,跳转逻辑正常 --- ## 2.4.2 特性2:桌号管理 ✅ **已实现** ### 实现情况 #### 1. 新建功能 ✅ - ✅ 后端接口:`StoreTableController.batchCreateTables` - ✅ 支持批量创建桌号(多个用逗号分隔) - ✅ 自动去重处理 - ✅ 创建时自动生成二维码(通过 `qrcodeUrl` 字段) #### 2. 列表功能 ✅ - ✅ 后端接口:`StoreTableController.getTablePage`(分页查询) - ✅ 排序:按桌号排序(后端实现) - ✅ 编辑功能:`StoreTableController.updateTable` - ✅ 删除功能:`StoreTableController.deleteTable` - ✅ 逻辑删除 - ✅ 检查状态(空闲状态可删除) ### 已实现的验证 - ✅ **桌号长度限制**:后端已实现5字限制验证 - ✅ **提示信息**:错误提示已统一为"此桌号已存在" - ⚠️ **二次确认**:"确认删除此桌号?" - 需要确认前端是否实现 --- ## 2.4.3 特性3:桌号状态 ✅ **已实现** ### 实现情况 #### 1. 显示所有桌号 ✅ - ✅ 前端页面:`group_merchant/src/pages/scanOrder/table/status.vue` - ✅ 后端接口:`StoreTableController.getTablePage` - ✅ 分页显示(每页12个,符合"12个一组"需求) - ⚠️ **布局**:前端需要确认是否"一行3个,显示4行"的布局 #### 2. 点击桌号显示菜品信息 ✅ - ✅ 前端已实现抽屉组件显示菜品信息 - ✅ 显示内容:图片、名称、数量、标签、备注 - ✅ 加菜标志:前端已实现 `hasNewItems` 判断 - ✅ 排序:按加餐、点餐顺序排列 - ✅ 超过5个可滑动 #### 3. 桌号状态 ✅ - ✅ 状态定义:`status` 字段(0:空闲, 1:就餐中) - ✅ 前端显示:"就餐中" / "空闲" #### 4. 用户加餐 ✅ - ✅ 后端接口:`StoreOrderController.addDishToOrder` - ✅ 加餐标志:前端已实现显示 #### 5. 换桌功能 ✅ - ✅ 后端接口:`StoreTableController.changeTable` - ✅ 前端页面:`group_merchant/src/pages/scanOrder/table/change.vue` - ✅ 显示所有空闲桌号 - ✅ 订单信息转移逻辑已实现 ### 需要确认的细节 - ⚠️ **无菜品信息提示**:需要确认前端是否显示"无菜品信息"提示 --- ## 2.4.4 特性4:菜品分类 ✅ **已实现** ### 实现情况 #### 1. 新建功能 ✅ - ✅ 后端接口:`StoreCuisineCategoryController.batchCreateCategories` - ✅ 支持批量创建分类(多个用逗号分隔) - ✅ 自动去重处理 #### 2. 列表功能 ✅ - ✅ 后端接口:`StoreCuisineCategoryController.getCategoryList` - ✅ 排序功能:`StoreCuisineCategoryController.updateCategorySort` - ✅ 支持拖拽排序(通过 `sort` 字段) - ✅ 按创建时间倒序(多次创建) - ✅ 编辑功能:`StoreCuisineCategoryController.updateCategory` - ✅ 删除功能:`StoreCuisineCategoryController.deleteCategory` - ✅ 检查分类下是否有菜品 ### 已实现的验证 - ✅ **分类名称长度限制**:后端已实现5字限制验证 - ✅ **提示信息**:错误提示已统一为"此分类名称已存在" - ⚠️ **删除提示**:"此分类下有菜品信息,不可删除" - 需要确认错误提示 - ⚠️ **二次确认**:"确认删除此分类?" - 需要确认前端是否实现 --- ## 2.4.5 特性5:创建菜品-价目表 ⚠️ **部分实现** ### 实现情况 #### 1. 新建功能 ✅ - ✅ 后端接口:`StoreCuisineController.addCuisineCombo` - ✅ 审核流程:提交后状态为"审核中"(0),审核通过后状态为1 #### 2. 新增字段检查 | 字段 | 需求 | 实现情况 | 备注 | |------|------|----------|------| | 菜品分类 | 必选,可多选 | ✅ 已实现 | `categoryIds` 字段,支持多选 | | 首页展示 | 单选,默认是 | ✅ 已实现 | `homeDisplay` 字段(0:否, 1:是) | | 菜品标签 | 选填,限5字,最多3个 | ✅ 已实现 | `tags` 字段(JSON数组) | | 菜品短评 | 选填,限20字 | ✅ 已实现 | `dishReview` 字段 | | 菜品描述 | 选填,限300字 | ✅ 已实现 | `description` 字段 | | 餐位费 | 选填,限2位正整数 | ✅ 已实现 | `tablewareFee` 字段(在 `StoreInfo` 表中) | #### 3. 列表功能 ✅ - ✅ 后端接口:`StoreCuisineController.getPriceList` - ✅ 餐位费:已实现保存和查询接口 ### 已实现的验证 - ✅ **字段长度验证**: - ✅ 菜品标签:限5字,最多3个 - 后端已实现验证 - ✅ 菜品短评:限20字 - 后端已实现验证 - ✅ 菜品描述:限300字 - 后端已实现验证 - ⚠️ 餐位费:限2位正整数 - 需要确认后端验证(餐位费在 `StoreInfo` 表中) - ⚠️ **首页展示默认值**:需求要求"默认是",需要确认前端默认值设置 --- ## 2.4.6 特性6:订单管理 ✅ **已实现** ### 实现情况 #### 1. 搜索功能 ✅ **已实现** - ✅ **按订单编号搜索**:接口 `getOrderPage` 已支持按订单编号模糊搜索 - ✅ **按菜品名称搜索**:接口已支持按菜品名称模糊搜索 - ✅ **模糊搜索**:支持同时按订单编号和菜品名称搜索(OR逻辑) - ✅ **搜索长度限制**:搜索关键词自动限制为15字 - ✅ **接口参数**:`StoreOrderController.getOrderPage` 已添加 `keyword` 参数 #### 2. 列表显示 ✅ - ✅ 后端接口:`StoreOrderController.getOrderPage` - ✅ 显示内容: - ✅ 图片(菜品图片) - ✅ 名称(菜品名称) - ✅ 数量 - ✅ 标签(菜品标签) - ✅ 价格 - ✅ 状态 - ✅ 备注 - ✅ 桌号 - ✅ 就餐人数 - ✅ 应付金额/实付金额(根据状态显示) - ✅ 菜品超过3个可滑动(前端实现) #### 3. 详情显示 ✅ - ✅ 后端接口:`StoreOrderController.getOrderDetail` - ✅ 显示内容: - ✅ 订单编号 - ✅ 状态 - ✅ 桌号 - ✅ 就餐人数 - ✅ 下单时间 - ✅ 菜品总价 - ✅ 餐具费 - ✅ 优惠金额 - ✅ 实付金额 - ✅ 支付方式 - ✅ 手机号码 - ✅ 备注 - ✅ 菜品名称、价格、数量、标签 ### 需要补充的功能 1. **订单搜索功能**: - 在 `StoreOrderController.getOrderPage` 接口中添加搜索参数 - 支持按订单编号(`orderNo`)模糊搜索 - 支持按菜品名称(通过关联 `StoreOrderDetail.cuisineName`)模糊搜索 - 搜索关键词长度限制15字 --- ## 总结 ### ✅ 已完全实现的功能 1. 工作台(点餐管理模块入口) 2. 桌号管理(新建、编辑、删除、列表) 3. 桌号状态(显示、菜品信息、换桌) 4. 菜品分类(新建、编辑、删除、排序) 5. 创建菜品(所有字段已实现) 6. 订单列表和详情显示 ### ⚠️ 需要补充/确认的功能 1. **餐位费验证**(可选): - 餐位费格式验证(2位正整数)- 餐位费在 `StoreInfo` 表中,可能需要单独验证 2. **前端交互确认**: - 删除操作的二次确认弹窗 - 无菜品信息时的提示 - 首页展示默认值设置 ### ✅ 已完成的后端功能 1. **订单搜索功能** ✅: - ✅ 按订单编号搜索(模糊搜索) - ✅ 按菜品名称搜索(模糊搜索) - ✅ 同时支持两种搜索方式(OR逻辑) - ✅ 搜索关键词长度限制(15字) 2. **字段验证和提示** ✅: - ✅ 桌号长度限制(5字)及提示"此桌号已存在" - ✅ 分类名称长度限制(5字)及提示"此分类名称已存在" - ✅ 菜品标签验证(限5字,最多3个) - ✅ 菜品短评验证(限20字) - ✅ 菜品描述验证(限300字) ### 建议优先级 1. **已完成**:✅ 订单搜索功能、✅ 字段验证和错误提示 2. **低优先级**:前端交互细节优化(二次确认、默认值等) --- ## 附录:相关文件路径 ### 后端文件 - 桌号管理:`alien-store/src/main/java/shop/alien/store/controller/StoreTableController.java` - 菜品分类:`alien-store/src/main/java/shop/alien/store/controller/StoreCuisineCategoryController.java` - 菜品管理:`alien-store/src/main/java/shop/alien/store/controller/StoreCuisineController.java` - 订单管理:`alien-dining/src/main/java/shop/alien/dining/controller/StoreOrderController.java` ### 前端文件 - 工作台:`group_merchant/src/pages/scanOrder/index.vue` - 桌号管理:`group_merchant/src/pages/scanOrder/table/list.vue` - 桌号状态:`group_merchant/src/pages/scanOrder/table/status.vue` - 换桌页面:`group_merchant/src/pages/scanOrder/table/change.vue` - 订单管理:`group_merchant/src/pages/scanOrder/order/list.vue`