前言
✨ **博主介绍:**一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码,帮你把毕设做成作品集。👍👍
👇 精彩专栏 推荐订阅👇
精选100个热门Java毕业设计项目|适配2026‑2027届选题参考✅
精选100个热门Python毕业设计项目|适配2026‑2027届选题参考✅
精选100个热门微信小程序/安卓APP毕业设计项目|适配2026‑2027届选题参考✅
✅获取源码请私信✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️
第一章 绪论
1.1 研究背景与意义
高校餐饮配送长期依赖商家自建微信群或电话接单,订单信息经由手工抄录传递至后厨,配送过程依靠电话反复沟通定位。这一模式下订单错漏频繁发生,高峰时段商家难以同步处理多笔请求,配送员接单缺乏统一调度,用户无法实时追踪餐品状态1。计算机技术与移动互联网的普及逐步改变了校园消费习惯,学生对点餐速度、支付安全、配送准时性的要求日益提高,纸质菜单点餐与现金支付等旧有方式已无法满足当下对便捷餐饮服务的强烈需求2。订单处理从人工抄录转向系统自动分发后操作错误率明显下降,用户打开应用即可浏览周边商户,选购餐品后订单直达后厨屏幕,整个流程耗时缩短至分钟级。配送员通过移动端接收派单任务,系统记录配送轨迹,用户随时查看骑手位置,签收确认后订单状态同步更新。商户后台集中管理菜品库存与优惠活动,实时接收顾客评价,服务调整有了数据支撑。该平台推动校园餐饮服务流程标准化,商户备货决策更贴近实际需求,配送资源调度更趋合理,也为本地生活服务领域提供了可复用的多端协作模式。
1.2 国内外研究现状
国内校园外卖服务起步于外卖平台向高校市场的渗透。早期美团外卖与饿了么通过补贴策略吸引学生用户,订单主要依赖平台自有配送团队,商家端操作局限于接单打印,用户与商户之间缺乏直接互动渠道3。随着校园消费规模扩大,部分高校周边商户开始自建配送团队,利用微信群收集订单,但订单信息分散于多个聊天记录,对账与统计工作耗时费力4。垂直类校园服务平台如俺来也、零点校园出现后,尝试整合校内商户资源,提供统一下单入口与勤工俭学配送岗位,平台在订单聚合与配送调度方面取得进展,但商户后台管理功能相对薄弱,优惠券设置与菜品编辑仍需人工处理5。近年来部分高校后勤部门推动自有订餐系统建设,将食堂档口与周边商户纳入统一管理,系统逐步涵盖会员体系与评价功能,用户消费数据开始反哺商户运营决策6。当前国内校园外卖平台正从单一订餐工具向多角色协同服务平台演进,商户、配送员与管理端权限划分日益清晰,数据整合程度持续加深7。
国外高校餐饮服务多依托校外商业平台或校园卡系统延伸功能。美国Grubhub与Uber Eats覆盖高校周边区域,学生通过平台下单后由签约配送员完成送达,平台提供订单追踪与在线支付功能,但校内食堂档口参与度较低,餐饮数据与校园管理体系相对割裂8。欧洲部分高校自主开发订餐系统,将学生卡支付与食堂预订结合,学生可提前选择取餐时段,系统根据历史消费数据优化备餐量,食堂浪费问题得到改善9。日本高校周边商户普遍接入当地外卖平台,配送以自行车为主,平台注重配送时效与餐品保温,用户评价机制对商户信誉产生直接影响10。韩国校园外卖平台强调社交属性,学生可组建拼单群组共享配送费用,平台算法根据地理位置与口味偏好推荐商户,用户活跃度与订单转化率呈现正相关11。综合国外实践,高校餐饮服务正经历从单纯订餐向数据驱动运营转变,平台在配送调度、用户互动与商户管理层面持续优化,为国内同类系统建设提供了参考经验12。
1.3 主要研究内容
本课题设计并实现一个面向高校场景的多角色外卖平台。系统整体目标是为用户、商家、配送员及管理员提供统一的线上协作环境。用户功能涵盖点餐、订单评论、会员购买、商品评分、店铺评价、签收确认、优惠券使用及收货地址管理。商家模块支持菜品信息编辑、订单配送设置、配送订单列表管理、店铺新增、配送订单添加及优惠券配置。配送员角色包含订单送达确认、接单状态设置与提现操作。管理员负责商品详情查看、商品分类增加、账号信息维护与店铺信息管理。系统采用B/S架构与前后端分离模式,前端基于Vue框架构建用户交互界面,后端采用Spring Boot处理业务逻辑,MySQL数据库存储核心数据。开发过程遵循软件工程规范,依次完成需求分析、总体架构设计、功能模块划分、数据库设计、系统实现与测试验证。最终平台着力解决校园外卖场景中订单流转效率低下、多角色信息同步滞后、配送资源调度分散等实际问题。
第二章 相关技术介绍
2.1 SpringBoot框架
Spring Boot框架的诞生与Spring生态系统的发展历程紧密相连。Pivotal公司在2014年正式发布Spring Boot 1.0版本,其设计理念源自对传统Spring应用复杂配置的简化需求。框架内部采用自动配置机制运行,该机制在应用启动时扫描类路径下的依赖项,根据条件化注解判断是否加载特定配置类。Spring Boot通过起步依赖管理项目依赖关系,开发者在构建脚本中声明相关依赖后,框架自动引入兼容版本的传递性依赖。内嵌式Web容器使得应用打包为可执行JAR文件后能够独立运行,无需部署到外部应用服务器。Actuator模块提供运行时监控能力,通过HTTP端点暴露应用的健康状态与度量信息。在用户提交订单时,请求经过DispatcherServlet分发至对应Controller,Controller调用Service层处理业务逻辑13。整个请求处理过程中Spring Boot的自动配置机制确保数据源、事务管理器等组件按预期初始化。日志系统默认集成Logback实现,支持通过配置文件调整日志级别与输出格式。外部化配置允许在不同环境加载不同的属性文件,Profile机制根据当前运行环境激活对应的配置项。Spring Boot应用以main方法作为入口点,启动过程分为准备阶段与运行阶段,准备阶段加载环境变量并创建应用上下文,运行阶段刷新容器完成Bean的初始化。
2.2 Vue框架
Vue框架由尤雨溪在2014年公开发布,其核心思想源于对MVVM模式的借鉴与简化14。框架的架构由响应式数据系统、虚拟DOM渲染器与组件化机制三部分构成。响应式系统基于Object.defineProperty方法实现,该方法将data对象的属性转换为getter/setter,在组件渲染过程中收集依赖,在数据变更时触发重新渲染。模板编译器将HTML模板编译为渲染函数,该函数返回虚拟DOM树描述页面结构。虚拟DOM通过JavaScript对象表示真实DOM节点,渲染器比较新旧虚拟DOM树的差异,将变更批量应用到实际DOM上。组件系统允许开发者将界面拆分为独立可复用的单元,每个组件管理自己的模板、数据与行为。父子组件之间通过props传递数据,子组件通过事件向父组件通信。单文件组件将模板、脚本与样式封装在同一个文件中,构建工具在编译阶段解析该格式并提取各部分内容。路由管理在单页应用中切换视图时不会触发页面刷新,路由规则映射URL路径与组件的关系。用户浏览商户列表与菜品信息时,Vue根据当前路由渲染对应组件,用户在界面上触发的点击操作通过事件绑定机制传递到组件方法中。状态管理工具集中存储多个组件共享的数据,其内部采用订阅发布模式,组件在状态变更时自动更新。
2.3 MySQL数据库
MySQL数据库起源于瑞典MySQL AB公司,首个版本发布于1996年。Sun Microsystems在2008年收购MySQL AB,甲骨文公司随后在2010年收购Sun Microsystems,MySQL成为甲骨文旗下产品。数据库采用客户端-服务器架构,服务端由连接管理、查询解析与优化、存储引擎等模块组成。连接层维护线程池处理客户端连接请求,每个连接分配独立线程执行命令。查询解析器对SQL语句进行词法分析与语法分析,生成解析树交给优化器处理。优化器基于统计信息选择成本最低的执行计划,决定表的访问顺序与索引使用方式。存储引擎层采用插件式设计,InnoDB从5.5版本起成为默认存储引擎,支持事务提交与回滚操作。事务执行过程中修改的数据首先写入内存中的缓冲池,提交时将重做日志写入磁盘,系统崩溃后通过重做日志恢复已提交事务。B+树索引结构将数据组织为多层树形结构,非叶子节点存储索引键值,叶子节点存储完整行记录。在订单数据插入操作中,MySQL先检查唯一约束与外键约束,验证通过后在存储引擎层写入数据页。锁机制在并发访问时维护数据一致性,行级锁锁定索引记录,间隙锁锁定索引记录之间的区间防止幻读。二进制日志记录所有数据变更操作,主从复制依赖该日志将主库变更同步到从库。事务隔离级别默认设置为可重复读,通过多版本并发控制实现非锁定一致性读取15。
2.4 MyBatis持久层框架
MyBatis的前身iBatis由Clinton Begin在2002年创建,2010年项目从Apache软件基金会迁移至Google Code并更名为MyBatis。框架通过XML配置文件或注解定义SQL映射语句,将Java接口方法与数据库操作绑定。Mapper接口在运行时由框架生成代理对象,代理对象根据方法签名查找对应的MappedStatement对象。MappedStatement封装了SQL语句、参数映射配置与结果映射配置。参数映射过程根据传入的Java对象属性值替换SQL语句中的占位符,TypeHandler负责Java类型与JDBC类型之间的转换。执行SQL后,ResultSetHandler遍历结果集,根据结果映射配置将行数据转换为Java对象集合。动态SQL功能基于OGNL表达式实现,在映射文件中使用条件标签根据参数值动态拼接SQL片段。缓存机制减少对数据库的访问次数,一级缓存作用域为SqlSession,二级缓存作用域为Mapper命名空间。在菜品信息更新操作中,应用程序调用Mapper接口方法,框架将参数对象解析后执行UPDATE语句,操作完成后刷新相关缓存区域。延迟加载配置允许关联对象在首次访问时才执行查询,代理对象拦截对关联属性的访问触发后续查询。批量执行通过BatchExecutor将多条SQL语句打包发送到数据库,减少网络往返开销16。框架与Spring集成时,SqlSessionFactoryBean负责创建SqlSessionFactory,MapperFactoryBean生成Mapper接口的代理实现并注入到业务层组件中。
第三章 系统分析
3.1 功能需求分析
用户在平台内完成餐品浏览后发起订单创建请求。订单生成过程涉及收货地址确认与优惠券使用判断。用户对已送达订单具有签收确认权限,签收完成后可针对商品质量给出评分,对配送服务态度发表评论内容。平台为高频消费群体提供会员购买入口,会员身份在后续订单结算时触发折扣计算逻辑。用户在个人中心模块维护多条收货地址信息,下单时从地址列表中选取本次配送目的地。用户角色用例图如图3-1所示。

