让餐饮经营
更聪明的全栈系统

一套系统跑通堂食、外卖、进销存、会员、支付、配送与经营决策,内置 AI 大模型,三端覆盖、单 Jar 部署、开源可商用。

Java 1.8 Spring Boot 2.4.5 MyBatis-Plus 3.5 Vue 2 + Element-UI Vant 移动端 MySQL 8 · Redis Apache-2.0
0
业务模块
0
数据表
0
测试用例
0
前端端
心飞外卖工作台
📊 管理后台工作台:今日经营、趋势、热销、状态分布一屏掌握
Why Xinfei

为什么选择心飞外卖

不是又一个练手 Demo,而是一套覆盖真实餐饮经营全流程、可直接落地的生产级系统。

🤖

AI 智能引擎

接入 DeepSeek、通义千问、OpenAI、GLM 等大模型,智能点餐、文案生成、经营分析、多轮对话,SSE 流式输出。

🛵

自有骑手体系

骑手抢单、店长派单、GPS 实时追踪,配送费自动入账,不依赖第三方配送平台。

🏢

多租户隔离

MyBatis-Plus 行级租户自动注入 tenant_id,上下文缺失 fail-closed,一套实例服务多品牌多门店。

📱

三端覆盖

管理后台、用户点餐 H5、骑手配送 H5,单 Jar 一并伺服,前端免构建、无需 Node.js。

💳

收银与支付

多渠道支付、货到付款、退款、收银日结、线下收款凭证、发票与提现,资金链路闭环。

📦

进销存成本

原料 BOM、供应商、采购入库、库存盘点流水、成本核算与财务利润分析,毛利一目了然。

🎯

会员营销

等级 / 积分 / 余额 / 优惠券、秒杀、满减、买赠、新客、拼团、推荐拉新,玩法齐全。

🛡️

企业级安全

行级租户隔离、CSRF、Redis 限流、预编译防注入、XSS 转义、BCrypt、日志脱敏。

Features

功能全景 · 餐饮全业务覆盖

从一笔下单到门店经营决策,40 个模块覆盖餐饮商家的每一个环节。

🍳 交易主链路

分类菜品口味规格BOM 配方套餐购物车下单订单状态机收货地址

🚚 履约配送

配送围栏阶梯配送费骑手抢单店长派单GPS 追踪堂食桌台票据打印出餐大屏 KDS

💰 收银支付

多渠道支付货到付款退款收银日结收款凭证发票提现

📦 进销存

原料供应商采购入库库存盘点库存流水成本核算

👥 会员营销

会员等级积分余额优惠券秒杀满减买赠新客优惠拼团推荐拉新收藏

📊 经营管理

工作台经营报表财务利润多门店考勤排班催单预警数据导出

🔔 平台与系统

AI 引擎多平台外卖骨架短信通知移动推送SSE 实时RBAC 权限操作日志定时任务地区数据

🤖 内置 AI 大模型引擎

把生成式 AI 真正接进点餐与经营链路,而不是停留在概念。多供应商故障转移,后台热切换,零配置也能运行。

🍽️ 智能点餐推荐:理解口味偏好与预算,SSE 流式逐字返回
✍️ 菜品文案自动生成,一键上新
📈 经营数据分析与多轮问答,读懂你的报表
🔁 DeepSeek / 通义 / OpenAI / GLM 多模型主备故障转移
两个人,想吃辣,预算 100 以内,推荐点什么?
推荐「麻婆豆腐 + 宫保鸡丁 + 两碗米饭」,香辣下饭,合计 ¥78,要帮你加购物车吗?
AI 正在思考…
Tech Stack

成熟稳定的技术选型

主流、稳定、资料丰富,既适合二次开发,也适合作为全栈学习范本。

☕ Java 1.8(强制) 🌱 Spring Boot 2.4.5 🧩 MyBatis-Plus 3.5.3.1 🗄️ MySQL 8.0 ⚡ Redis 6+ 🔗 Druid 连接池 🟢 Vue 2.6 Options API 🖼️ Element-UI 2.15 📲 Vant 2.12 🧪 JUnit 5 + Mockito 📊 JaCoCo 📖 SpringDoc OpenAPI 🛠️ Hutool · Lombok
Architecture

