基于Springboot的校园外卖系统的设计与实现

摘要

随着外卖市场竞争的加剧,校园外卖系统可以帮助外卖商家在校园内拓展市场,提供更快捷、更便利的外卖服务,提高竞争力。互联网技术的发展使得在线订餐更加便利,校园外卖系统可以利用互联网技术,实现在线下单、支付、配送等功能,提升整个外卖服务流程的效率。随着人们对健康饮食的关注度增加,校园外卖系统可以为学生提供更多健康、多样化的外卖选择,满足不同学生的饮食需求。人们对便利性的需求不断提升,校园外卖系统可以为校园内的学生和教职工提供便捷的外卖点餐服务,节省他们的时间和精力。
校园外卖系统开发语言选择Java,后端技术框架选择Springboot。数据库选择MySQL。本系统主要分为前台和后台,前台主要实现用户的注册登录,菜品的浏览,菜品的预定,订单信息和公告的查看,个人信息修改等功能;后台主要实现管理员的登录、总览、菜品、公告、评价、订单的管理。

关键词:校园外卖系统;Java;Springboot;MySQL

Abstract

With the intensification of competition in the food delivery market, campus food delivery systems can help food delivery businesses expand their market on campus, provide faster and more convenient food delivery services, and improve their competitiveness. The development of Internet technology makes online ordering more convenient. The campus takeout system can use Internet technology to realize online ordering, payment, distribution and other functions, and improve the efficiency of the entire takeout service process. As people’s attention to healthy eating increases, campus food delivery systems can provide students with more healthy and diverse food options to meet the dietary needs of different students. People’s demand for convenience is constantly increasing, and campus food delivery systems can provide convenient food ordering services for students and faculty on campus, saving them time and energy.
The development language for the campus food delivery system is Java, and the backend technology framework is SpringBoot. Select MySQL for the database. The system is mainly divided into the front desk and the back office, the front desk mainly realizes the user’s registration and login, the browsing of dishes, the reservation of dishes, the view of order information and announcements, the modification of personal information and other functions; the background mainly realizes the login of the administrator, overview, dishes, announcements, evaluations, order management.

Keywords: Campus food delivery system; Java; Springboot; MySQL
目录
摘要 I
Abstract II
第1章 绪论 1
1.1 课题开发的背景和现状 1
1.2 课题开发的意义 1
第2章 相关技术介绍 2
2.1 Java语言 2
2.2 SpringBoot框架 2
2.3 HTML技术 2
2.4 Navicat开发工具 3
2.5 MySQL数据库 3
第3章 需求分析 4
3.1 可行性分析 4
3.1.1 技术可行性 4
3.1.2 经济可行性 4
3.1.3 操作可行性 4
3.2 系统业务功能需求分析 4
3.2.1 普通用户功能需求分析 4
3.2.2 管理员功能需求分析 5
第4章 总体设计 6
4.1 系统总体结构设计 6
4.1.1 注册与登录模块设计 7
4.1.2 餐品预订模块设计 7
4.1.3 用户管理模块设计 7
4.1.4 菜品管理模块设计 7
4.1.5 公告管理模块设计 7
4.1.6 订单管理模块设计 8
4.1.7 餐品评价模块设计 8
4.2 数据库设计 8
4.2.1 概念模型设计 8
4.2.2 逻辑结构设计 9
第5章 详细设计及实现 13
5.1 注册登录 13
5.2 餐品预订 16
5.3 用户管理 18
5.4 菜品管理 21
5.5 公告管理 23
5.6 订单管理 26
5.7 餐品评价 27
第6章 系统测试及结果 30
6.1 测试原则 30
6.2 系统测试 30
6.2.1 登录模块测试 30
6.2.2 用户管理模块测试 31
6.2.3 公告管理模块测试 32
6.2.4 菜品预订模块测试 32
6.2.5 菜品管理模块测试 33
6.2.6 订单管理模块测试 34
6.2.7 餐品评价模块测试 35
6.3测试结果 35
结论 36
参考文献 37
致谢 39

第1章 绪论
1.1 课题开发的背景和现状
随着社会生活节奏加快,外卖行业得到了快速发展,外卖市场规模持续扩大。现代大学生生活节奏紧凑,学习压力大,很多学生没有时间进行烹饪,因此对外卖服务的需求增加。随着互联网技术的普及,手机APP订餐已经成为一种主流的生活方式,校园外卖系统可以提供便捷的在线订餐服务[1]。
在一些大学校园内,学生需要更便捷、更多样化的外卖服务,当前的外卖点餐方式可能存在效率低下或者选择有限的问题。校园周边的外卖市场竞争激烈,传统外卖商家和新兴外卖平台争相进入校园市场,需要提供更具竞争力的服务。为了维护校园秩序和食品安全,部分学校管理部门对校园内外卖服务提出了规范化、统一管理的要求,需要有专门的系统支持。现代学生对外卖品种的多样性和点餐便捷性有较高要求,期望通过科技手段订购美食,丰富校园生活[2]。
1.2 课题开发的意义
开发校园外卖系统可以满足学生和教职工日益增长的外卖需求,提供便捷、快速的订餐服务,提升校园生活品质。校园外卖系统的开发将带动校园周边外卖行业的发展,促进相关商家的经济增长,创造就业机会。引入校园外卖系统可以提高外卖服务的效率,简化订单流程,减少等待时间,提升配送速度,提高客户满意度。校园外卖系统有助于规范校园内外卖服务的管理,加强对食品安全和卫生的监督,确保学生和教职工的健康。开发校园外卖系统将借助互联网技术,推动校园内的科技创新,提升学校的数字化水平,促进智慧校园建设。对学校而言,引入校园外卖系统能够提升学校的服务水平和竞争力,增加学生和教职工的福利感和归属感[3]。