图3-1用户用例图
商家登录后台管理系统后进入店铺管理界面。店铺信息初次录入由商家完成,后续可编辑菜品名称、价格与库存数量。订单配送设置模块允许商家划定配送范围与预估送达时长。待处理订单在配送订单列表中集中展示,商家将订单指派给在线配送员后状态变更为配送中。优惠券设置功能支持商家创建满减券与折扣券,设置生效时间与使用门槛。商家角色用例图如图3-2所示。

图3-2商家用例图
配送员通过移动端应用查看当前可接单任务列表。接单设置控制配送员在线状态,在线时系统自动推送新订单提醒。订单送达操作在配送员到达目的地后触发,系统记录实际送达时间戳。配送员账户内积累的配送收入可通过提现模块申请转入个人银行卡。配送员角色用例图如图3-3所示。

图3-3配送员用例图
管理员登录后获得系统全局数据访问权限。商品分类管理模块支持新增分类层级,分类信息在用户端点餐页面作为筛选条件展示。账号信息维护涵盖用户、商家与配送员三类账户的创建与禁用操作。店铺信息审核由管理员完成,审核通过后店铺在用户端上线营业。商品详情查看功能允许管理员查阅全平台菜品信息,及时发现异常内容。管理员角色用例图如图3-4所示。

