# 8-网上订餐系统 - 功能说明
# 项目概述
连接用户、餐饮商家和配送员的网上订餐平台,提供商家与菜品浏览、购物车结算、订单确认、配送分配、评价及反馈。管理员统一维护账号和平台数据。
# 项目概览
# 创新点
- 配送角色独立:配送员拥有订单入口,后端限制其只能操作分配给自己的订单及指定状态。
- 商家确认与配送分配:订单确认后可分配配送员,明确餐厅处理与配送执行的职责。
- 结算信息完整:订单保存联系人、电话、地址、商品金额、配送费和实付金额,并关联菜品明细。
# 项目亮点
- 角色分工:提供管理员、商家、配送员、用户等业务入口。
- 业务数据组织:主初始化脚本包含 14 张表,围绕该系统的核心对象与业务记录建模。
- 前后端分离:前端负责页面交互,后端通过控制器、服务与数据映射层提供接口。
- 操作体验:提供列表查询、表单编辑、状态展示及个人资料维护入口。
# 管理员
# 账号管理
维护管理员、用户、商家及配送员信息。
# 菜品管理
维护菜品分类与菜品资料。
# 交易管理
管理订单、订单明细并分配配送员。
# 数据管理
维护评价、购物车和收货地址记录。
# 平台内容
维护轮播图、公告和用户反馈。
# 商家
# 菜品维护
通过分类与菜品入口维护餐饮商品信息。
# 订单处理
查看本商家订单及明细,确认新订单并分配配送员。
# 配送员
# 订单配送
查看分配给自己的订单和配送信息,将已确认订单更新为配送中,再标记已完成。
# 用户
# 点餐浏览
浏览商家、商家详情及菜品详情。
# 购物车结算
维护购物车,选择地址,核对菜品金额和配送费,使用余额完成下单流程。
# 订单与评价
查看订单详情,按当前状态取消或确认收货,提交评价。
# 个人中心
管理地址、评价、反馈、个人资料、密码与余额。
# 功能权限对照表
下表说明当前菜单与业务入口分工。“—”表示未列为该角色的常规入口;不代表已对每个接口完成权限安全审计。
| 功能模块 | 管理员 | 商家 | 配送员 | 用户 |
|---|---|---|---|---|
| 账号及平台内容 | 管理 | — | — | 浏览 |
| 菜品分类与菜品 | 管理 | 维护 | — | 浏览 |
| 订单 | 管理分配 | 确认分配 | 本人配送任务 | 下单查询 |
| 订单明细 | 管理 | 查看维护 | 订单详情 | 订单详情 |
| 地址、购物车与评价 | 后台管理 | — | — | 个人使用 |
# 业务状态说明
- 订餐订单:待确认 → 已确认 → 配送中 → 已完成;另有已取消。
- 商家账号存在待审核状态;反馈使用待处理、已处理。
# 默认账号
以下为主初始化 SQL 中能够核实的示例账号;需先导入对应脚本。这里不把脚本初始值视为当前运行数据库的实际账号或余额。
| 登录角色 | 角色标识 | 用户名 | 初始密码 |
|---|---|---|---|
| 管理员 | ADMIN | admin | 123456 |
| 商家 | MERCHANT | merchant | 123456 |
| 配送员 | DELIVERY | delivery | 123456 |
| 用户 | USER | user | 123456 |
# 核心业务流程
# 下单
- 选择商家菜品。
- 加入购物车。
- 选择收货地址。
- 创建待确认订单和明细。
- 扣减用户余额。
- 清理已结算购物车。
# 配送
- 商家确认订单。
- 商家或管理员分配配送员。
- 配送员开始配送。
- 配送员完成配送。
# 评价反馈
- 查看订单与菜品。
- 提交评价。
- 通过我的反馈提交问题。
- 管理员回复。
# 技术说明
# 系统架构
| 项目 | 当前源码配置 |
|---|---|
| Vue | ^3.4.29 |
| Element Plus | ^2.8.4 |
| Pinia | ^2.2.2 |
| Axios | ^1.7.5 |
| Vite | ^5.3.1 |
| Spring Boot | 3.2.10 |
| Java | 17 |
| MyBatis 集成组件 | 3.0.4 |
| 数据库 | MySQL;具体运行版本以实际部署为准 |
| 身份认证 | JWT;通过登录接口生成令牌 |
前端版本按 package.json 中的声明范围记录,不将依赖范围等同于已安装的精确版本。
# 访问地址
- 后端接口:http://localhost:1000 (opens new window),对应服务端端口配置。
- 前端开发页面:http://localhost:5173 (opens new window),项目未显式覆盖 Vite 默认端口,实际以启动日志为准。
- 登录入口:前端
/login;管理端基础路由/admin。
# 数据库
- 配置数据库名:
a_2026_8_online_ordering_system。 - 主初始化脚本:
sql/sql.sql。 - 主脚本建表数量:14 张,仅统计当前主脚本的 CREATE TABLE,不包含临时 SQL、迁移脚本或运行时改动。
- 字符集:主脚本采用 utf8mb4。
- 数据表清单:
address、admin、banner、cart、category、delivery、dish、feedback、merchant、notice、order_item、orders、review、user。
# 文件上传
- 上传接口:
POST /file/upload。 - 文件访问:
GET /file/{fileName}。 - 配置限制:单文件 100MB,单次请求 1000MB。
- 使用范围:根据业务页面上传图片或附件;具体允许类型以对应上传组件配置为准。
# 系统特色
# 配送角色独立
配送员拥有订单入口,后端限制其只能操作分配给自己的订单及指定状态。
# 商家确认与配送分配
订单确认后可分配配送员,明确餐厅处理与配送执行的职责。
# 结算信息完整
订单保存联系人、电话、地址、商品金额、配送费和实付金额,并关联菜品明细。
# 当前实现说明
- 未发现优惠券、促销活动的独立表、菜单与业务服务,不保留原文满减、折扣券、核销等说明。
- 配送员不能新增或删除订单,状态操作限于已确认到配送中、配送中到已完成。
- 当前下单由前端连续调用订单、明细、扣款和购物车接口完成,不能据此宣称整条交易链路已具备统一事务保障或自动退款。
本次按本地源码进行静态核对,未启动前后端或连接数据库执行端到端验证;上述说明反映当前代码与页面定义。