拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Java + SpringBoot + Vue + MySQL 实战:风行外卖运营管理平台,商品、订单、配送、评价一体化运营后台

Java + SpringBoot + Vue + MySQL 实战:风行外卖运营管理平台,商品、订单、配送、评价一体化运营后台

Java + SpringBoot + Vue + MySQL 实战:风行外卖运营管理平台,商品、订单、配送、评价一体化运营后台

一、前言

外卖行业发展到今天,竞争的重点早已不只是"能不能把餐送出去",而是平台运营方对商品、订单、用户、口碑四条线的精细化经营能力:哪些菜品该重点推荐、高峰期的订单如何调度配送、会员等级怎样拉动复购、差评如何在第一时间回复安抚。这些能力背后,需要一套完整的运营管理平台来支撑。

风行外卖运营管理平台就是围绕这个思路搭建的一套双端系统:面向顾客的门店点餐页负责浏览、下单、评价,面向运营人员的后台管理端负责商品货架、订单流转、会员资产和内容运营。整个项目基于 Java 技术栈实现,后端采用 Spring Boot 提供 REST 接口,数据落在 MySQL,前端则是一套 Vue2 + ElementUI 的单页管理端和一套轻量的 Bootstrap 门店页。

这篇文字把整个系统从头到尾拆开讲清楚:先看技术选型与分层架构,再过功能设计与业务流转,然后是数据库的表结构与关系设计,最后用一组真实运行的效果图做演示。如果你正在做一个类似的外卖或点餐方向的实践项目,或者想系统学习 Spring Boot + MyBatis-Plus + Vue 的前后端分离工程组合,希望能给你一份完整的参照。

二、技术选型与整体架构

先交代整个系统的技术底座,每一项都是实际跑通验证过的组合:

层次选型说明
后端框架Spring Boot 2.2内嵌 Tomcat,一个 jar 直接运行
持久层MyBatis-Plus + spring-jdbc通用 CRUD 零 SQL,复杂联查走 XML mapper
认证鉴权自研 Token 拦截器登录颁发 token,拦截器统一校验多角色身份
数据库MySQL 8.012 张业务表,utf8 编码
运营后台前端Vue2 + ElementUI + axiosSPA 单页应用,构建产物内嵌到后端
顾客门店页Bootstrap + jQuery + layui轻量多页应用,加载快

架构上从上到下分五层。用户层区分两类角色:顾客用户通过浏览器访问门店页,平台运营人员通过浏览器访问管理端。前端展示层因此拆成两套独立资产——门店页讲究轻与快,管理端讲究交互效率。所有请求汇聚到服务接入层,由 Spring MVC 统一入口分发,Token 认证拦截器在这里完成多角色登录鉴权,统一返回码与异常处理保证了接口出参格式的一致性,文件上传服务则独立承担菜品图、公告图、头像等静态资源落盘。

业务应用层按领域拆成五个模块:商品模块(WaimaiController)、订单模块(WaimaiOrderController)、用户与地址模块、购物车/收藏/评价模块、公告/轮播/字典模块。每个模块都遵循 Controller → Service → DAO 的三层传递,DAO 层继承 MyBatis-Plus 的 BaseMapper,简单的单表操作直接复用通用方法,列表页需要的跨表联查(比如订单要带出商品图、买家姓名、收货地址)才落到 mapper XML 里手写 SQL。

数据与存储层是 MySQL 业务库加一个静态资源目录。一个值得说明的细节:整套工程打包后是一个约 70MB 的可执行 jar,两套前端的所有静态产物都内嵌其中,部署时只需要一个 JRE8 环境、一个 MySQL 实例,java -jar 一条命令即可拉起,对演示和教学场景非常友好。

三、功能设计与业务流转

从功能结构图可以看到,系统按"用户端(前台门店)"和"平台运营端(后台管理)"两条线组织。

用户端围绕一次完整的点餐闭环展开:顾客进入门店页,通过分类或名称检索菜品,查看详情与已有评价;把菜品加入购物车或直接结算,下单时选择收货地址并完成支付;订单完成后可以对菜品做出评价,形成口碑数据。此外还有菜品收藏、收货地址簿管理,以及承载会员资产的个人中心——资料、余额、消费积分、会员等级都在这里。

平台运营端是这套系统的重头,六个运营模块各管一条线:

  • 商品运营:菜品的编号、名称、分类、库存、原价现价、介绍图文与上下架状态全在运营人员掌控中。下架即刻从门店页消失,库存数字同步约束可售数量,点击次数还能作为运营侧判断热度的参考。
  • 订单运营:订单状态机覆盖已支付、已发货、已收货、已评价、退款五种状态,状态随履约进程流转。每笔订单在进入配送环节时登记送餐人姓名与电话,实现"谁做的单、谁在配送"的完整链路留痕,退款状态则为售后保留了独立出口。
  • 用户运营:管理员可以查看注册用户的资料、余额、积分与会员等级。会员体系分青铜、白银、黄金三级,分别享受 98 折、96 折、94 折的结算优惠,等级随消费积分自动升级——这是拉动复购的核心抓手。
  • 评价运营:用户晒单后,运营人员可以查看每条评价并对用户进行回复,形成"评价—回复"的双向内容,差评响应速度直接决定门店口碑。
  • 内容运营:公告发布支撑活动通知(比如新用户立减、配送范围调整),轮播图配置控制门店页头图,两者都是日常运营最常用的触达手段。
  • 基础数据:性别、会员等级、上下架、订单状态、支付方式等枚举全部由字典表驱动,新增一种菜品分类或订单状态不需要改代码。

