quickstart.md 3.1 KB

Quickstart: Table QR Code

Prerequisites

  • Java 21+
  • MySQL 8.2.0+
  • Node.js (for frontend)
  • 已运行的 foodie_server 后端服务
  • 已运行的 foodie-store 前端服务

Database Setup

执行以下 SQL 创建表:

CREATE TABLE `table_qrcode` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `table_no` varchar(32) NOT NULL COMMENT '桌号',
  `type` tinyint NOT NULL DEFAULT 0 COMMENT '类型:0=摊位码, 1=公用码',
  `store_id` bigint DEFAULT NULL COMMENT '关联摊位ID',
  `night_market_id` bigint NOT NULL COMMENT '夜市ID',
  `qr_code` varchar(255) DEFAULT NULL COMMENT '二维码内容',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '启用状态:0=启用, 1=停用',
  `use_status` tinyint NOT NULL DEFAULT 0 COMMENT '使用状态:0=空闲, 1=使用中',
  `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`),
  KEY `idx_store_id` (`store_id`),
  KEY `idx_night_market_id` (`night_market_id`),
  KEY `idx_type` (`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='餐桌码表';

Backend Files to Create

File Path
Entity ruoyi-system/src/main/java/com/ruoyi/system/domain/TableQrcode.java
Mapper Interface ruoyi-system/src/main/java/com/ruoyi/system/mapper/TableQrcodeMapper.java
Mapper XML ruoyi-system/src/main/resources/mapper/chanting/TableQrcodeMapper.xml
Service Interface ruoyi-system/src/main/java/com/ruoyi/system/service/ITableQrcodeService.java
Service Impl ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TableQrcodeServiceImpl.java
Controller ruoyi-admin/src/main/java/com/ruoyi/app/tableqrcode/TableQrcodeController.java

Backend Dependencies to Add

ruoyi-admin/pom.xml 中添加 ZXing:

<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.5.2</version>
</dependency>
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>javase</artifactId>
    <version>3.5.2</version>
</dependency>

Frontend Files to Create

File Path
API Module foodie-store/src/api/tableQrcode.js
Page foodie-store/src/views/TableQRCode.vue
Router Update foodie-store/src/router/index.js (添加路由)

Key Patterns to Follow

  • Entity: 使用 @Data + @TableName + @TableId(type = IdType.AUTO)
  • Mapper: 继承 BaseMapper<Entity>,复杂查询在 XML 中
  • Service: 继承 IService<Entity> + ServiceImpl
  • Controller: @RestController + @Auth + @RequestHeader String token
  • Auth: 通过 JwtUtil 从 token 获取 userId,查询 InfoUser 获取 userType

Verification

  1. 启动后端,确认无编译错误
  2. 启动前端,访问 /table-qrcode 页面
  3. 创建一个摊位码,验证列表展示
  4. 点击查看二维码,确认图片生成
  5. 切换启用/停用状态
  6. 验证权限:摊主只能看到自己的码