第2章 相关技术介绍
2.1 Java语言
Java是一门纯面向对象的程序设计语言,所有东西都是面向对象的。Java利用“类-对象”这一概念,提供了诸如封装,继承,多态等面向对象的特征,使得程序更易于理解、维护和扩展。Java 的语法设计借鉴了 C++,但去除了一些复杂性,使得 Java 更易学易用。同时,Java 还提供了丰富的标准库,提供了大量的预定义类和方法,简化了开发过程。Java 在设计上考虑了很多错误处理机制,有自动内存管理、异常处理、强类型检查等机制,使得程序更加稳定、健壮,减少了出错和崩溃的可能性[4]。
2.2 SpringBoot框架
Spring Boot是一个开放源码的框架,用来建立一个基于 Spring框架的产品级别的应用。Spring Boot适用于建立一个微服务体系结构,利用 SpringCloud等相关的工程,能够迅速地建立一个分布式的、生产级别的应用。Spring Boot提供多种测试支持,包括单元测试、集成测试、端到端测试等,可以帮助开发者编写高质量的测试用例。Spring Boot 拥有一个庞大且活跃的社区,开发者可以通过官方文档、社区论坛、示例程序等资源获取支持和帮助。Spring Boot 是一个强大、灵活且易于使用的框架,旨在帮助开发者快速构建各类 Java 应用程序,尤其适合那些对快速开发和微服务架构有需求的项目[5]。
2.3 HTML技术
超文本标记语言(HTML)是一种用来生成 Web页面的标记语言,它是 Web发展的基本技术。HTML包含一系列的标记(tag)来描述网页的结构和内容,浏览器解析这些标记并将其呈现为用户可以查看和交互的网页用。HTML 是一种标记语言,通过在文本中嵌入标签来定义文档的结构、内容和样式。每个标签都具有特定的含义和作用,如标题、段落、图像等。HTML 文档按照标签定义的结构来组织内容,包括头部(head)和主体(body)部分,可以包含标题、段落、表格、列表、链接、图像等元素[6]。
2.4 Navicat开发工具
Navicat是一个强大的数据库管理工具,专为开发者及数据 管理员设计。Navicat为用户提供了一个简单明了的界面、丰富的功能和良好的性能,广泛应用于数据管理、数据报表生成、数据同步和转移等方面。Navicat 支持定时任务和批处理功能,用户可以设置定时执行的任务或批量处理数据库操作,提高工作效率。Navicat 是一款功能丰富、易用高效的数据库管理工具,适用于各种规模的数据库管理需求,帮助用户轻松管理和优化数据库系统[7]。
2.5 MySQL数据库
MySQL 是一个开源的数据库管理系统,具有免费的社区版本(Community Edition)和商业版(Enterprise Edition),用户可以根据自身需求选择合适的版本。MySQL 是一种关系型数据库系统,采用 SQL(Structured Query Language)作为查询语言,支持传统的表格形式存储数据,提供了强大的数据处理和操作功能。MySQL 可以在多种操作系统上运行,包括 Windows、Linux、macOS 等,用户可以根据需要在不同的平台上部署和使用 MySQL。MySQL 具有优秀的性能和稳定性,能够处理大量数据并提供高效的查询处理,同时具备数据安全和可靠性方面的保障[8]。

第3章 需求分析
3.1 可行性分析
在进行项目或计划时,可行性分析是非常重要的一步,用来评价项目的可行性和可行性。可行性分析一般包括市场上的,技术上的,经济上的,操作上的[11]。
3.1.1 技术可行性
基于 Spring Boot 的校园外卖系统在技术上是可行的。Spring Boot 可以快速搭建系统架构,简化开发过程,同时 MySQL 提供可靠的数据存储支持,HTML 则用于构建用户友好的前端界面。结合这些技术的优势,可以确保校园外卖系统的高效开发和稳定运行[12]。
3.1.2 经济可行性
综合考虑投入成本、运营成本和预期收益,可以得出基于 Spring Boot 的校园外卖系统在经济上是可行的结论。系统运行只需要一台电脑,选择相对经济实惠的开发工具,同时在系统运营阶段可以通过收取商家入驻费等方式获取收益,以及通过广告推广等方式增加收益来源。因此,从经济角度来看,基于 Spring Boot 的校园外卖系统具有良好的可行性。
3.1.3 操作可行性
考虑系统的易用性、用户培训需求和操作流程设计,可以得出基于 Spring Boot 的校园外卖系统在操作上是可行的结论。系统通过友好的界面设计和简单的操作流程,降低用户学习成本,使用户能够轻松操作系统完成各项功能。因此,基于 Spring Boot 的校园外卖系统在操作上具有良好的可行性[13]。
3.2 系统业务功能需求分析
3.2.1 普通用户功能需求分析
根据用户的需求,用户进入系统后可以浏览菜品或根据菜品分类进行相应的查看,选中菜品加入购物车进行付款;系统公告,用户可以查看食堂规则,今日菜品折扣等等;订单信息,用户可以查看的自己的菜品订单;餐品评价,用户可以自己订单的菜品进行用餐评价。本人经过多次筛选审核,做出了用例分析,普通用户功能用例图如图3-1所示。
在这里插入图片描述