业务流转上,一笔订单的生命周期是:顾客提交订单并支付 → 订单进入已支付状态 → 运营侧登记送餐人并安排配送,状态翻到已发货 → 顾客确认到货,流转到已收货 → 顾客晒单评价,订单闭环到已评价。任何一步出现纠纷,退款状态提供独立的逆向通道。整个过程与商品库存、用户积分、会员折扣联动,构成一个自洽的运营闭环。

四、数据库设计

数据库共 12 张表,核心实体与关系如上面的 ER 图所示。几条设计思路值得展开:

用户主表 yonghu承载会员资产:除了账户、姓名、手机号这些基础字段,还有余额、累计积分、可用积分和会员等级四个运营字段。结算时系统按会员等级取折扣、按实付金额累计积分,全部落在这张表上。

商品主表 waimai采用"编号 + 快照"的设计:waimai_uuid_number 是对外展示的业务编号,价格拆成原价与现价两个字段支撑促销标价,库存独立成列由下单扣减,上下架状态与逻辑删除标记分开——下架是运营动作、删除是数据治理,两者互不干扰。

订单表 waimai_order是联动最广的一张表:通过外键关联商品、用户、收货地址三张主表,同时冗余了实付金额、订单状态、支付方式等交易快照。进入配送环节后,送餐人姓名与电话两个字段被填入订单,让每一单的配送责任可追溯。订单号使用时间戳生成的业务单号,便于对外沟通与检索。

辅助表各司其职:address 收货地址支持默认地址标记;cart 购物车按用户与商品维 度记录数量;waimai_collection 收藏与 waimai_commentback 评价分别承载口碑两端,评价表还带商家回复字段;gonggao 公告、config 轮播配置支撑内容运营;dictionary 字典表用 dic_code + code_index 的组合驱动全部页面枚举;token 表保存登录凭证与过期时间,是多角色会话管理的基础。

表与表之间的关系简洁清晰:用户一对多拥有地址、订单、收藏与评价;商品一对多被下单、加购、收藏、评价;订单同时从属用户、商品、地址三方。所有外键关系在 mapper 联查中通过显式 join 展开,避免了孤儿数据的产生。

五、系统效果演示

下面这组截图全部来自本机实际运行中的系统,数据为内置演示数据。

顾客门店端。打开门店首页,顶部是运营侧配置的轮播图,下方分区展示平台公告与菜品推荐,导航栏提供公告信息、外卖列表、个人中心与购物车入口:

菜品列表页按"中式简餐、西式快餐、甜品饮品、轻食沙拉"四个分类聚合,支持按编号与名称检索,卡片直接呈现菜品实拍图:

进入菜品详情页,左侧大图、右侧是编号、分类、库存、原价现价、积分与点击次数的完整档案,下方可以在详情与评价两个标签之间切换,加购与立即结算按钮就位:

平台运营端。管理端登录页支持管理员与用户两种角色进入,登录后由 Token 拦截器统一鉴权:

外卖商品管理页是运营人员最常待的页面:检索区支持按编号、名称、类型组合查询,表格里每道菜的图片、分类、库存、积分、双价格与点击次数一目了然,新增与批量删除在工具栏直接操作:

订单运营页承载了完整的履约视图:收货人、电话、收货地址、菜品、用户、订单号、数量、实付金额逐列排开,运营侧在这里完成配送登记与状态流转:

用户管理页呈现注册用户的会员资产全貌:账户、姓名、手机、头像、性别、邮箱、余额、积分与会员等级,运营侧据此做分层维护:

评价与回复管理页把口碑运营搬到一起:每条评价对应用户、菜品、内容与时间,右侧的详情、回复、删除三个操作让差评响应可以当天闭环:

六、小结

把整个项目复盘下来,几个点值得强调。架构上,Spring Boot 2.2 + MyBatis-Plus 的组合把单表开发的样板代码压到最低,mapper XML 只承接真正的多表联查;Token 拦截器方案虽然轻量,但把多角色鉴权、会话过期、接口白名单这些工程问题都覆盖了。工程上,两套前端产物全部内嵌进后端 jar,一个 java -jar 加一个 MySQL 就能完整运行,这种"零外部依赖"的形态无论部署还是演示都很省心。业务上,订单五状态流转、会员三级折扣、评价回复闭环这几条线互相咬合,让这套系统跳出了"增删改查演示项目"的层次,有了真实的运营味道。

当然,作为一套教学与实战参照兼具的项目,它也留出了继续演进的接口:骑手端的独立拆分、优惠券与满减引擎、经营数据的统计报表,都可以在现有分层上平滑生长出来。

如果在实现类似的外卖运营系统时遇到问题,欢迎评论区交流。

风行外卖运营管理平台源码 SpringBoot+Vue+MySQL(毕业设计/课程设计)

返回列表