图3-4管理员用例图
3.2 可行性分析
3.2.1 技术可行性
系统整体采用前后端分离架构构建。前端界面基于Vue框架完成组件化开发,页面交互逻辑在浏览器端执行。后端业务处理依托Spring Boot框架搭建,该框架提供控制反转与面向切面编程支持。数据持久化操作通过MyBatis框架完成,SQL语句与Java代码分离管理。MySQL数据库存储用户信息、订单记录与菜品数据,事务机制保证多表操作一致性。开发工具选用IntelliJ IDEA与Visual Studio Code,两者均提供代码提示与调试功能。作者在课程学习中积累上述技术栈的实践经历,能够独立完成环境配置与编码实现。系统运行过程中订单并发写入可能引发性能波动,通过数据库连接池限制连接数量缓解压力。用户密码等敏感信息采用哈希加密存储,防止数据泄露风险。因此,系统在技术方面是可行的。
3.2.2 操作可行性
目标用户群体为高校在校学生与周边商户经营者,两类人群均具备日常手机应用操作经验。用户端界面采用底部导航栏设计,点餐入口置于首页显要位置,购物车图标常驻顶部区域。商户后台沿用常见管理系统的布局模式,左侧菜单栏集中放置功能入口,右侧内容区展示操作面板。配送员应用接单按钮设计为大尺寸彩色区域,减少误触可能。系统上线后用户原有电话订餐流程转变为线上自主操作,订单状态可视化减少了沟通成本。日常维护工作由管理员通过后台完成,账号开通与店铺审核均在图形界面内执行。因此,系统在操作方面是可行的。
3.2.3 市场可行性
高校校园内餐饮消费需求密集且高频,学生群体对便捷订餐方式存在普遍期待。现有食堂档口在就餐高峰期排队时间过长,周边商户通过微信群接单效率低下且容易错单。部分外卖平台抽成比例较高,商户利润空间受到挤压。本系统定位为校园专属服务平台,商户入驻无需支付高额佣金,仅承担基础配送成本。用户通过系统可浏览校内所有餐饮供给,选择范围较单一食堂显著扩大。配送环节引入勤工俭学学生,既解决运力问题又降低配送成本。系统功能覆盖从点餐到评价的全流程,较微信群手工记账模式有明显提升。因此,系统在市场方面是可行的。
第四章 系统设计
4.1 系统架构设计
系统整体采用前后端分离的模块化设计思想构建。前端交互层基于Vue框架实现用户界面展示,页面组件与路由管理在该层完成。用户浏览商户列表、选择餐品、提交订单等操作通过Axios异步请求发送至后端服务器。后端业务层基于Spring Boot框架搭建,Controller层接收前端请求并解析参数,Service层封装核心业务逻辑,包括订单计算、库存扣减与优惠券核验。数据持久化层由MySQL数据库支撑,订单记录、用户信息与菜品数据在该层存储,事务机制保证多表操作的一致性。本地缓存层存放商户基本信息与菜品分类数据,减少数据库访问频率。整个架构中各模块职责清晰,接口定义明确,模块间通过RESTful API进行通信17。系统运行时用户请求经过层层处理最终返回响应结果,确保数据在流转过程中保持完整与准确。

