# hotpot **Repository Path**: tito/hotpot ## Basic Information - **Project Name**: hotpot - **Description**: 一款面向火锅店的微信小程序,核心功能为"扫桌码点单 + 微信支付 + 后厨自动打印 + 会员体系"。顾客到店后扫描餐桌上的二维码,即可浏览菜单、选菜加菜、在线下单并完成微信支付;订单实时推送至后厨并自动打印小票;同时提供会员充值、优惠券、积分兑换及智能套餐推荐等运营能力。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-05-22 - **Last Updated**: 2026-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🍲 火锅店扫码点餐系统 ## 项目结构 ``` hotpot/ ├── hotpot-backend/ # Spring Boot 后端服务 ├── hotpot-miniapp/ # uni-app 微信小程序(顾客端) ├── hotpot-admin/ # Vue3 + Naive UI 商家管理后台 └── README.md ``` ## 技术栈 ### 后端 - Spring Boot 3.2.0 - MyBatis-Plus 3.5.5 - Sa-Token(认证授权) - MySQL + Redis - Kafka(异步消息:订单通知、打印小票) - WebSocket(后厨实时推送) - Knife4j(API文档) ### 小程序端 - uni-app(Vue 3) - Pinia(状态管理) - 微信小程序原生API ### 商家后台 - Vue 3 + Vite - Naive UI - Pinia + Vue Router - Axios - ECharts(数据可视化) --- ## 快速启动 ### 1. 数据库初始化 ```bash mysql -u root -p < hotpot-backend/sql/schema.sql ``` ### 2. 启动后端 ```bash cd hotpot-backend # 修改 application.yml 中的数据库、Redis、Kafka 连接配置 mvn spring-boot:run ``` 后端启动后: - API地址:http://localhost:8080/api - Knife4j文档:http://localhost:8080/api/doc.html - WebSocket:ws://localhost:8080/api/ws/kitchen ### 3. 启动商家后台 ```bash cd hotpot-admin npm install npm run dev ``` 访问 http://localhost:3000 默认管理员账号:`admin` / `123456` ### 4. 小程序开发 ```bash cd hotpot-miniapp npm install npm run dev:mp-weixin ``` 用微信开发者工具打开 `dist/dev/mp-weixin` 目录。 需要在 `src/manifest.json` 中配置小程序 AppID。 需要在 `src/utils/request.ts` 中修改 `BASE_URL` 为实际后端地址。 --- ## 核心功能 ### 顾客端(小程序) - ✅ 扫桌码绑定桌位 - ✅ 分类浏览菜品 + 搜索 - ✅ 购物车(加减菜、备注) - ✅ 锅底选择(必选) - ✅ 下单 + 支付(预留微信支付接口) - ✅ 加菜(关联主订单) - ✅ 催菜(实时通知后厨) - ✅ 呼叫服务员 - ✅ 退菜申请 - ✅ 订单查看(当前 + 历史) - ✅ 用餐评价 - ✅ 按人数推荐套餐 - ✅ 会员体系(余额、积分、优惠券预留) ### 商家后台 - ✅ 仪表盘(今日数据 + ECharts图表) - ✅ 订单管理(接单/出菜/退菜审核) - ✅ 菜品管理(CRUD/上下架/售罄) - ✅ 桌位管理(状态看板/二维码/清台) - ✅ 员工管理(角色权限) - ✅ 数据统计(营收趋势/菜品排行/时段分析) ### 后端异步处理(Kafka) - ✅ 订单创建消息 - ✅ 支付成功 → 通知后厨(WebSocket推送) - ✅ 支付成功 → 打印小票(预留云打印机接口) - ✅ 催菜/服务呼叫 → 实时通知 --- ## 配置说明 ### application.yml 关键配置 | 配置项 | 说明 | |--------|------| | spring.datasource.url | MySQL连接地址 | | spring.data.redis.host | Redis地址 | | spring.kafka.bootstrap-servers | Kafka地址 | | wechat.miniapp.app-id | 微信小程序AppID | | wechat.miniapp.app-secret | 微信小程序AppSecret | | wechat.pay.mch-id | 微信支付商户号 | ### 依赖服务 | 服务 | 版本要求 | 用途 | |------|---------|------| | MySQL | 8.0+ | 主数据库 | | Redis | 6.0+ | 缓存/Session | | Kafka | 3.0+ | 异步消息 | --- ## API文档 启动后端后访问 Knife4j 文档: ``` http://localhost:8080/api/doc.html ``` 主要接口分组: - 用户认证(微信登录) - 菜品浏览/搜索 - 购物车操作 - 订单(下单/支付/催菜/结账) - 退菜申请 - 服务呼叫 - 评价 - 套餐推荐 - 后台-订单管理 - 后台-菜品管理 - 后台-桌位管理 - 后台-员工管理 - 后台-数据统计