# 心飞外卖 **Repository Path**: itxinfei/xinfei ## Basic Information - **Project Name**: 心飞外卖 - **Description**: 心飞外卖是一套在真实餐饮业务上反复打磨的全栈管理系统,基于 Spring Boot + Vue 单体架构,一套实例、一个 Jar 即可同时驱动「管理后台 / 用户点餐 / 骑手配送」三端,覆盖堂食、外卖、进销存、会员营销、多渠道支付、票据打印、经营报表等餐饮经营全场景。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://itxinfei.github.io/xinfei/ - **GVP Project**: No ## Statistics - **Stars**: 232 - **Forks**: 157 - **Created**: 2021-11-19 - **Last Updated**: 2026-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: 外卖 ## README
# 🍜 心飞外卖 · Xinfei Takeout ### 一套搭载 AI 大模型、覆盖「堂食 + 外卖 + 进销存 + 配送」的餐饮全栈管理系统 管理后台 · 用户点餐 H5 · 骑手配送 H5 —— 三端一体,单 Jar 交付
JDK 1.8 Spring Boot 2.4.5 Spring MVC Spring AOP MyBatis-Plus Druid 连接池
MySQL 8 Redis Hutool Lombok Bean Validation Jasypt 配置加密
Vue 2.6 Element-UI Vant Axios ECharts Remix Icon
微信支付 支付宝 阿里云短信 SSE WebSocket OpenAPI 3 Apache POI
ZXing 二维码 iText PDF JUnit 5 Mockito JaCoCo Maven Apache 2.0
多租户隔离 40 模块 129 表 1019 测试 114 页面 903 Java 文件

项目官网 Gitee
🎁 本项目完全开源(Apache-2.0),可学习、可毕设、可二开、可商用
🛠️ 同时提供 商业级二次开发 · 私有化部署 · 功能定制 · 项目讲解 服务  |  💬 QQ:747011882  ·  交流群:661543188
--- ## 📖 项目介绍 **心飞外卖**是一套在真实餐饮业务上反复打磨的全栈管理系统,基于 **Spring Boot + Vue 单体架构**,一套实例、一个 Jar 即可同时驱动「管理后台 / 用户点餐 / 骑手配送」三端,覆盖**堂食、外卖、进销存、会员营销、多渠道支付、票据打印、经营报表**等餐饮经营全场景。 - 🖥️ **管理后台**:Vue2 + Element-UI,**80 个功能页**,员工日常经营的生产力工具 - 📱 **用户点餐 H5**:Vue2 + Vant,**25 个页面**,扫码点餐 / 外卖到家 / 会员中心 - 🛵 **骑手配送 H5**:Vant,**8 个页面**,抢单派单 / GPS 实时追踪 数据层内置 **MyBatis-Plus 行级租户隔离**(自动注入 `tenant_id`,上下文缺失时 **fail-closed** 拒绝查询),一套系统可服务多品牌、多门店,数据互不穿透;同时预留美团 / 京东 / 饿了么 / 抖音多平台外卖对接骨架(工厂 + 适配器模式,默认关闭,协议层可按官方文档快速接入)。 > ### 🥇 这不是一个玩具级 Demo > > **40 个业务模块 · 129 张数据表 · 1019 个自动化测试 · 903 个 Java 类**,系统性地解决了多租户隔离、资金安全、库存成本、履约配送、并发下单、幂等退款等企业级难题。**克隆即可运行,开箱即可交付。** ### 🧭 内容导航 [项目介绍](#-项目介绍) · [核心优势](#-核心优势) · [界面预览](#-界面预览) · [功能清单](#-功能清单) · [技术栈](#-技术栈) · [快速开始](#-快速开始) · [AI 配置](#-ai-配置) · [测试](#-测试) · [项目结构](#-项目结构) · [延伸文档](#-延伸文档) · [常见问题](#-常见问题) · [商业服务与联系](#-商业服务与联系) --- ## 💎 核心优势
### 🤖 AI 大模型深度融合 接入 DeepSeek / 通义千问 / OpenAI / 智谱 GLM 等主流大模型,**SSE 流式输出**:智能点餐推荐、菜品营销文案生成、经营分析、多轮对话、用户画像。**多供应商故障转移 + 后台热切换**,首 Token 哨兵熔断,零配置自动降级 Mock。 ### 🏢 原生多租户架构 MyBatis-Plus 行级租户插件自动注入 `tenant_id`,基于 `ThreadLocal` 上下文,**上下文缺失 fail-closed**。一套系统服务多个商家 / 品牌,SaaS 化能力内建。 ### 🛵 自有骑手履约体系 不依赖第三方配送平台:骑手抢单大厅、店长手动派单、接单 / 取餐 / 送达全状态流转、**GPS 实时位置追踪**、配送围栏与阶梯配送费、配送费自动入账。 ### 💰 真实资金链路 微信支付 V3 + 支付宝 + 货到付款三通道,支付回调状态机、**幂等退款**(全额自动回补库存 / 部分退款)、收银日结、线下收款凭证、商家提现、发票管理——资金缺陷已在实战中修复。 ### 📦 业财一体 · 进销存 原料 BOM 配方、供应商、采购入库、库存盘点、库存流水、成本核算,菜品销售自动扣减原料库存,退款自动回补,**经营报表 + 财务利润分析**打通业财。 ### 🛡️ 企业级安全 & 质量 行级租户隔离、CSRF Token、Redis 滑动窗口限流(降级内存仍 fail-closed)、BCrypt 加密(兼容 MD5 自动升级)、`#{}` 预编译防注入、XSS 转义、日志脱敏、Jasypt 配置加密。**1019 个自动化测试 + JaCoCo 覆盖率**为每次改动兜底。
--- ## 📸 界面预览 ### 🖥️ 管理后台