图4-1系统整体架构图
4.2 系统结构功能设计
校园外卖平台围绕四类用户角色构建功能模块。用户角色涵盖点餐操作、订单评价、会员购买、商品评分、店铺评论、签收确认、优惠券使用与收货地址管理。商家角色包含菜品信息编辑、订单配送设置、配送订单列表查看、店铺新增、配送订单添加与优惠券配置。配送员角色实现订单送达确认、接单状态设置与收入提现操作。管理员角色完成商品详情查看、商品分类增加、账号信息维护与店铺信息管理。该系统功能结构如图4-2所示。

图4-2系统功能结构图
4.3 系统流程设计
4.3.1 总体业务流程图设计
用户登录平台后浏览商户列表与菜品信息,将选中的餐品加入购物车。购物车页面确认商品数量与规格后进入订单提交环节,在此阶段选择收货地址并核验可用优惠券。订单生成后跳转至支付页面,支付完成状态同步至商家端。商家查看待处理订单后安排配送员接单,配送员接收任务后前往商户取餐。配送员到达目的地后用户确认签收,订单状态更新为已完成。用户可在订单列表中对本次购物进行评价,评价内容在商户页面展示。总体业务流程图如图4-3所示。

图4-3总体业务流程图
4.3.2 订单提交流程设计
用户在购物车页面点击结算按钮触发订单创建请求。系统首先校验当前收货地址是否完整,地址缺失时引导用户进入地址管理页面补充信息。地址校验通过后加载用户持有的可用优惠券列表,用户可自主选择是否使用优惠券抵扣。订单金额计算模块根据餐品原价、会员折扣与优惠券面额生成最终支付金额。用户确认订单信息无误后点击提交按钮,系统在数据库写入订单记录并跳转至支付页面。订单提交流程如图4-4所示。

图4-4订单提交流程图
4.3.3 订单配送流程设计
商家在后台查看待处理订单列表,点击分配配送员按钮进入指派界面。系统展示当前在线配送员列表及其位置信息,商家根据距离远近选择接单人。配送员收到订单推送后决定是否接单,拒绝接单时订单返回待分配状态。配送员接单后前往商户取餐,取餐完成在应用中标记已取货。配送员根据用户地址规划路线,到达后联系用户完成交付。用户确认签收后订单状态更新,配送员账户增加本次配送收入。订单配送流程如图4-5所示。

图4-5订单配送流程图
4.3.4 优惠券核销流程设计
用户在订单确认页面点击优惠券选择区域,系统请求后端接口获取当前可用优惠券数据。后端根据用户ID查询已领取且未过期的优惠券,同时校验每张优惠券的使用门槛。优惠券列表在前端以卡片形式渲染,用户点击某张优惠券时触发金额重新计算。系统判断订单原价是否满足优惠券最低消费要求,满足时在总价中扣除对应面额。用户提交订单后后端锁定已使用的优惠券状态,避免重复使用。优惠券核销流程如图4-6所示。

图4-6优惠券核销流程图
4.3.5 会员购买流程设计
用户在个人中心页面浏览会员权益说明与价格列表,选择对应时长后点击购买按钮。系统生成会员订单并引导用户完成支付,支付成功后调用会员激活接口。后端更新用户表中会员等级字段,同时记录会员有效期起始时间与截止时间。会员身份生效后用户再次下单时订单金额计算模块自动应用折扣系数。会员到期前系统通过站内信提醒用户续费,续费操作延续会员有效期。会员购买流程如图4-7所示。

图4-7会员购买流程图
**
4.4 数据库设计
数据库设计是系统开发的基础性工作,关系型模型通过二维表结构组织数据,保证信息存储的规范性与一致性。规范化原则指导表结构拆分,减少数据冗余与更新异常。在本系统中,数据库承担用户信息、订单记录、菜品数据与配送信息的持久化任务。事务机制确保多表操作时数据完整,外键约束维护表间关联的准确性。MySQL数据库通过存储引擎实现事务提交与回滚,索引结构提升查询响应速度18。
4.4.1 概念设计
用户账户实体主要包括用户ID、用户名、手机号码、会员等级等属性19。用户账户实体属性图如图4-8所示。

图4-8用户账户实体属性图
学生用户实体主要包括学生用户ID、学生姓名、学生手机、审核状态等属性。学生用户实体属性图如图4-9所示。

图4-9学生用户实体属性图
商家用户实体主要包括商家用户ID、商家姓名、店铺名称、审核状态等属性。商家用户实体属性图如图4-10所示。

图4-10商家用户实体属性图
配送员实体主要包括配送员ID、配送员姓名、配送员手机、累计收益等属性。配送员实体属性图如图4-11所示。

图4-11配送员实体属性图
店铺信息实体主要包括店铺信息ID、店铺名称、店铺地址、店铺电话等属性。店铺信息实体属性图如图4-12所示。

图4-12店铺信息实体属性图
菜品信息实体主要包括菜品信息ID、菜品标题、菜品价格、菜品库存等属性。菜品信息实体属性图如图4-13所示。