图3-1 普通用户功能用例图
3.2.2 管理员功能需求分析
根据管理员的需求,管理员是校园外卖点餐系统的后台管理人员,主要负责后台维护,管理员具备的功能包括用户管理,增加,修改,删除等;菜肴管理,负责菜肴的分类,增加,修改,删除;订单管理,查看,删除用户订单;公告管理,由管理员添加,修改,删除系统公告。本人经过多次筛选审核,做出了用例分析。管理员功能用例图如图3-2所示。
在这里插入图片描述

图3-2 管理员主要功能用例图

第4章 总体设计
4.1 系统总体结构设计
校园外卖系统的总体结构设计可以分为前端、后端和数据库三个部分,每部分各有各的作用。其中,前端主要完成用户接口的显示与交互,后端主要进行系统的功能分析与交互,而数据库则主要实现数据的存储与管理。通过前后端和数据库的整体合作,实现校园外卖系统的各项功能。结构清晰、分工明确的设计有助于系统的开发、维护和扩展,提高系统的稳定性和可靠性。
本系统主要分六大功能,分别为注册与登录模块,餐品预订模块,用户管理模块,菜品管理模块,公告管理模块,订单管理模块,餐饮评价模块。系统设计总体结构图如图4-1所示。
在这里插入图片描述

图4-1 系统设计总体结构图
4.1.1 注册与登录模块设计
提供一个包括用户名称,密码,移动电话号码,电子信箱的注册表单。后端接受来自前端的录入信息,并对其进行身份验证、处理;为保证用户的个人信息的安全性,采用了加密的方式存储用户的密码。检查使用者资料之合法性,例如使用者名称的唯一性、口令的强度等。在成功注册之后,在数据库中保存用户信息,并跳转至登录页面或直接登录[14]。
4.1.2 餐品预订模块设计
提供用户浏览菜单的界面,展示各商家的菜品信息,包括菜品名称、价格、描述、图片等。用户可在菜单页中进行浏览、筛选,并将喜爱的菜加入到购物车中。用户可以选择自己喜欢的菜品,添加到购物车中,也可以更改数量或者删除不想要的菜。购物车会即时更新所选择的菜式及总金额,并能清楚地了解所选择的菜式及总金额。用户在确定了自己要购买的菜之后,就可以进入到下一步的订购确认页面。在订购确认页中,填上收货地址,联系方式,并确定详细的订购内容。当确定订购时,将会在数据库中储存订购信息,并且产生一个订单号码[15]。
4.1.3 用户管理模块设计
管理员可以查看用户列表,包括用户的基本信息、订单记录等。实现用户信息的编辑、删除功能,如修改用户资料等操作。管理员可以手动添加新用户,并分配用户角色和权限。
4.1.4 菜品管理模块设计
提供菜品管理界面,展示各商家的菜品信息,包括菜品名称、价格、描述、图片等。管理员可以添加、编辑、删除菜品,包括上传菜品图片、设置价格、编写描述等操作。设计菜品分类,如主食、饮料、甜点等,方便用户浏览和筛选菜品。管理员可以添加、编辑、删除菜品分类,为菜品进行分类管理。
4.1.5 公告管理模块设计
展示已发布的公告列表,包括标题、发布时间等信息。用户可以浏览最新的公告内容,了解系统运营情况和最新动态。点击公告标题后可以查看公告详细内容,包括标题、内容、发布时间等。
4.1.6 订单管理模块设计
提供订单列表页面,展示用户的订单信息,包括订单号、下单时间、订单状态、总金额等。管理员可以查看所有订单,按照不同条件进行排序和筛选,方便管理订单信息[16]。
4.1.7 餐品评价模块设计
用户在首页导航栏里可以看到餐品评价导航标题,找到订单点击评价按钮,进入后可以输入评价信息输入评价内容。输入完成后点击提交评价信息。
4.2 数据库设计
4.2.1 概念模型设计
在校园外卖系统中,概念模型设计是为了明确系统中的重要实体及它们之间的关系。系统E-R图如图4-2所示。
在一个系统中,不同的实体是相互联系的。图4-2显示了该系统中的关键实体E-R模型。在此基础上,提出了一种基于用户主体和菜品主体、订单主体、管理员主体间的一对多关系。在系统管理员状态下,管理员与菜品信息和订单信息均具有一对多的联系。用户与订单具有一对多的关系。管理员与公告为一对多的关系[17]。
在这里插入图片描述

