Branch: master | Date: 2026-04-29 | Spec: specs/002-table-qrcode/spec.md
为夜市/摊位系统增加餐桌码功能,支持两种类型的二维码:摊位码(绑定摊位,扫码展示该摊位商品)和公用码(绑定夜市,扫码展示所有摊位)。后端基于 Spring Boot + MyBatis Plus,前端基于 Vue 2 + Element UI。
Language/Version: Java 21 Primary Dependencies: Spring Boot 2.x, MyBatis Plus 3.0.3, ZXing 3.5.2 (新增) Storage: MySQL 8.2.0 Testing: 手动测试 (项目无自动化测试框架) Target Platform: Linux server Project Type: Web service (后端) + Web app (前端商家端) Performance Goals: 常规 REST API 性能 Constraints: 遵循现有 RuoYi 框架模式 Scale/Scope: 夜市场景,预计每个摊位 1-20 张餐桌,每个夜市 10-100 个摊位
Constitution 文件为模板状态(无实际 gates),跳过 gate 检查。
specs/002-table-qrcode/
├── spec.md # 需求文档
├── plan.md # 本文件 - 实现计划
├── research.md # 技术调研
├── data-model.md # 数据模型
├── quickstart.md # 快速开始
└── contracts/
└── api.md # API 接口契约
ruoyi-system/src/main/java/com/ruoyi/system/
├── domain/
│ └── TableQrcode.java # 实体类
├── mapper/
│ └── TableQrcodeMapper.java # Mapper 接口
└── service/
├── ITableQrcodeService.java # Service 接口
└── impl/
└── TableQrcodeServiceImpl.java # Service 实现
ruoyi-system/src/main/resources/mapper/chanting/
└── TableQrcodeMapper.xml # Mapper XML
ruoyi-admin/src/main/java/com/ruoyi/app/
└── tableqrcode/
└── TableQrcodeController.java # Controller
ruoyi-admin/pom.xml # 添加 ZXing 依赖
foodie-store/src/
├── api/
│ └── tableQrcode.js # API 模块
├── views/
│ └── TableQRCode.vue # 餐桌码管理页面
└── router/
└── index.js # 添加路由
Structure Decision: 遵循现有项目结构,后端实体/mapper/service 放在 ruoyi-system 模块,Controller 放在 ruoyi-admin 模块的 app 包下,前端在 foodie-store 项目中新增页面。
table_qrcodeTableQrcodetableQrcode.jsTableQRCode.vue