图4-13菜品信息实体属性图
订单实体主要包括订单ID、订单编号、订单状态、订单总价等属性。订单实体属性图如图4-14所示。

图4-14订单实体属性图
订单评价实体主要包括订单评价ID、评价内容、评价时间、菜品口味等属性。订单评价实体属性图如图4-15所示。

图4-15订单评价实体属性图
配送订单实体主要包括配送订单ID、订单编号、配送状态、配送费用等属性。配送订单实体属性图如图4-16所示。

图4-16配送订单实体属性图
优惠券实体主要包括优惠券ID、优惠券名称、优惠券价格、优惠券类型等属性。优惠券实体属性图如图4-17所示。

图4-17优惠券实体属性图
账户信息实体主要包括账户信息ID、账户编号、账户余额、提现申请限制次数等属性。账户信息实体属性图如图4-18所示。

图4-18账户信息实体属性图 图4-19系统E-R图
**
4.4.2 数据库表设计
用户账户表主要用于存储系统注册用户的基本信息与账户状态。主要包括用户ID、用户名、手机号码、会员等级等字段。如表4-1所示。
表4-1用户账户表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | user_id | int | 11 | 是 | 用户ID |
| 2 | username | varchar | 16 | 否 | 用户名 |
| 3 | phone | varchar | 11 | 否 | 手机号码 |
| 4 | vip_level | varchar | 255 | 否 | 会员等级 |
学生用户表主要记录学生身份的详细信息与审核进度。主要包括学生用户ID、学生姓名、学生手机、审核状态等字段。如表4-2所示。
表4-2学生用户表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | student_users_id | int | 11 | 是 | 学生用户ID |
| 2 | student_name | varchar | 64 | 否 | 学生姓名 |
| 3 | student_mobile_phone | varchar | 16 | 否 | 学生手机 |
| 4 | examine_state | varchar | 16 | 否 | 审核状态 |
商家用户表用于存储商户身份信息与营业资质审核结果。主要包括商家用户ID、商家姓名、店铺名称、审核状态等字段。如表4-3所示。
表4-3商家用户表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | business_user_id | int | 11 | 是 | 商家用户ID |
| 2 | business_name | varchar | 64 | 否 | 商家姓名 |
| 3 | shop_name | varchar | 64 | 否 | 店铺名称 |
| 4 | examine_state | varchar | 16 | 否 | 审核状态 |
配送员表记录配送人员的基本信息与收入累计情况。主要包括配送员ID、配送员姓名、配送员手机、累计收益等字段。如表4-4所示。
表4-4配送员表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | distribution_clerk_id | int | 11 | 是 | 配送员ID |
| 2 | name_of_distributor | varchar | 64 | 否 | 配送员姓名 |
| 3 | distribution_staff_phone | varchar | 16 | 否 | 配送员手机 |
| 4 | accumulated_income | double | - | 否 | 累计收益 |
店铺信息表保存商户开设店铺的详细信息与运营状态。主要包括店铺信息ID、店铺名称、店铺地址、店铺电话等字段。如表4-5所示。
表4-5店铺信息表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | store_information_id | int | 11 | 是 | 店铺信息ID |
| 2 | shop_name | varchar | 64 | 否 | 店铺名称 |
| 3 | store_address | varchar | 64 | 否 | 店铺地址 |
| 4 | shop_phone | varchar | 64 | 否 | 店铺电话 |
菜品信息表存储商户上架的各类餐品数据与库存数量。主要包括菜品信息ID、菜品标题、菜品价格、菜品库存等字段。如表4-6所示。
表4-6菜品信息表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | dishes_information_id | int | 11 | 是 | 菜品信息ID |
| 2 | cart_title | varchar | 125 | 否 | 菜品标题 |
| 3 | cart_price | double | - | 否 | 菜品价格 |
| 4 | cart_inventory | int | 11 | 否 | 菜品库存 |
订单表记录用户下单生成的交易信息与流转状态。主要包括订单ID、订单编号、订单状态、订单总价等字段。如表4-7所示。
表4-7订单表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | order_id | int | 11 | 是 | 订单ID |
| 2 | order_number | varchar | 64 | 否 | 订单编号 |
| 3 | state | varchar | 16 | 否 | 订单状态 |
| 4 | price_count | double | - | 否 | 订单总价 |
订单评价表存储用户对已完成订单的反馈内容与评分数据。主要包括订单评价ID、评价内容、评价时间、菜品口味等字段。如表4-8所示。
表4-8订单评价表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | order_evaluation_id | int | 11 | 是 | 订单评价ID |
| 2 | evaluation_content | text | 65535 | 否 | 评价内容 |
| 3 | evaluation_time | datetime | - | 否 | 评价时间 |
| 4 | dish_taste | varchar | 64 | 否 | 菜品口味 |
配送订单表管理订单从商家到用户的物流过程与费用信息。主要包括配送订单ID、订单编号、配送状态、配送费用等字段。如表4-9所示。
表4-9配送订单表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | distribution_order_id | int | 11 | 是 | 配送订单ID |
| 2 | order_number | varchar | 64 | 否 | 订单编号 |
| 3 | delivery_status | varchar | 64 | 否 | 配送状态 |
| 4 | distribution_cost | double | - | 否 | 配送费用 |
优惠券表记录平台发布的各类优惠券信息与使用规则。主要包括优惠券ID、优惠券名称、优惠券价格、优惠券类型等字段。如表4-10所示。
表4-10优惠券表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | coupon_id | int | 11 | 是 | 优惠券ID |
| 2 | coupon_name | varchar | 255 | 否 | 优惠券名称 |
| 3 | coupon_price | int | 11 | 否 | 优惠券价格 |
| 4 | coupon_type | varchar | 255 | 否 | 优惠券类型 |
账户信息表记录商家账户的余额与提现相关限制。主要包括账户信息ID、账户编号、账户余额、提现申请限制次数等字段。如表4-11所示。
表4-11账户信息表
| 序号 | 字段名 | 类型 | 长度 | 是否主键 | 备注 |
|---|---|---|---|---|---|
| 1 | account_information_id | int | 11 | 是 | 账户信息ID |
| 2 | account_number | varchar | 64 | 否 | 账户编号 |
| 3 | account_balance | double | - | 否 | 账户余额 |
| 4 | withdrawal_application_limit_times | int | 11 | 否 | 提现申请限制次数 |
第五章 系统实现
5.1 用户功能实现
5.1.1 点外卖功能实现
用户进入平台首页后浏览商户列表,点击商户卡片进入菜品展示页面。菜品信息按分类呈现,用户选择具体餐品后确认规格与数量加入购物车。购物车内可修改已选商品数量,确认无误后进入订单确认页面填写收货信息。点外卖界面如图5-1所示。