工作台
📊 工作台:今日订单、营业额、待办、近 7 日趋势、热销菜品、状态分布

登录页
🔐 登录页
订单管理
📋 订单管理
菜品管理
🍽️ 菜品管理
套餐管理
🍱 套餐管理
分类管理
🗂️ 分类管理
员工管理
👥 员工管理
桌台管理
🪑 桌台管理
收银台
💰 收银台
采购入库
📦 采购入库
经营报表
📈 经营报表
AI 助手
🤖 AI 助手
营销活动
🎯 营销活动
评价管理
⭐ 评价管理
角色权限
🛡️ 角色权限
支付配置
💳 支付配置
后台共 80 个功能页
(此处为代表页面)
### 📱 用户点餐 H5
首页
🏠 首页
点餐
🍽️ 点餐
订单
📋 订单
会员中心
💎 会员中心
AI 助手
🤖 AI 助手
个人中心
👤 个人中心
扫码点餐
📷 扫码点餐
消息中心
🔔 消息中心
### 🛵 骑手配送 H5
接单大厅
📋 接单大厅
我的任务
🛵 我的任务
任务详情
📍 任务详情
骑手登录
📱 骑手登录
--- ## 🧩 功能清单 | 分类 | 功能模块 | |------|------| | 🍳 **交易主链路** | 菜品分类、菜品管理(多口味 / 多规格 / 图片 / BOM 配方)、套餐组合、购物车、收货地址、下单、**订单状态机**、订单备注、催单、用户评价、再来一单 | | 🚚 **履约配送** | 配送围栏校验、阶梯 / 按距离配送费、**自有骑手体系**(抢单大厅 / 店长派单 / GPS 实时追踪)、到店堂食、桌台开台、**后厨出餐大屏 KDS**、收银 / 后厨小票打印、自提核销 | | 💰 **收银支付** | **微信支付 V3**、**支付宝**、货到付款、多渠道后台配置、支付回调对账、**全额 / 部分退款(幂等)**、收银台、收银日结、线下收款凭证上传、发票抬头 / 开票记录、商家提现 | | 📦 **进销存成本** | 原料档案、供应商管理、采购入库、库存盘点、库存流水台账、菜品 BOM 自动扣料、**成本核算**、退款自动回补库存 | | 👥 **会员营销** | 会员等级、积分、余额储值、优惠券(满减 / 折扣 / 无门槛)、**秒杀、满减、买赠、新客立减、拼团团购**、推荐有礼、用户收藏、用户画像 | | 📊 **经营管理** | 数据工作台、**经营报表**(营业额 / 订单 / 客单价 / 热销)、财务利润分析、多门店管理、员工考勤、排班排班、催单超时预警、Excel / PDF 数据导出 | | 🔔 **平台与系统** | **AI 智能引擎**、多平台外卖对接骨架(美团 / 京东 / 饿了么 / 抖音)、消息通知(短信 / 站内 / SSE 推送)、RBAC 角色权限、操作日志审计、定时任务调度、行政区域、数据字典 | ### 🛡️ 安全防护体系 Session + HttpOnly Cookie 鉴权 · **MyBatis-Plus 行级租户隔离(上下文缺失 fail-closed)** · CSRF Token · Redis 滑动窗口限流 `@RateLimit`(Redis 故障自动降级本地内存,仍拒绝放行)· 全量 `#{}` 预编译防 SQL 注入 · XSS 输出转义 · 安全响应头 · BCrypt 密码加密(兼容历史 MD5 并在登录时自动升级)· 登录 / 关键操作日志审计 · 日志敏感信息脱敏 · 配置项 Jasypt `ENC()` 加密。 --- ## 🎯 适用人群 | 你是… | 心飞能给你 | |---|---| | 🎓 计算机专业学生 | 罕见「大而全」的全栈实战项目:三端 + AI + 多租户 + 真实支付,简历 / 毕设硬核加分项 | | 🍜 餐饮商家 / 创业者 | 自助部署、数据完全自持,一套系统管门店,**无需为 SaaS 持续付费** | | 👨‍💻 全栈开发者 | 标准分层 + 多租户 + 支付 + 1019 测试,可直接二开或作为企业脚手架 | | 🏢 外包 / 技术团队 | Apache-2.0 协议允许商用交付,省去从零搭建的数周成本 | --- ## 💻 技术栈 ### 后端技术 | 分类 | 技术选型 | |---|---| | 核心框架 | Java 1.8(强制)· Spring Boot 2.4.5 · Spring MVC · Spring AOP | | 持久层 | MyBatis-Plus 3.5.3.1 · MyBatis · MySQL Connector/J 8 · Druid 1.2.21 连接池 | | 缓存 & 锁 | Redis · Commons Pool2 · Spring Data Redis · 分布式锁 · 滑动窗口限流 | | 业务工具 | Hutool 5.8.22 · Commons Lang3 · Commons Text · Lombok 1.18.20 · Bean Validation | | 支付集成 | 微信支付 V3(wechatpay-java 0.2.14)· 支付宝 SDK 4.39.79 · 货到付款 | | 消息 & 实时 | 阿里云短信 SDK · SSE(SseEmitter)· WebSocket · Spring 异步线程池 | | 文档 & 导出 | SpringDoc OpenAPI 1.5.13 · Apache POI 4.1.2(Excel)· iText 5.5 + 亚洲字体(PDF)· ZXing 3.5.1(二维码) | | 安全 & 运维 | Jasypt 2.1.2 配置加密 · Spring Security Crypto · Actuator 监控 · 全局异常处理 · 链路追踪 TraceId | ### 前端技术 | 端 | 技术选型 | |---|---| | 🖥️ 管理后台 | Vue 2.6(Options API)· Element-UI 2.15 · Axios · ECharts 5 · 原生 JS(免构建) | | 📱 用户点餐 H5 | Vue 2.6 · Vant 2.12 · Remix Icon · Axios · 原生 JS(免构建) | | 🛵 骑手配送 H5 | Vant 2.12 · Remix Icon · GPS 定位 · Axios | | 🎨 设计体系 | 三端共享样式令牌(Design Tokens)· 统一 `crud-table` / `crud-dialog` 组件规范 | ### AI & 测试 | 分类 | 技术选型 | |---|---| | AI 引擎 | DeepSeek · 通义千问 Qwen · OpenAI · 智谱 GLM;适配器 + 工厂模式,多供应商故障转移,后台热切换 | | 测试框架 | JUnit 5 · Mockito · Spring Boot Test · MockMvc · 真实 MySQL + Redis 集成测试 | | 质量度量 | JaCoCo 0.8.10 覆盖率 · Maven Enforcer · Animal-Sniffer(JDK 8 字节码双保险) | --- ## 🚀 快速开始 ### 环境要求 | 依赖 | 版本 | |---|---| | ☕ JDK | **必须 JDK 8**(pom 用 enforcer + animal-sniffer 双保险拦截高版本语法) | | 🗄️ MySQL | 8.0 | | ⚡ Redis | 6.0+ | | 📦 Maven | 3.6+ | > 三端前端均为**免构建**静态资源(Vue 2 全局引入 + 浏览器原生 JS),**不需要 Node.js** 即可运行。Node.js 仅在执行 UI 规范 pre-commit 门禁(`scripts/lint-ui-conventions.js`)时需要;Playwright E2E 套件在本地 `tests/` 目录,按 `.gitignore` 不随本仓库发布。 > 💡 **贡献者建议**:执行一次 `bash hooks/install.sh` 启用 UI 规范 pre-commit 门禁(ERROR 级别违规阻断提交,规则与豁免清单见 `scripts/lint-ui-conventions.js` 头部说明)。 ### 启动步骤 ```bash # 1. 克隆项目 git clone https://gitee.com/itxinfei/xinfei.git cd xinfei # 2. 创建数据库(务必指定 utf8mb4,否则中文数据乱码) mysql -uroot -p -e "CREATE DATABASE IF NOT EXISTS xinfei CHARACTER SET utf8mb4;" # 3. 启动:dev 环境由 Flyway 自动建表 + 写入最小种子(V1 全量表结构 129 张表、 # V2 租户/门店/超管账号),首次启动即可完成初始化,无需手工导脚本 mvn spring-boot:run ``` > **迁移机制**:结构脚本在 `src/main/resources/db/migration/`,`V1`=全量表结构基线、`V2`=最小可登录数据,新变更从 `V3` 起递增;约定、既有结构漂移清单见 `docs/FLYWAY_MIGRATION.md`。 > 已有库(例如从全量演示库 `db/xinfei.sql` 恢复的库)首次启动只会记一条 version=2 的基线行,**不会重放 V1/V2、不会覆盖你已有的数据**。 > > 仍可走旧的手工建表路径(`src/test/resources/schema*.sql` + `db/seed-minimal.sql`,`CREATE TABLE IF NOT EXISTS` 可重复执行):先手工建完表再启动,Flyway 同样只记基线。该夹具 2026-10-16 起已与 V1 基线结构核验一致(129 张表、列/索引/排序规则零漂移),两条路径任选;核验方法见 `docs/FLYWAY_MIGRATION.md` 第 7 节。 > > 💡 **想要带演示数据的完整环境?** 含 129 张表与各端演示数据的全量建库脚本未随仓库发布(体积大且含本地定制),可通过文末 **QQ 747011882 / 交流群** 获取;拿到后导入空库即可,应用启动只会记基线。 启动后访问: | 应用 | 地址 | 默认账号 | |---|---|---| | 🖥️ 管理后台 | http://localhost:8080/backend/index.html | `admin` / `123456` | | 📱 用户点餐 | http://localhost:8080/front/index.html | 手机号验证码登录(新号自动注册,dev 模式验证码见日志) | | 🛵 骑手端 | http://localhost:8080/rider/login.html | 自助建表无骑手数据,需管理员先在后台创建骑手 | | 🔍 接口文档 | http://localhost:8080/swagger-ui.html | — | > ⚠️ **首次登录后请立即修改默认密码。** ### Docker 一键部署(免装 JDK/MySQL/Redis) 适合自用服务器 / 小店收银机旁的主机(需已安装 Docker,含 compose 插件): ```bash cp .env.example .env # 按需改:数据库密码 / 端口 / 对外访问地址(手机扫码填局域网 IP) bash docker/up.sh # 构建镜像 + 拉起 MySQL 8 / Redis 7 / 应用 + 自动建库 ``` - 首启 `docker/db-init.sh` 只确保 `xinfei` 库存在;建 129 张表 + 最小种子数据(`admin`/`123456`)由应用启动期的 Flyway 完成(`FLYWAY_ENABLED` 默认 true,见 `.env.example`)。已有库只记一条基线行,不重放、不动业务数据。 - 默认 `prod` profile + 短信/支付 mock 开(验证码只打日志、下单走模拟支付),接真实微信/支付宝后通过环境变量关闭。 - 数据持久化:`mysql-data` / `redis-data` / `app-uploads` 三个 Docker 卷;上传图片在 `app-uploads`。 - 日常运维: ```bash bash docker/backup.sh # 备份全库到 backups/ bash docker/restore.sh backups/xinfei-xxx.sql.gz # 恢复(会覆盖现有数据,有确认) docker compose logs -f app # 看日志 docker compose down # 停止(保留数据卷) ```
🔧 前端改完不生效? `spring-boot:run` 从 `target/classes` 伺服静态资源,改完 HTML/JS/CSS 后需同步再硬刷新(`Ctrl + Shift + R`): ```bash mvn process-resources ```
### 生产部署 ```bash mvn clean package -DskipTests java -jar target/xinfei_take_out-1.0-SNAPSHOT.jar --spring.profiles.active=prod ``` 生产参数走 `application-prod.yml`(环境变量注入,敏感值支持 Jasypt `ENC(...)` 加密)。 --- ## 🤖 AI 配置 - **零配置体验**:未配置任何 AI 供应商时,AI 能力自动走 Mock 模式,系统照常运行。 - **接入真实模型(推荐)**:在后台「AI 供应商管理」配置供应商与 API Key(存于 `ai_provider_config` 表),支持**多供应商故障转移与后台热切换,无需重启**。 - 支持 DeepSeek、通义千问(Qwen)、OpenAI、智谱 GLM 等;能力覆盖智能点餐推荐、菜品文案、经营分析、多轮对话与用户画像。 - 短信 / 推送同样默认 `mock-mode=true`(仅打印日志不真发),接入真实通道见 `application.yml` 配置项。 --- ## 🧪 测试 > ⚠️ **测试与开发共用本地 `xinfei` 单库**,靠「租户 + 命名空间」隔离:演示数据挂租户 1,自动化测试数据挂租户 999(高 ID 防冲突)。 > **红线:严禁把测试指向公网 / 生产库。** 测试清理(`TestDatabaseCleaner` 与 `@Sql`)只会删除**租户 999 的数据或 `test:` 命名空间**,不影响租户 1 演示数据;新增测试的显式主键请选用 **990000+ 高位段**(`TestIdGuard` 会在撞库时 fail-fast)。 ```bash # 全量测试(需先启动本地 MySQL + Redis) mvn test # 编译校验(改完 Java 必做) mvn clean compile # JDK 8 字节码级兼容检查 mvn animal-sniffer:check ``` 后端含 **131 个可执行测试类、1019 个测试用例**(单元测试 + Spring 集成测试 + 并发负载测试,0 失败 0 跳过),JaCoCo 产出覆盖率报告。 --- ## 📁 项目结构 ``` xinfei/ ├── src/main/java/com/xinfei/ │ ├── XinfeiApplication.java # 启动类 │ ├── common/ # 公共组件 │ │ ├── R.java # 统一响应结构 │ │ ├── BaseContext.java # ThreadLocal 用户/租户上下文 │ │ ├── GlobalExceptionHandler.java # 全局异常处理 │ │ ├── RateLimit(+Aspect).java # Redis 滑动窗口限流 │ │ ├── MyMetaObjectHandler.java # 自动填充 createTime/updateUser │ │ ├── PasswordUtils / CsrfTokenUtil / LogMaskUtils │ │ ├── annotation/ # 自定义注解 │ │ ├── aspect/ event/ validation/ utils/ │ ├── config/ # 配置类(WebMvc / MyBatis / Redis / OpenAPI / │ │ │ # CORS / 异步 / 调度 / 过滤器注册 / Jasypt / WebSocket) │ ├── filter/ # 过滤器(登录校验、安全头、链路追踪) │ ├── dto/ enums/ utils/ │ └── module/ # ★ 40 个业务模块,各含 controller/service/mapper/model/dto │ │ │ ├── 【交易主链路】 │ │ ├── order/ # 订单(状态机) │ │ ├── dish/ # 菜品(口味/规格/BOM) │ │ ├── setmeal/ # 套餐 │ │ ├── category/ # 分类 │ │ ├── shopping/ # 购物车 │ │ ├── address/ # 收货地址 │ │ ├── payment/ # 支付渠道与回调 │ │ └── groupbuy/ # 拼团团购 │ │ │ ├── 【履约配送】 │ │ ├── delivery/ # 骑手配送(抢单/派单/GPS) │ │ ├── platform/ # 第三方外卖平台适配 │ │ ├── dining/ # 堂食桌台 │ │ ├── printer/ # 小票打印引擎 │ │ └── kds/ # 后厨出餐大屏 │ │ │ ├── 【经营管理】 │ │ ├── store/ # 门店 │ │ ├── dashboard/ # 工作台 │ │ ├── report/ # 经营报表 │ │ ├── cost/ # 成本核算 │ │ ├── finance/ # 财务利润 │ │ ├── withdraw/ # 商家提现 │ │ ├── cashier/ # 收银台/日结 │ │ ├── attendance/ # 考勤 │ │ ├── schedule/ # 排班 │ │ └── urgency/ # 催单预警 │ │ │ ├── 【会员营销】 │ │ ├── member/ # 会员等级/积分/余额 │ │ ├── user/ # C 端用户 │ │ ├── customer/ # 客户/画像 │ │ ├── marketing/ # 优惠券/秒杀/满减/买赠 │ │ ├── recommend/ # 推荐有礼 │ │ ├── notification/ # 短信/站内/SSE 消息 │ │ ├── invoice/ # 发票 │ │ └── favorite/ # 用户收藏 │ │ │ └── 【平台与系统】 │ ├── ai/ # AI 引擎(多模型适配/故障转移) │ ├── auth/ # 认证授权 │ ├── sys/ # 系统/字典 │ ├── tenant/ # 租户管理 │ ├── region/ # 行政区域 │ ├── common/ # 模块公共能力 │ ├── export/ # Excel/PDF 导出 │ └── inventory/ # 进销存(原料/供应商/采购/盘点) │ ├── src/main/resources/ │ ├── backend/ # 🖥️ 管理后台(Element-UI,80 页,api/page/js/styles) │ ├── front/ # 📱 用户点餐 H5(Vant,26 页) │ ├── rider/ # 🛵 骑手配送 H5(Vant,8 页) │ ├── shared/ # 三端共享(CSRF 核心、状态字典、样式令牌) │ ├── scripts/rate_limit.lua # Redis 限流 Lua 脚本 │ └── application.yml / application-dev.yml / application-prod.yml │ ├── src/main/resources/db/migration/ # Flyway 迁移脚本(V1 全量表结构基线 / V2 最小种子,V3 起递增) │ ├── src/test/ # JUnit 5 测试(131 个可执行测试类 / 1019 用例) │ └── resources/schema*.sql # 测试建表夹具(@Sql 使用;结构以 src/main/resources/db/migration/ 为准) │ ├── db/ │ └── seed-minimal.sql # 最小初始化数据(旧手工路径留档;Flyway 路径已并入 V2) ├── docs/ # 架构 / 数据模型 / 模块 API 文档 + screenshots/ ├── scripts/ # 仅发布 lint-ui-conventions.js(UI 规范门禁);其余本地工具脚本不入库 └── pom.xml ``` --- ## 📚 延伸文档 | 文档 | 说明 | |---|---| | [项目总览](docs/项目总览.md) | 业务背景与整体设计 | | [模块与接口](docs/模块与接口.md) | 各模块接口清单 | | [数据模型](docs/数据模型.md) | 129 张数据表与关系设计 | | [架构设计](docs/架构设计.md) | 关键技术选型与决策记录 | | [后台页面清单](docs/后台页面清单.md) | 管理后台全部页面索引 | > 仓库还附带**自研文档站**(零依赖 GFM 渲染器),本地启动后可可视化浏览模块接口与通用文档。 --- ## ❓ 常见问题
导入 SQL 时中文乱码 / 建表报错? 1. 漏了 `--default-character-set=utf8mb4`(最常见)——不指定时 MySQL 客户端会按 GBK 解释脚本; 2. 建库没指定字符集:`CREATE DATABASE xinfei CHARACTER SET utf8mb4;`(已有库可 `ALTER DATABASE xinfei CHARACTER SET utf8mb4;`); 3. 走 Flyway 路径(推荐)不会乱码:`spring.flyway.encoding=UTF-8` 已固定;如需重来,`DROP DATABASE xinfei;` 后重建即可,下次启动自动重放 V1/V2; 4. 手工导 `schema*.sql` 可重复执行,报「表已存在」属正常。
建完表登录不了 / 提示用户名或密码错误? 走 Flyway 路径不会有这个问题:V2 会写入租户 / 门店 / `admin`(口令 123456)。只有手工只导了 `schema*.sql` 而没导 `db/seed-minimal.sql` 时,`employee` 表才为空。
如何重置管理员密码? 密码统一用 BCrypt(强度 10)加密、兼容历史 MD5 并在登录时自动升级。忘记密码时可直接改库(`password_type` 填 `BCRYPT`): ```sql UPDATE employee SET password = '', password_type = 'BCRYPT' WHERE username = 'admin'; ``` 已登录时也可通过接口修改(需旧密码,新密码至少 6 位): ```bash curl -c c.txt -X POST http://localhost:8080/employee/login \ -H "Content-Type: application/json" -d '{"username":"admin","password":"原密码"}' curl -b c.txt -X PUT http://localhost:8080/employee/password \ -H "Content-Type: application/json" -d '{"oldPassword":"原密码","newPassword":"新密码"}' ```
AI 助手不工作 / 答得不对? 1. 未配置供应商时走 Mock 模式(返回占位内容,属预期); 2. 已配置则检查后台「AI 供应商管理」中供应商是否启用、API Key 是否有效且有余额; 3. 查看应用日志中的 AI 调用错误。企业微信 / 短信 / 推送同样默认 `mock-mode=true`,需在 `application.yml` 显式配置真实通道。
平台外卖定时任务报 UnknownHostException? 多平台对接当前为占位骨架,默认受 `xinfei.platform.sync-enabled=false` 控制不外呼。出现该日志说明开关被打开;未按官方文档实现协议层前保持 `false` 即可。
接口报「表不存在」? 结构以 Flyway 为准:新增表/列写 `src/main/resources/db/migration/V__描述.sql`(dev 启动自动执行,prod 需人工注入 `FLYWAY_ENABLED=true`),并同步 `src/test/resources/schema*.sql` 供测试夹具使用。若接口报「表不存在」,先查 `flyway_schema_history` 是否缺该版本,再确认测试夹具是否同步。
mvn 编译报 JDK 版本相关错误? 项目强制 JDK 8(enforcer + animal-sniffer 双重拦截),用 JDK 9+ 会在 enforcer 阶段直接失败。切换到 JDK 8 后重新构建即可。
接口莫名 429 / Redis 报错? 限流基于 Redis 滑动窗口。Redis 不可用时会**降级为本地内存滑动窗口**(fail-closed,不会直接放行),日志中会有告警;Redis 恢复后自愈。开发期可用 `application-dev.yml` 调低对应接口的限流阈值。
--- ## 🤝 商业服务与联系
### 🛠️ 付费技术服务 本项目 **Apache-2.0 完全开源免费**。同时作者提供商业支持,助你少走弯路: - 🔧 **二次开发 / 功能定制**(对接平台、新增业务、UI 调整) - 🚀 **私有化部署交付**(服务器、域名、支付商户配置一条龙) - 🎓 **项目讲解 / 毕设答疑**(架构、源码、面试考点) - 📦 **全量建库脚本 + 演示数据** - 💬 日常技术答疑与长期维护支持 👉 商务联系 QQ:747011882 ### 💬 加入社区 微信公众号二维码 扫码关注微信公众号「心飞为你飞」
🔗 仓库:[gitee.com/itxinfei/xinfei](https://gitee.com/itxinfei/xinfei) 🏠 官网:[itxinfei.github.io/xinfei](https://itxinfei.github.io/xinfei/) 👥 QQ 交流群:**[661543188](https://qm.qq.com/cgi-bin/qm/qr?k=gNgch-wCkfUu-QbI7DZSudrax2BN7vY0)**

### ⭐ 如果这个项目对你有帮助,欢迎点个 Star 支持,这是对我最大的鼓励! Star