图4-2系统E-R图
4.2.2 逻辑结构设计
在校园外卖系统中,逻辑结构设计主要关注系统整体架构和各模块之间的关联关系。通过逻辑结构设计,校园外卖系统中的各模块和功能之间的关联关系清晰明确,有助于系统开发和维护工作的顺利进行本系统中主要MySQL数据表的结构设计如下。

  1. 用户信息表
    用户信息表保存着本系统的用户信息,用户信息表如表4-1所示。分为用户编号,姓名,密码,昵称,性别,年龄,生日,电话,地址,邮箱,身份证号,余额,权限等级,会员,积分。

表4-1 用户信息表
字段名 数据类型 长度 是否为主外键 能否为空
id int 11 是 否
name datetime 255 否 否
password String 255 否 否
nickName String 250 否 否
sex varchar 250 否 否
age varchar 255 否 否
birthday char 255 否 否
phone varchar 255 否 否
address String 255 否 否
email varchar 255 否 否
cardId String 255 否 否
account varchar 255 否 否
level varchar 255 否 否
huiyuan varchar 255 否 否
jifen varchar 255 否 否
2. 公告表
公告表存储着系统内的公告信息。公告表如表4-2所示。分别为编号,公告名称,公告内容,公告时间。
表4-2 公告表
字段名 数据类型 长度 是否为主外键 能否为空
id int 11 是 否
name datetime 50 否 否
content String 50 否 是
time String 50 否 否
3. 管理员信息表
管理员信息表主要存放的是管理员的所有信息,其中id是默认id,数据类型为int,为主键自增。管理员信息表如表4-3所示。分别为编号,姓名,密码,昵称,电话,地址。
表4-3 管理员信息表
字段名 数据类型 长度 是否为主外键 能否为空
id int 11 是 否
name varchar 50 否 是
password varchar 50 否 否
nickName varchar 50 否 否
phone varchar 50 否 否
address varchar 50 否 否
4. 菜品信息表
菜品信息表是用来存储菜品信息的。菜品信息表如表4-4所示。分别为编号,姓名,商品描述,价格,折扣,是否推荐,商品库存,类别,评价人编号,等级。
表4-4 菜品信息表
字段名 数据类型 长度 是否为主外键 能否为空
id int 11 是 否
name datetime 255 否 否
description String 255 否 是
price varchar 255 否 是
discount int 255 否 是
sales String 255 否 否
count varchar 255 否 否
typeId String 255 否 否
userId String 255 否 否
level varchar 255 否 否
5. 订单信息表
订单信息表存储着系统内的订单信息。订单信息表如表4-5所示。分别为编号,订单编号,总价格,所属用户,等级,联系地址,联系电话,联系人,创建时间,订单状态,总积分。
表4-5 订单信息表
字段名 数据类型 长度 是否为主外键 能否为空
id int 11 是 否
orderId datetime 50 否 是
totalPrice varchar 50 否 是
userId String 50 否 否
level int 50 否 否
linkAddress datetime 50 否 否
linkPhone varchar 50 否 否
linkMan String 50 否 否
createTime String 50 否 否
status varchar 50 否 否
totalJifen varchar 50 否 否

第5章 详细设计及实现
5.1 注册登录
当用户第一次访问系统时需要进行注册,按下注册键,输入使用者名称,这时会有检查该使用者的身份。如果这个使用者名称已经存在,那么这个使用者就会被告知这个使用者已经存在。若使用者不存在,请继续填入其它的个人资料,完成后,系统会检查手机号码,邮箱等格式。如果没有通过信息检查,将给出一个错误提示。如果所有的检查都通过了,那么系统将会提示注册成功。系统注册流程图如图5-1所示。注册界面效果图如图5-2所示。用户打开校园外卖系统的前台页面,在页面中找到“注册”等按钮,点击进入注册页面。用户在注册页面中填写个人信息,通常包括用户名、密码、确认密码、电话号码等。将注册信息上传至系统进行注册。
在这里插入图片描述

图5-1 系统注册流程图
本系统的注册页面,集成在UserController.java文件中,关于注册的主要代码如下:
if (StringUtils.isEmpty(userInfo.getPassword())) {
// 默认密码123456
userInfo.setPassword(SecureUtil.md5(“123456”));
} else {
userInfo.setPassword(SecureUtil.md5(userInfo.getPassword()));
}
userInfoDao.insertSelective(userInfo);
return userInfo;
}
在这里插入图片描述

图5-2 注册界面效果图
用户打开校园外卖系统的前台页面,在网页上发现诸如“登录”或者“用户登录”之类的按钮,然后单击“登陆”页。使用者会在登入网页中,键入所注册的帐户信息,一般包含使用者名称及密码。系统会检查使用者所填写的帐号资料,例如使用者名称与密码相符。如果账户信息认证成功,则进入到用户的个人页面或者回到首页。并显示登录成功的提示信息。登录界面如图5-3所示。
在这里插入图片描述