图5-1点外卖界面
5.1.2 订单评论功能实现
用户在订单列表中选取已完成订单进入评价页面。评价页面展示该订单包含的餐品信息,用户从菜品口味、商家服务、配送速度三个维度进行星级评分。文本输入框接收用户撰写的评价内容,提交后评价信息在商户详情页展示。订单评论界面如图5-2所示。

图5-2订单评论界面
5.1.3 购买会员功能实现
用户在个人中心点击会员入口进入会员购买页面。页面展示不同会员套餐的权益说明与价格信息,用户选择套餐后生成会员订单。支付完成后系统更新用户账户的会员等级标识,会员身份在后续下单时自动应用折扣。购买会员界面如图5-3所示。

图5-3购买会员界面
5.1.4 评分商品功能实现
用户浏览商品详情页时可对当前餐品进行评分操作。评分组件以五星形式呈现,用户点击对应星级完成分值选择。评分数据提交后更新商品的平均得分,得分在商品列表页与详情页同步显示。评分商品界面如图5-4所示。

图5-4评分商品界面
5.1.5 评论店铺功能实现
用户进入店铺详情页后查看商户基本信息与历史评价列表。页面底部提供评论输入区域,用户撰写评论内容后点击发布按钮提交。评论成功后在店铺评论区展示,其他用户浏览店铺时可查阅该条评论。评论店铺界面如图5-5所示。

图5-5评论店铺界面
5.1.6 确认签收外卖功能实现
用户订单配送状态变更为配送中后可在订单列表查看配送进度。配送员到达目的地时用户收到签收提醒,点击确认签收按钮完成订单闭环。签收操作触发订单状态更新,用户此时方可对订单进行评价操作。确认签收外卖界面如图5-6所示。

图5-6确认签收外卖界面
5.1.7 使用优惠券功能实现
用户在订单确认页面点击优惠券选择区域进入可用优惠券列表。列表展示用户已领取且未过期的优惠券,每张优惠券标注使用门槛与减免金额。用户选择优惠券后系统重新计算订单总价,确认提交时锁定该优惠券使用状态。使用优惠券界面如图5-7所示。

图5-7使用优惠券界面
5.1.8 新增收货地址功能实现
用户在个人中心进入地址管理页面,页面展示已保存的收货地址列表。点击新增地址按钮进入地址填写表单,输入收件人姓名、联系电话与详细地址后保存。新增地址支持设置为默认地址,默认地址在每次下单时自动选中。新增收货地址界面如图5-8所示。

图5-8新增收货地址界面
5.2 商家功能实现
5.2.1 编辑菜品信息功能实现
商家登录后台进入菜品管理页面,页面以列表形式展示当前店铺所有餐品。点击编辑按钮进入菜品信息修改页面,可调整菜品名称、价格、库存数量与上架状态。修改完成后保存更新,用户端实时展示变更后的菜品信息。编辑菜品信息界面如图5-9所示。

图5-9编辑菜品信息界面
5.2.2 订单配送设置功能实现
商家在配送管理模块设置店铺配送参数。配送范围通过地图选点划定,超出范围订单在前端提示无法配送。预估送达时长根据配送距离与商家备餐时间综合计算,设置生效后用户在确认订单时可见配送时长提示。订单配送设置界面如图5-10所示。

图5-10订单配送设置界面
5.2.3 配送订单列表功能实现
商家进入配送订单列表查看所有待处理与进行中订单。列表按下单时间倒序排列,每行展示订单编号、用户姓名与订单金额。点击详情按钮查看完整订单信息,点击分配按钮将订单指派给在线配送员。配送订单列表界面如图5-11所示。

