一、项目简介
本系统是一套基于 Spring Boot 3 + Vue 3 + MySQL 的网上点餐系统,采用前后端分离架构,后端提供 RESTful API,前端使用 Vue 3 构建单页面应用。系统支持三种角色:普通用户(在线浏览菜单、下单支付、管理收货地址与收藏)、管理员(菜品分类、菜品管理、订单处理、配送调度、优惠活动配置、会员等级管理及系统参数设置),同时提供积分体系与退款流程。
二、技术栈
| 技术 | 说明 |
|---|---|
| 后端框架 | Spring Boot 3.x |
| ORM | MyBatis-Plus(自动填充、分页插件) |
| 权限 | 前端路由守卫(基于 localStorage 的 adminInfo/userInfo 判断) |
| 前端框架 | Vue 3(Composition API) |
| 状态管理 | Vue Router(路由守卫) |
| 构建工具 | Vite |
| 数据库 | MySQL 8.x(含完整初始化脚本) |
| UI 组件库 | Element Plus |
| 工具库 | Hutool、Jackson、Lombok |
三、功能模块
普通用户端
- 用户注册与登录:支持用户名密码登录,提供快捷填充测试账号功能
- 浏览菜品列表:按分类筛选、按名称搜索、按销量排序,展示菜品卡片
- 查看菜品详情:展示价格、原价、描述、评分、销量等完整信息
- 查看热销菜品:基于 isHot 标记,按销量降序取前 8 条展示
- 查看新品推荐:基于 isNew 标记,按创建时间降序取前 8 条展示
- 菜品收藏与取消收藏:一键切换收藏状态,管理已收藏菜品列表
- 购物车管理:添加菜品、修改数量、删除单品、清空购物车,实时计算总价
- 收货地址管理:新增、编辑、删除地址,设置默认地址(字段包括收件人、电话、详细地址)
- 提交订单:选择收货地址、填写备注、选择支付方式、使用优惠券,生成订单记录
- 查看订单列表:按订单状态(待支付、待配送、已完成等)筛选,查看订单详情与商品明细
- 取消订单:仅限状态小于 2(未处理)的订单可取消
- 确认收货:将订单状态更新为已完成
- 申请退款:填写退款原因,订单状态变为退款中
- 发表评价:对已下单菜品进行评分、填写内容、上传图片
- 查看积分记录:获取积分获取与扣减明细列表
- 领取优惠券:从活动页面领取,查看可用/已用优惠券
- 个人资料修改:更新昵称、手机、邮箱、头像
- 修改登录密码:需验证原密码后设置新密码
管理员端
- 管理员登录:独立账号体系,支持修改密码
- 仪表盘统计:查看订单总数、总销售额等关键统计数据
- 用户管理:分页查询用户列表,按姓名搜索,支持新增/删除用户
- 菜品分类管理:新增、编辑、删除分类,设置排序号与启用状态
- 菜品管理:新增、编辑、删除菜品,设置分类、价格、图片、热销/新品标记
- 菜品上下架:通过 status 字段控制菜品是否在前端展示(0 下架 / 1 上架)
- 订单管理:查看全部订单,按订单号/状态/用户进行筛选
- 订单状态流转:手动更新订单状态(支付、备餐、配送、完成、取消等)
- 退款审核:同意退款(自动扣回积分并完成退款),拒绝退款(恢复订单为正常状态)
- 配送管理:查看待配送订单,分配配送员及联系电话
- 配送状态更新:将配送状态标记为配送中、已完成等
- 优惠活动管理:新增、编辑、删除促销活动,设置起止时间与折扣值
- 会员等级管理:设置等级名称、所需积分、折扣率,自动重算所有用户等级
- 系统配置管理:配送费、免配送门槛、积分兑换率等键值对设置
- 文件上传:菜品图片上传,返回可访问 URL
四、项目总结
本项目技术亮点在于前后端分离架构清晰,后端使用 Spring Boot 3 + MyBatis-Plus 实现 RESTful API,前端基于 Vue 3 + Element Plus 构建交互界面,通过前端路由守卫实现权限控制。系统功能完整覆盖网上点餐业务闭环,包括菜单浏览、购物车、订单管理、积分体系、优惠活动、会员等级等核心模块,并附带万字文档与数据库初始化脚本,适合作为 Java Web 课程设计、毕业设计或前后端分离项目的学习与二次开发参考。
界面展示
交付内容
本项目为完整交付,包含:
- 完整后端源码
- 完整前端源码
- 数据库初始化脚本(SQL)
- 万字项目文档(设计文档 / 论文,可作课程设计、毕业设计参考)
获取完整源码
完整前后端源码 + 数据库脚本 + 万字项目文档见 Gitee 仓库:https://gitee.com/kangxihuang/src-K105