图5-3 登录界面效果图
5.2 餐品预订
当用户要进行餐品预订,先选择要预订的菜品选择好后点击选择要配送的地址,输入订餐信息备注等。提交后系统后台会进行校验,校验当前菜品是否有库存,如果库存不够会从新让用户选择菜品。如果库存充足写入数据库保存信息。菜品预定流程图如图5-4所示。餐品预订界面效果图如图5-5所示。用户登录校园外卖系统前台后,在这里,可以看到每一家餐厅的菜单,看到每一道菜的名字,价格,照片,说明。用户从菜单中挑选自己喜爱的菜肴,可以加入购物车进行暂存或直接进行预订。用户可以查看购物车,确认所选菜品信息(包括数量、价格等),并进行调整或删除操作。
在这里插入图片描述

图5-4 预定菜品算法流程图图
主要的后端代码如下:
@PostMapping
goodsInfo.setUserId(user.getId());
goodsInfo.setLevel(user.getLevel());
goodsInfo.setCount(10000);
goodsInfoService.add(goodsInfo);
return Result.success(goodsInfo);
List infoList = ExcelUtil.getReader(file.getInputStream()).readAll(UserInfo.class);
if (!CollectionUtil.isEmpty(infoList)) {
在这里插入图片描述

图5-5 餐品预订界面效果图
5.3 用户管理
管理员可以在用户管理界面中增加新的使用者资料,在管理员按下用户管理按键后,就会进入用户表格,并将使用者资料输入到用户表格中。当你输入完之后,系统会检查你的数据的合法性,比如你的电话号码是不是按照规定的格式来的。校验通过后点击上传用户头像,系统会校验图片大小和图片格式等,校验通过后写入数据库新增用户成功。新增用户流程图如图5-6所示。用户管理界面效果图如图5-7所示。在后台管理页面中,系统管理员在系统的“用户管理”界面中找到了系统的用户管理模块。管理员可以看到一个系统中的全部用户列表,包括用户名、手机号、邮箱、注册时间等用户信息。
在这里插入图片描述

图5-6 新增用户流程图
主要代码如下:
@PostMapping(“/upload”)
public Result upload(MultipartFile file) throws IOException {
ExcelUtil.getReader(file.getInputStream()).readAll(UserInfo.class);
if (!CollectionUtil.isEmpty(infoList)) {
List resultList = infoList.stream().filter(x -> ObjectUtil.isNotEmpty(x.getName())).collect(Collectors.toList());
for (UserInfo info : resultList) {
userInfoService.add(info);
}
return Result.success();
}
在这里插入图片描述

图5-7用户管理界面效果图
管理员将用户的基本资料,如用户名,密码,电话号码,邮箱等,都要在新用户页中填写。管理员可以选择使用者的使用权限等级或者使用者类别来决定使用者在系统中的使用权利。管理员完成注册后,按“保存”键,将新注册的用户资料存入系统资料库。 用户管理界面效果图如图5-8所示。
在这里插入图片描述

图5-8 新增用户界面效果图
5.4 菜品管理
管理员在菜单栏中点击菜品信息,可以查看菜品信息列表。输入想要添加的菜单项信息,输入完成后系统后台会校验菜品信息是否合法,价格是否为数字,菜品名是否长度不符等。校验通过后需要上传菜品图片,上传图片时系统会对图片进行校验,校验图片格式是否正确,图片大小是否符合。校验通过后保存数据库上传菜品成功。新增菜品流程图如图5-9所示。查看菜品列表信息界面效果图如图5-10所示。在系统的后台管理界面中,系统管理员选择了“菜品管理”功能,并选择了“菜品管理”页。通过“菜品管理”功能,管理员可以在“菜品管理”页中看到各商户所提供的菜品清单,包括菜品名称,价格,描述,折扣等。管理员可以通过搜索能力或者过滤标准找到具体的菜。
在这里插入图片描述

图5-9 新增菜品流程图
主要代码如下:
public PageInfo findPage(Integer pageNum, Integer pageSize, String name, HttpServletRequest request) {
PageHelper.startPage(pageNum, pageSize);
Account user = (Account) request.getSession().getAttribute(“user”);
List all;
if (user.getLevel() == 1) {
return PageInfo.of(all);
}
在这里插入图片描述

图5-10 查看菜品列表界面效果图
5.5 公告管理
管理员可以登录到系统的后台,在系统的通知栏中,选择“增加通知”的按钮,在“增加通知”的页面中输入相应的消息。系统将检查系统中已有的通知标题等信息。如果有,就不允许加入,否则就会成功地加入到数据库中。图5-11显示了新的通知流程。图5-12显示了通知列表的界面效果,新发布的通知界面的效果见图5-13。在系统的后台管理页,系统管理员可以在系统的“公告管理”页中找到通知管理模块;通过公告管理页,管理员可以看到公告的内容,包括填写公告标题、内容、选择发布时间和状态等。
在这里插入图片描述

图5-11 新增公告流程图
主要代码如下:
@GetMapping(“/page/{name}”)
public Result<PageInfo> page(@PathVariable String name, @RequestParam(defaultValue = “1”) Integer pageNum, @RequestParam(defaultValue = “5”) Integer pageSize,
HttpServletRequest request) {
return Result.success(messageInfoService.findPage(name, pageNum, pageSize, request));
在这里插入图片描述

图5-12 查看公告列表界面效果图
在这里插入图片描述

图5-13 新增公告界面效果图
5.6 订单管理
在定单管理系统中,管理员可以根据客户的订单执行出货作业。管理员单击“订单”管理页,可以看到顾客的订购信息,然后点击“发送”按钮进行发货操作。系统会校验菜品的库存是否充足如果充足则提示发货成功。订单发货流程图如图5-14所示。订单列表界面效果图如图5-15所示。在后台管理页面中,系统管理员在系统的“订单管理”界面中找到了“订单管理”模块。通过“订单管理”页,管理员可以看到该系统中的所有用户下的订单清单,包括订单号码,订单时间,订单状态,支付情况等。
在这里插入图片描述

图5-14 订单发货流程图
主要代码如下:
public List findAll(Long userId, Integer level) {
List orderInfos = orderInfoDao.findByUserId(userId, level);
for (OrderInfo orderInfo : orderInfos) {
packOrder(orderInfo);
return orderInfos;
在这里插入图片描述

图5-15 订单列表界面效果图
5.7 餐品评价
用户登陆成功后可以对以往的订单进行评价。点击评价按钮后弹出输入框输入评价内容,输入完成后系统会进行校验,如果输入内容为空系统会进行提示,校验通过后评价成功写入数据库。餐品评价流程图如图5-16所示。评价界面效果图如图5-17所示。在后台管理页面中,系统管理员在系统的“订单列表”中找到了“订单管理”模块。通过“订单管理”页,管理员可以看到该系统中的所有用户下的订单清单,包括订单号码,订单时间,订单状态,支付情况等。
在这里插入图片描述

图5-16 餐品评价流程图
主要代码如下:
@PostMapping
public Result add(@RequestBody OrderInfo orderInfo) {
return Result.success(orderInfoService.add(orderInfo));
};
在这里插入图片描述

图5-17 评价界面效果图

第6章 系统测试及结果
通过系统的测试,能够发现软件在开发中可能出现的一些缺陷和问题,例如:功能缺陷、性能问题、安全漏洞等,尽早地对其进行修正,能够增强系统的稳定性和可靠性[19]。
6.1 测试原则
测试原则是软件测试的基本指导原则,为测试工作提供了方向和标准。测试原则旨在保证测试工作的有效性、高效性和全面性,以确保软件产品的质量和可靠性。其中包括以下几个方面:首先,全面性原则要求测试要涵盖各个方面的功能和情况,确保测试对系统的所有功能、非功能和用户场景进行覆盖。其次,及早测试原则强调在开发过程中尽早进行测试,以便及早发现和修复问题,降低后续修复成本。再者,缺陷定位原则指出测试应该定位问题,并提供详细的错误报告,以便开发人员能够快速定位和解决问题[20]。
6.2 系统测试
系统测试一般是在综合测试结束后进行的,前者主要是检验各模块间的相互作用以及总体的功能,后者侧重于在一个完整的环境中的整体性能。在系统测试过程中,测试人员会执行各种测试用例,模拟不同的用户场景和操作流程,检查系统的各项功能是否符合需求规格,同时也会验证系统的性能指标、安全性和可用性等方面[21]。
6.2.1 登录模块测试
确认用户可以正常地登录,登录和退出,如果你输入了合适的用户名和密码,就可以顺利地登陆。如果输错了用户名或者密码,就无法登录。检查登录界面的布局、样式、字体、按钮功能等是否符合设计规范,确保用户可以方便地进行操作和输入信息。检查登录界面是否采取了安全措施,如密码加密、防止暴力破解等,确保用户的账号信息和数据安全[22]。
登录测试用例和测试结果如表6-1所示,登录界面错误提示如图6-1所示。
表6-1 登录测试用例和测试结果
测试点 测试用例 预期结果 与预期结果是否一致

注册过的用户登录系统 输入错误的密码登录
输入错误的账号登录 账号或密码
错误 是
账号或密码
错误 是
未注册用户登录系统 输入错误的账号登录系统 账号或密码
错误 是
在这里插入图片描述

图6-1 登录界面错误提示
6.2.2 用户管理模块测试
验证用户能够成功注册新账号、个人资料的修改,密码的修改,帐号的注销等都可以正常使用。在此期间,您还需要对管理员进行测试,以便可以添加新的用户、修改用户权限、删除用户等管理功能是否正确执行。确保用户信息在传输和存储过程中得到正确的加密和保护,避免用户信息泄露或被恶意篡改的风险。测试用户管理模块在长时间运行和频繁操作下是否会出现内存泄漏、程序崩溃等稳定性问题,确保系统的可靠性[23]。
用户管理测试用例和测试结果如表6-2所示,删除用户成功提示界面如图6-2所示。
表6-2 用户管理模块测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
修改用户信息 点击“编辑”按钮,修改其个人信息 提示修改成功 是
删除用户信息 点击“删除”按钮 提示删除成功 是
在这里插入图片描述

图6-2 删除学生成功提示界面
6.2.3 公告管理模块测试
验证用户可以成功发布新公告、编辑已发布的公告内容、设定发布时间、查看公告历史记录等功能是否正常可用,并确保这些操作符合设计规范。检查公告管理界面的布局、样式、交互等是否符合设计规范,确保用户可以方便地进行公告发布和管理操作。测试公告发布时间的控制功能是否正确,包括未来时间点发布公告、及时发布公告、及时撤销公告等情况[24]。
公告管理测试用例和测试结果如表6-3所示,公告添加成功提示如图6-3所示。
表6-3 公告管理测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
新增公告 点击“新增公告”按钮输入正确的公告信息点击提交 新增公告成功 是
修改公告 点击“编辑”按钮编辑公告信息输入正确的信息点击提交 修改成功 是
在这里插入图片描述

图6-3 公告添加成功提示
6.2.4 菜品预订模块测试
在进行菜品预订模块测试时,首先需要验证用户能够顺利浏览菜品列表、查看菜品详情,并且能够进行预订操作。最后,用户接口也要做一些测试,包括接口的设计是否清楚,操作是否容易,是否满足了使用者的习惯和期待。
菜品预订测试用例和测试结果如表6-4所示。提示图如图6-4。
表6-4 菜品预订模块测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
浏览菜品信息 进入系统查看菜品信息点击图片跳到详情 可以成功浏览菜品 是
选择菜品进行预订 点击加入“收藏”按钮进行加入购物车 加入成功 是
预订菜品 点击“提交订单”按钮进入订单界面进行付款 待发货 是
在这里插入图片描述

图6-4 餐品预定成功图

6.2.5 菜品管理模块测试
在进行菜品管理模块测试时,需要验证管理员能够顺利登录系统并进行菜品信息的录入、编辑和删除操作。其次,需要测试系统是否能够正确地展示菜品的各项信息,包括菜品名称、价格、描述等,最后,还要对管理员接口进行测试,包括接口的设计是否清楚,操作是否容易,以及是否提供了必要的操作提示和帮助信息。通过对菜品管理模块的全面测试,可以确保系统能够为管理员提供便捷高效的菜品管理功能。
菜品管理测试用例和测试结果如表6-5所示。图如6-5所示。
表6-4 菜品管理模块测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
修改菜品信息 点击“编辑”按钮,修改其菜品信息 提示操作成功 是
删除菜品信息 点击“删除”按钮 提示操作成功 是
新增菜品信息 点击“新增”按钮,输入菜品信息点击保存 提示操作成功 是
在这里插入图片描述

图6-5操作成功界面
6.2.6 订单管理模块测试
在进行订单管理模块测试时,需要验证系统能够准确地接收用户的订单请求,并正确地显示订单详情,包括菜品信息、数量、价格以及配送地址等。
订单管理测试用例和测试结果如表6-6所示。图如6-6所示
在这里插入图片描述

图6-6删除成功页面
表6-6 订单管理测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
查看订单信息 点击“订单管理”查看订单列表进入详情查看 可以准确查看 是
删除订单信息 选中某一条订单信息点击“删除”按钮,订单成功删除 删除成功 是
6.2.7 餐品评价模块测试
在进行餐品评价模块测试时,需要验证用户能够顺利提交对所购餐品的评价,并且评价信息能够被系统准确记录和显示。
餐品评价测试用例和测试结果如表6-7所示。图6-7所示。
表6-7 餐品评价模块测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
选择订单进行评价 选择订单点击“评价”输入评价内容 评价成功 是
查看评价信息 查看其他用户的评价信息 可以成功查看 是
订单评价 选择订单点击“评价”不输入评价内容 评价失败 是
在这里插入图片描述

6.3测试结果
经过测试,校园外卖系统的整体表现令人满意。系统在各个模块的测试中均展现出稳定的性能和良好的功能完整性。校园外卖系统在各个模块的测试中均表现出色,功能完备、性能稳定、用户体验良好,为用户和管理员提供了高效、便捷的外卖服务,提升了系统的整体运营效率和用户满意度。
结论
在项目开始阶段,学会了如何进行用户需求分析,设计系统功能和界面,以及制定合理的开发计划,提升了自己的需求分析与设计能力。在项目开发过程中,通过编写和调试大量代码,熟练掌握了多种编程语言和技术,提高了编码和调试能力。在控制项目进度的过程中,学会了如何有效地进行项目管理和时间规划,提高了自己的时间管理能力。在遇到问题和挑战的过程中,培养了解决问题的能力和创新思维,学会了通过不同的角度思考问题并找到解决方案。这些经验和技能不仅对本次项目开发有所帮助,也对我未来的发展和职业规划有着重要的意义通过完成校园外卖系统项目,我不仅学到了技术知识和项目经验,还锻炼了自身的团队合作能力、问题解决能力和创新思维,这些都会对我的未来发展和职业规划产生积极的影响。
校园外卖系统在未来有许多发展的展望和潜力,可以逐步拓展校园外卖系统的服务范围,包括提供更多种类的外卖餐饮选择、增加配送范围或者增加其他服务,如超市购物、快递服务等,满足用户多样化的需求[25]。不断优化系统界面和功能,提升用户体验,包括改进下单流程、增加评价和推荐功能、引入更智能的推荐算法等,提高用户满意度和忠诚度。结合人工智能、大数据分析等技术,优化订单配送路线规划、智能推荐菜品、个性化营销推广等,提升系统的智能化和个性化服务水平[26]。持续加强系统的安全防护措施,保护用户隐私信息和交易安全,建立健全的用户数据保护制度,增加系统的可信度和可靠性。考虑线上线下融合发展,与校园周边商家合作推出线下自提点、共享骑手服务等,提供更多便利的取餐方式,拓展校园外卖服务的渠道和形式[27]。通过持续的创新和改进,校园外卖系统可以不断适应用户需求的变化,提供更加优质、便捷和安全的服务,实现系统的持续发展和壮大。展望未来,校园外卖系统有着广阔的发展前景,将为校园用户提供更好的用餐体验和服务[28]。

参考文献
[1]吴拓.Java编程语言在计算机软件开发中的应用[J].无线互联科技,2022,19(12):35-37.
[2]李璋,赵鸿皓,黄震,等.Java在程序设计语言课程中的应用[J].长江信息通信,2022,35(07):108-111.
[3]李斌斌.贝叶斯神经网络在变量选择的应用——Java开发者薪资分析[J].现代计算机,2022,28(13):79-82.
[4]张海越,范曦.浅析Java语言中线程的生命周期及实现方式[J].大众科技,2022,24(07):18-20.
[5]汪政.以项目为中心的Java编程综合教学方法研究[J].计算机时代,2022(07):123-125.
[6] 李华.计算机软件开发中Java编程语言的应用及细节问题分析[J].电子技术与软件工程,2023(04):49-52.
[7] 赵将.Java语言在计算机软件开发中的应用[J].数字技术与应用,2023,41(03):160-162.
[8] 任蕾蕾.计算机软件开发中数据库安全设计研究[J].网络安全和信息化,2023(03):55-57.
[9]王南.Java编程在计算机应用软件中的应用特征与技术研究[J].信息记录材料,2022,23(04):130-132.
[10]尹应荆.JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023(05):45-47.
[11]程小红.基于Java程序设计语言中一维数组的应用[J].数字技术与应用,2023,41(08):31-34.
[12]闫立誉.基于Java平台开发的软件保护技术探究[J].数字技术与应用,2023,41(08):199-201.
[13]韦婉辰,卢华.基于微信小程序的校园订餐管理系统的设计与实现[J].信息记录材料,2022,23(05):119-122.
[14]韩立峰,亓雪冬.基于微服务的高校外卖点餐系统设计[J].微型电脑应用,2021,37(09):155-157+165.
[15]陈江辉,於立杰,李强.智慧校园食堂订餐系统信息化平台的设计[J].网络安全技术与应用,2021(03):43-44.
[16]戴静,马奇奇,王帅等.基于Android的智能顺风订餐系统的设计与实现[J].科技风,2019(34):27.
[17]聂维,张忠,刘小豫.外卖点餐系统的设计与开发[J].信息与电脑(理论版),2019,31(20):56-58.
[18]赵将.Java语言在计算机软件开发中的应用[J].数字技术与应用,2023,41(03):160-162.
[19]任蕾蕾.计算机软件开发中数据库安全设计研究[J].网络安全和信息化,2023(03):55-57.
[20]王淼.MySQL查询优化与研究[J].信息记录材料,2022,23(05):227-229.
[21]谢霜.基于Java技术的网络管理体系结构的应用[J].网络安全技术与应用,2022(10):14-15.
[22]康晶晶,李青云.Java面向对象程序设计课程的教学实践[J].电子技术,2023,52(08):262-263.
[23]Yang Y .Design and Implementation of Online Food Ordering System Based on Springcloud[J].Information Systems and Economics,2022,3(4).
[24]Chang V ,Liddle J ,Xu A Q , et al.A new product development of the iOS-based ordering systems for smart cities[J].Library Hi Tech,2022,40(5):1127-1146.
[25]Joshi M ,Shukla H .Design and development of reactive material ordering system using e-kanban and Taguchi’s technique for a warehouse of tractor assembly plant[J].International Journal of Industrial and Systems Engineering,2021,37(4).
[26]Fendy F ,Jap B T ,Desi A .Web-Based Canteen Payment and Ordering System[J].IOP Conference Series: Materials Science and Engineering,2020,1007(1):121-159.
[27]Kyocera Document Solutions; Researchers Submit Patent Application, Ordering System, Ordering Server Apparatus, And Non-Volatile Computer Readable Recording Medium, for Approval (USPTO 20200213456)[J].Information Technology Newsweekly,2020.

致谢
首先,我要感谢我的指导老师,他在整个毕业设计的过程中给予我悉心指导和专业支持,为我提供了宝贵的学术指导和建议。他们的耐心教诲和无私帮助使我受益匪浅,让我在论文研究的道路上走得更远。其次,我要感谢家人和朋友们对我的支持和理解。在我写作论文、进行实验和繁忙的学业中,他们给予我无条件的支持和鼓励,是我前行路上最坚实的后盾。他们的理解和支持让我有了充分的精力和信心去克服困难,完成了毕业论文的撰写。
最后,我要感谢所有曾经帮助过我的老师、同学和同事们,是你们的支持与鼓励让我在学术道路上不断成长和进步。
感谢每一位在我学术生涯中给予我帮助和支持的人,是你们的关怀和支持让我在研究中感受到前所未有的温暖与力量。衷心感谢你们!

  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值