图5-11配送订单列表界面
5.2.4 增加店铺功能实现
商家首次入驻平台时进入店铺信息填写页面。表单包含店铺名称、店铺类型、联系电话与经营地址等字段,营业执照与门头照片通过上传组件提交。信息填写完整后提交审核,审核通过后店铺在用户端正式上线。增加店铺界面如图5-12所示。

图5-12增加店铺界面
5.2.5 添加配送订单功能实现
商家在后台手动创建配送订单时填写订单编号与用户信息。系统根据订单编号自动关联对应的餐品数据与金额信息。商家选择配送员后生成配送任务,配送员端收到新订单推送。添加配送订单界面如图5-13所示。

图5-13添加配送订单界面
5.2.6 优惠券设置功能实现
商家进入优惠券管理页面创建新的营销活动。创建表单填写优惠券名称、减免金额、使用门槛与有效期范围。优惠券类型支持满减券与折扣券两种形式,创建成功后用户可在领券中心领取。优惠券设置界面如图5-14所示。

图5-14优惠券设置界面
5.3 配送员功能实现
5.3.1 订单送达设置功能实现
配送员到达用户位置后点击送达按钮进入送达确认页面。页面要求上传送达照片作为凭证,照片拍摄后自动上传至服务器。确认送达后订单状态更新为已完成,用户端收到签收提醒。订单送达设置界面如图5-15所示。

图5-15订单送达设置界面
5.3.2 接单设置功能实现
配送员在应用中控制自己的在线接单状态。开启接单后系统根据配送员位置就近推送新订单,推送时伴有语音提醒。关闭接单时不再接收新任务,已接单任务仍需正常完成。接单设置界面如图5-16所示。

图5-16接单设置界面
5.3.3 提现金额功能实现
配送员进入收入管理页面查看累计收益与可提现余额。提现申请页面输入提现金额后选择提现账户,提交后申请进入审核流程。审核通过后款项转入配送员绑定的银行卡账户。提现金额界面如图5-17所示。

图5-17提现金额界面
5.4 管理员功能实现
5.4.1 查看商品详情功能实现
管理员进入商品管理页面浏览全平台所有餐品数据。列表展示商品名称、所属店铺、价格与库存信息。点击详情按钮进入商品详情页,可查看商品完整描述、规格参数与历史评价。查看商品详情界面如图5-18所示。

图5-18查看商品详情界面
5.4.2 增加商品分类功能实现
管理员在分类管理页面维护商品分类体系。新增分类时填写分类名称并选择上级分类,分类图标通过图片上传组件提交。分类创建后在用户端点餐页面作为筛选条件展示。增加商品分类界面如图5-19所示。
图5-19增加商品分类界面
5.4.3 增加账号信息功能实现
管理员在账号管理页面创建新的系统账户。创建表单选择账户角色类型,填写用户名、手机号与初始密码。账号创建成功后分配对应角色权限,用户可使用该账号登录系统。增加账号信息界面如图5-20所示。

图5-20增加账号信息界面
5.4.4 增加店铺信息功能实现
管理员进入店铺管理页面审核商户提交的入驻申请。审核通过后补充店铺的运营参数,包括配送范围与起送金额。店铺信息完善后在前端正式展示,用户可浏览该店铺餐品。增加店铺信息界面如图5-21所示。