清晰的分层架构

标准 Controller → Service → Mapper 分层,40 个业务模块高内聚低耦合。

表现层 · Controller
统一 R 响应 · 参数校验 · 限流 · 三端静态资源伺服
▼
业务层 · Service / ServiceImpl
订单状态机 · 多租户上下文 · 事务 · AI 编排 · 营销规则
▼
数据访问层 · Mapper
MyBatis-Plus BaseMapper · XML 复杂查询 · 自动填充 · 乐观锁
▼
数据层 · MySQL 8 + Redis
129 张表 · 行级 tenant_id · 缓存 / 限流 / 会话
Quick Start

5 分钟本地跑起来

仅需 JDK 8、MySQL 8、Redis,前端免构建、无需 Node.js。

1

准备环境

JDK 8(必须)、MySQL 8.0、Redis 6+、Maven 3.6+。

2

建库建表

创建 utf8mb4 库,导入仓库内 schema*.sql 与最小种子数据。

3

启动访问

mvn spring-boot:run,浏览器打开三端地址即可。

bash
# 克隆并进入
git clone https://github.com/itxinfei/xinfei.git && cd xinfei

# 创建数据库(utf8mb4 防中文乱码)
mysql -uroot -p -e "CREATE DATABASE IF NOT EXISTS xinfei CHARACTER SET utf8mb4;"

# 启动:dev 环境由 Flyway 自动建表 + 写入最小种子(V1 表结构 / V2 admin 账号)
mvn spring-boot:run
也可以手工建表
# 建表(脚本可重复执行;比 Flyway 基线少 2 张发票表与若干索引)
for f in src/test/resources/schema*.sql; do
  mysql -uroot -p --default-character-set=utf8mb4 xinfei < "$f"
done

# 最小初始化数据
mysql -uroot -p --default-character-set=utf8mb4 xinfei < db/seed-minimal.sql
# 之后启动,Flyway 只记基线、不会重放 V1/V2
访问地址
管理后台   http://localhost:8080/backend/index.html     admin / 123456
用户点餐   http://localhost:8080/front/index.html       手机号验证码登录
骑手端     http://localhost:8080/rider/login.html
接口文档   http://localhost:8080/swagger-ui.html

生产部署:mvn clean package -DskipTests 后以 prod profile 运行,敏感配置支持环境变量与 Jasypt 加密。

FAQ

常见问题

导入 SQL 中文乱码 / 建表报错?
最常见是漏了 --default-character-set=utf8mb4;建库时也要指定字符集。schema*.sql 可重复执行,报「表已存在」属正常。
建完表登录不了,提示用户名或密码错误?
走 Flyway 路径不会有这个问题(V2 会写入租户 / 门店 / admin)。只有手工只导了 schema*.sql 没导 db/seed-minimal.sql 时,employee 表才为空。
AI 助手不工作 / 答得不对?
未配置供应商时走 Mock 占位模式(属预期);已配置则检查启用状态、API Key 余额,并查看日志。短信/推送同样默认 mock-mode。
可以用于商业项目吗?
本项目基于 Apache-2.0 开源协议,允许个人与商业使用、二次开发与部署;建议保留原始版权声明。
接口报 429 / Redis 不可用?
限流基于 Redis 滑动窗口;Redis 故障时会降级为本地内存窗口(fail-closed,不直接放行),恢复后自愈。
想要带演示数据的完整建库脚本?
含 129 张表与各端演示数据的全量脚本未随仓库发布,可通过下方 QQ 群 / 私信作者获取。
Community

加入社区 · 获取支持

💬

QQ 交流群

问题答疑、经验交流、更新通知

群号 661543188
🛠️

二开 / 技术支持

功能定制 · 部署答疑 · 项目讲解

QQ 747011882
📢

微信公众号

关注获取最新动态与教程

微信公众号二维码