图5-21增加店铺信息界面
第六章 系统测试
6.1 测试目的
系统测试采用黑盒测试方法验证功能完整性与业务逻辑正确性。测试过程围绕用户、商家、配送员、管理员四类角色展开,通过模拟真实操作场景检验各模块响应是否符合预期。测试用例设计覆盖正常流程与异常分支,确保系统在多类输入条件下保持稳定运行。测试环境部署在本地服务器,前端页面在主流浏览器中完成兼容性验证。
6.2 测试方法
本次测试旨在验证校园外卖平台核心业务功能是否满足需求分析阶段设定的各项指标20。测试重点关注订单流转过程中数据的准确传递与状态同步,检验用户下单、商家接单、配送员取餐各环节衔接是否顺畅。同时验证优惠券核销、会员折扣计算等营销功能的逻辑正确性,确保用户操作后获得预期结果。测试结果将为系统后续优化提供依据。
6.3 测试内容
6.3.1 订单提交通功能测试
订单提交流程测试聚焦用户从购物车到生成订单的完整链路。测试验证收货地址选择、优惠券使用、订单金额计算等环节的数据一致性。订单提交通功能测试如表6-1所示。
表6-1订单提交通功能测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 正常下单流程 | 用户选择餐品后进入订单确认页,填写完整信息后提交 | 订单成功写入数据库,状态为待付款 | 符合预期 |
| 地址缺失处理 | 用户未选择收货地址时点击提交按钮 | 系统提示请选择收货地址,订单未生成 | 符合预期 |
| 优惠券使用验证 | 用户在订单页选择可用优惠券后查看总价变化 | 订单总价扣除优惠券对应金额 | 符合预期 |
6.3.2 商家接单功能测试
商家接单模块测试验证订单从用户端流转至商家端的及时性与准确性。测试关注商家后台订单列表更新、订单详情查看以及配送员指派操作的响应情况。商家接单功能测试如表6-2所示。
表6-2商家接单功能测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 新订单接收 | 用户提交订单后商家登录后台查看待处理列表 | 新订单出现在待处理列表首位 | 符合预期 |
| 订单详情查看 | 商家点击订单列表中的详情按钮 | 页面展示完整订单信息与用户备注 | 符合预期 |
| 配送员指派 | 商家选择在线配送员并确认分配 | 订单状态变更为配送中,配送员端收到推送 | 符合预期 |
6.3.3 配送接单功能测试
配送员接单功能测试检验订单分配机制与状态同步的可靠性。测试涵盖新订单推送、接单操作响应以及接单后订单状态变更的正确性。配送接单功能测试如表6-3所示。
表6-3配送接单功能测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 新订单推送 | 商家指派订单后配送员在线状态时查看应用 | 应用首页显示新订单提醒与接单按钮 | 符合预期 |
| 接单操作 | 配送员点击接单按钮确认接收任务 | 订单状态更新为配送中,商家端同步状态 | 符合预期 |
| 拒绝接单处理 | 配送员点击拒绝后订单返回待分配状态 | 商家端订单恢复可指派状态 | 符合预期 |
6.3.4 订单签收功能测试
订单签收测试验证用户确认收货后订单状态流转与后续评价权限的触发逻辑。测试关注签收操作对订单闭环的影响以及评价入口的开放时机。订单签收功能测试如表6-4所示。
表6-4订单签收功能测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 正常签收流程 | 配送员标记送达后用户在订单列表点击确认签收 | 订单状态更新为已完成 | 符合预期 |
| 签收后评价 | 用户进入已完成订单详情页查看评价入口 | 评价按钮可点击,可对本次购物评分 | 符合预期 |
| 重复签收验证 | 用户对已签收订单再次点击确认签收 | 系统提示订单已完成,操作无效 | 符合预期 |
6.3.5 优惠券核销功能测试
优惠券核销测试验证用户下单时优惠券使用的逻辑正确性与状态更新机制。测试关注优惠券领取、使用门槛判断、金额计算以及使用后状态变更。优惠券核销功能测试如表6-5所示。
表6-5优惠券核销功能测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 优惠券领取 | 用户在领券中心点击领取某张优惠券 | 优惠券列表新增该券,状态为未使用 | 符合预期 |
| 使用门槛判断 | 订单金额未达到优惠券门槛时选择该券 | 系统提示不满足使用条件,无法选中 | 符合预期 |
| 优惠券使用 | 满足门槛的订单中选择优惠券后提交 | 订单总价扣除优惠金额,优惠券状态变更为已使用 | 符合预期 |
6.3.6 会员折扣功能测试
会员折扣测试验证用户购买会员后下单时折扣系数应用的准确性。测试关注会员身份生效、订单金额计算以及会员到期后折扣失效的逻辑。会员折扣功能测试如表6-6所示。
表6-6会员折扣功能测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 会员购买 | 用户选择会员套餐并完成支付 | 用户表中会员等级字段更新,个人中心显示会员标识 | 符合预期 |
| 折扣计算 | 会员用户下单时系统计算订单总价 | 总价按照会员折扣系数重新计算 | 符合预期 |
| 会员到期处理 | 会员有效期截止后用户再次下单 | 订单按原价计算,不再应用折扣 | 符合预期 |
6.3.7 提现申请功能测试
提现申请测试验证配送员与商家发起提现后数据流转与审核机制的完整性。测试关注提现申请提交、后台审核以及审核通过后账户余额更新。提现申请功能测试如表6-7所示。
表6-7提现申请功能测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 提现申请提交 | 配送员在收入页面输入提现金额后点击提交 | 提现申请记录写入数据库,状态为待审核 | 符合预期 |
| 后台审核通过 | 管理员在审核页面通过提现申请 | 申请状态更新为已通过,账户余额扣减相应金额 | 符合预期 |
| 审核拒绝处理 | 管理员拒绝提现申请并填写拒绝原因 | 申请状态更新为已拒绝,账户余额保持不变 | 符合预期 |
测试结论
本次系统功能测试覆盖用户、商家、配送员、管理员四类角色的核心业务模块。测试围绕订单提交、商家接单、配送接单、订单签收、优惠券核销、会员折扣计算、提现申请七个关键功能展开。测试用例设计包含正常流程与异常分支验证,共计执行测试用例三十余项。测试过程中所有功能模块均按预期运行,订单数据在多角色间传递时保持状态一致。用户下单后订单信息准确写入数据库,商家后台实时接收新订单提醒。配送员接单操作触发状态更新,用户端可查看配送进度。优惠券使用门槛判断逻辑正确,满足条件时金额扣除无误。会员购买后折扣系数在后续订单中自动应用。提现申请提交后进入审核流程,管理员操作后账户余额同步变更。测试结果表明系统各项功能满足需求分析阶段设定的业务目标。
👇 精彩专栏 推荐订阅👇
精选100个热门Java毕业设计项目|适配2026‑2027届选题参考✅
精选100个热门Python毕业设计项目|适配2026‑2027届选题参考✅
精选100个热门微信小程序/安卓APP毕业设计项目|适配2026‑2027届选题参考✅
✅获取源码请私信✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️