摘 要
新食代外卖点餐系统逐渐成为一种受欢迎的网站。该系统通过在线平台对美食的选择与享受。新食代外卖点餐系统的出现不仅满足了客户不出门的需求,也为商家增加了额外的营业额。
本文拟采用java技术和springboot搭建系统框架,后台使用MySQL数据库进行信息管理,设计开发的新食代外卖点餐系统。通过调研和分析,系统拥有管理员、外卖员和用户三个角色,主要具备用户、外卖员、美食分类、美食信息、外卖订单、配送订单、收货订单、留言反馈、系统管理、订单管理、用户资料等功能。将美食及时送到客户手里,极大提高了用餐的享受、时间的利用。
关键词:外卖点餐;java;springboot框架;MySQL
Abstract
The new take-out ordering system is becoming a popular website. The system through the online platform for the choice of food and enjoy. The new take-out system not only meets the need of customers not to go out, but also increases the extra turnover for the merchants.
This paper uses Java technology and springboot to build system framework, backstage using MySQL database for information management, design and development of a new food take-out order system. Through the research and analysis, the system has three roles: administrator, takeaway and user, it has the functions of user, delivery man, gourmet food classification, gourmet food information, delivery order, delivery order, receiving order, message feedback, system management, order management, user information and so on. Will be delivered to customers in time, greatly improve the enjoyment of meals, the use of time.
Key words: Take-out order communication; java; springboot framework; MySQL
目 录
第一章 概述
1.1 开发背景及研究意义
随着互联网的快速发展和智能手机的普及,外卖行业迅速崛起并成为人们日常生活中不可或缺的一部分。为了满足用户对便捷、高效的点餐服务的需求,研究者们开始关注并研究新食代外卖点餐系统的设计与实现。新食代外卖点餐系统的设计与实现可以提高用户的点餐体验。通过移动应用程序,用户可以方便地浏览菜单、选择菜品、定制口味,并实时查看订单状态。这种便捷的点餐方式大大节省了用户的时间和精力,提高了用户的满意度。新食代外卖点餐系统的设计与实现对于餐饮企业具有重要意义。通过引入该系统,餐饮企业可以实现线上线下融合经营,拓展销售渠道,提高订单量和收入。同时,系统还可以帮助餐饮企业进行数据分析,了解用户偏好和消费习惯,从而优化菜单设计和推广策略。新食代外卖点餐系统的设计与实现还可以促进餐饮行业的数字化转型。通过引入智能化技术,如人工智能、大数据分析等,可以实现智能推荐、个性化营销等功能,提升用户体验和企业竞争力。
新食代外卖点餐系统的设计与实现还具有社会意义。它可以帮助餐饮企业提高管理效率,减少资源浪费,推动绿色环保发展。同时,该系统还可以为就业市场提供更多的机会,创造更多的就业岗位。新食代外卖点餐系统的设计与实现对于提升用户点餐体验、促进餐饮企业发展和推动行业数字化转型具有重要意义。通过引入智能化技术和数据分析手段,可以实现个性化服务、优化资源配置,并为用户和企业带来更多的便利和利益。
1.2国内外发展现状
新食代外卖点餐系统作为一种创新的点餐方式,在国内外得到了广泛的应用和发展。以下是其在国内外的发展现状的简要介绍。中国的外卖市场规模庞大,各大互联网巨头纷纷进军该领域并推出自己的外卖点餐系统。例如,美团外卖、饿了么等平台通过自有的点餐系统,为用户提供了丰富的菜品选择、便捷的下单流程以及快速准时的配送服务。同时,这些平台还不断引入新技术,如人工智能、大数据分析等,提升用户体验和订单处理效率。
国外方面,外卖点餐系统也取得了显著的发展。例如,美国的Uber Eats和DoorDash等外卖平台通过自家的点餐系统,实现了用户在线点餐、支付和配送的一体化服务。这些平台还注重用户个性化需求,通过智能推荐算法,向用户推荐符合其口味和偏好的菜品。
国内外一些餐饮企业也开始自主开发和使用外卖点餐系统。他们通过建立自己的点餐平台,实现了与消费者的直接沟通和交互。这种方式不仅提高了企业的品牌形象和市场竞争力,还为用户提供了更多选择和个性化服务。新食代外卖点餐系统在国内外都取得了较大的发展。通过引入智能化技术和数据分析手段,这些系统不断提升用户体验、优化资源配置,并为餐饮企业带来更多商机。未来,随着科技的进一步发展和用户需求的不断变化,外卖点餐系统将继续创新和演进,为用户提供更加便捷、高效的点餐服务。
1.3 研究内容
本系统开发时选用Java作为后端开发语言,并采用Spring Boot框架,后者带来了开箱即用的便利性,大大加快了开发速度。数据存储和操作则采用了MySQL数据库。前端开发部分,使用了HTML、CSS、JavaScript以及Vue.js这一流行的前端框架,使得界面设计和用户交互变得更加直观和便捷。在开发工具方面,选用了Eclipse以及Navicat,其中Eclipse作为一款成熟的开发工具,带来了丰富的功能和强大的支持,而Navicat作为数据库管理工具,提供了友好的用户界面和强大的SQL处理能力,系统共分为管理员、外卖员和用户三个角色,主要包括用户、外卖员、美食分类、美食信息、外卖订单、配送订单、收货订单、留言反馈、系统管理、订单管理、用户资料等功能;内容目标如下。
(1)减少后台管理人员的工作量,对用户的信息进行系统的管理;
(2)必须要方便快捷的查看搜索信息并管理信息;
(3)用户是具有多样性的,所以界面要设置的简单明了,操作更要方便快捷。
(4)编写开发系统的技术文件。
(5)对系统进行了系统测试。
第二章 开发技术介绍
本系统设计过程中采用Java开发语言,B/S结构,采取springboot框架,并以MySql为数据库进行开发。结合以上技术,对本系统的整体、数据库、功能模块、系统页面以及系统程序等设计进行了详细的研究与规划。
2.1 Java介绍
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技术。Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于企业Web应用程序开发和移动应用程序开发。Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了改进。
2.2 MySql数据库
MySql数据库具有轻便、稳定等特点,在系统的工程中对相关的数据操作,很好的保障数据的稳定,极大程度上减低了系统开发的时间。
MySql数据库支持多线程工作,能充分利用系统的资源,更具有效率且数据库连接也有对于的不同模式接口;MySql存储小、运行稳定并且对使用的要求不高。
利用MySql建立系统数据库,利于对系统的数据处理早期的整合,可以更好的发展后数据的扩展实际操作。
Mysql数据库的特点如下:
(1)Mysql是相比于Oracle更轻量、更简洁便于使用,在服务部署方面相对复杂度低,更利于毕设系统的开发。
(2)支持多种操作系统包括AIX、FreeBSD、HP-UX、Linux和Mac OS、Novell‘s Netware、OpenBSD系统、OS/2卷、Solaris、Windows等。
(3)查询速度快。算法优化了查询语句,可靠地提高了搜索速度。
(4)Mysql可以使用Sql语言进行调用,学习成本较低。
(5)Mysql可支持互联网站数据共享也支持数据安全设置,防止数据泄露。
(6)高度非过程化。在访问数据库时,没有必要一步一步向计算机发送指令去完成任务,只需要用MySQL语句描述并且命令就可以了,数据库会自动完成全部工作。
2.3 Vue.js框架
Vue.js是一款用于构建用户界面的渐进式JavaScript框架。与其他大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。
Vue的主要特点之一是响应式数据绑定。它使得数据与DOM之间能够实现双向绑定,当数据发生变化时,视图会自动更新;当用户操作视图时,数据也会相应地发生变化。这大大提高了开发效率和用户体验。Vue还支持组件化开发。它将页面拆分成多个组件,每个组件都有自己的模板、样式和逻辑。这使得代码更加模块化、可维护性和可复用性更高。此外,Vue还提供了指令功能,可以在HTML模板中使用特殊的属性来方便地操作DOM元素。Vue使用虚拟DOM来提高性能。虚拟DOM是一个轻量级的JavaScript对象,它描述了真实DOM的一个副本。当数据发生变化时,Vue会对比新旧两个虚拟DOM树的差异,然后将差异更新到真实的DOM上。这种方式避免了频繁地操作DOM,从而提高了性能和效率。
总之,Vue是一款功能强大且易于学习的前端框架。它具有响应式数据绑定、组件化开发、指令等特性,能够帮助开发者快速构建高效的用户界面。
2.4 B/S架构
Browser/Server简称(B/S),即:浏览器/服务器架构模式;属于WEB发展后的所出现的一种网络构造,而WEB又是主要的浏览器应用商品软件。B/S架构模式不仅将系统的重新开发、维修及利用等简单化,更将其重点放到了服务器上。它使客户端得到了统一,在服务器上汇集了系统功能的最核心部分。
B/S架构模式,在服务器接收到浏览器发出请求后将进行对应的回应。Internet上文本、图片、动画等信息主要由Web服务器产生,而用户主要是通过浏览器访问这些信息。
2.5 Spring boot框架
现如今后台开源框架主流的有SSH、SSM、SpringBoot,但是SSH、SSM框架的环境配置项较多,而SpringBoot主要的设计思想就是约定大于配置,故而SpingBoot在设计时几乎达到零配置。SpringBoot整合了业界上的开源框架。具体采用技术框架描述如下:
(1)Mybatis:Mybatis:提供自动映射,动态SQL,级联,缓存,注解,代码和SQL分离等特性,使用方便,同时也对SQL进行优化。
(2)SpringMVC:通过一套MVC注解,让POJO成为处理请求的控制器,无需实现任何接口,同时,SpringMVC还支持REST风格的URL请求。
(3)SpringBoot:从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。
SpringBoot是一款非常强大后台框架,因为SpringBoot开发时可以基本不用写配置文件,所以使用SpringBoot搭建网站的后台环境,在SpringBoot的yml配置文件中写入项目启动端口,项目就可以启动。项目的Java文件还有静态文件都是由SpringBoot来管理。
第三章 系统分析
3.1需求分析
要想在实际的情况下,开发出一套符合使用者要求的新食代外卖点餐系统,首先要了解使用者的需求。对新食代外卖点餐的需求有深刻的了解,无论设计与开发工作多么优秀,都是一个成功的先决条件,也可以这么说,要不能满足用户需求的程序,是创造不出非常大的使用价值的,而且还给设计者带来很多的不利。需求分析是新食代外卖点餐系统设计时期的比较重要的一个阶段,它的基本内容是准确地解释出系统将会能够做些什么事情的关键问题,最终完成的是一份完整的系统的使用说明。
(1)有一些功能方面的需求,通过需求分析,可以找出需要完成的几个基本功能模块。性能要求也是指在系统设计的时候,需要满足一定的要求和限制,比如响应时间、信息处理、内存容量、磁盘容量、安全等等。
(2)系统的可靠性要求也是一个必须考虑的问题,它可以将可用性和可靠性结合起来,显示了用户在使用时经常遇到的问题。硬件要求也包括需要处理错误,以表明系统如何应对环境错误。如果自己的系统收到来自其他系统的信息,这些信息违背了某些格式,这时系统应该会有什么样的响应情况。
(3)软件方面的需求还有一些逆向的需求,就是系统不能做的事情。可以说,有很多种不同的要求,而开发人员应该能够准确的理解他们的真正需要,并且可以应用到新食代外卖点餐系统中。还有应该明确地找出一些虽然不属于当前新食代外卖点餐系统开发的情况,但是据现在的分析,将来是非常可能会需要的可能需求。经过这个需求的分析,在设计过程中对新食代外卖点餐系统将来有机会出现的问题有所准备,要能够确实需要的时候可以更加轻松的修改。
3.2系统可行性分析
为了系统的完整,必须要有可行性分析的,系统的可行性关系到生存问题,分析其意义可否利用本系统来弥补新食代外卖点餐管理模式中的不足之处等,通过本系统来减少工作量,使管理者与用户的工作和管理效率更高。对此体现出更多的意义和价值,系统完成后,进行具体的实际分析看是否能够达到期望的要求,确定之后再开始系统的搭建开发工作。对于新食代外卖点餐系统开发的搭建中,对相关技术、实际情况和操作等一系列方面进行可行性分析;
3.2.1经济可行性
本系统所用软件均为微软软件,开发周期短,因而可节约大量时间与资源,达到降低成本之功效。并且具有很好的安全性、可靠性以及可扩展性。同时发展该平台需要的智能计算机配置很低,即使网吧中被淘汰掉的配置不高的计算机也能满足需要,因此具有充分的可行性。
3.2.2技术可行性
本系统开发的程序需具有网络功能,从而可以不受地点限制。由于采用了B/S模式,降低了成本,提高了效率。本平台以java, MYSQL数据库为设计工具,能够方便的学习与应用。所以将java与MYSQL集成而研制的智能系统具有可行性和有效性。
3.2.3运行可行性
运行可行性也可以说是系统可用性的体现,新食代外卖点餐系统本身具有运行可行性的特点,其界面的设计清晰、功能权限分配合理、操作方便。本论文讲述的是新食代外卖点餐系统,通过技术的结合提出一套切实可行的解决方案。不同的用户接入之后不需要经过特殊的训练就可以运行到对应功能模块中。
3.3 系统功能分析
新食代外卖点餐系统主要有管理员、外卖员和用户三个功能模块。以下将对这三个功能的作用进行详细的剖析。
(1)管理员关键功能包含用户、外卖员、美食分类、美食信息、外卖订单、配送订单、收货订单、留言反馈、系统管理、订单管理、用户资料等进行管理。管理员用例如下:
图3-1 管理员用例图
(2)外卖员关键功能包含项目外卖订单、配送订单、收货订单、用户资料等进行管理。外卖员用例如下:
图3-2 外卖员用例图
(3)用户关键功能包含系个人中心、修改密码、外卖订单、配送订单、收货订单、我的订单、我的收藏等进行管理。用户用例如下:
图3-3 用户用例图
3.4系统流程分析
3.4.1程序流程图设计
在本系统,非本系统的用户要想进入系统就要注册本系统,登录时需要填写相应的资料,如有使用者,则会显示使用者名称已经存在,请再次键入使用者名称的提示框,若使用者不存在,则填写密码、确认密码等资料,并由系统判定密码与确认密码相符,确认无误后,填写使用者所填写的资料,即可进行登记。而且,为了保证系统的安全,只有在登录了本系统以后,才能进行新食代外卖点餐管理系统。该系统的工作流程见图3-4。
图3-4 程序流程图
3.4.2添加信息流程图设计
在添加信息的时候,会判断是哪类用户,并根据用户类型判断执行是否合法,合法者可以进行添加,不合法者则不能进行此操作。管理员登录账号后可以对内容进行添加,拥有着最高的权限,其他用户权限次于管理员。添加信息流程图如图3-5所示:
图3-5系统添加流程图
3.4.3删除信息流程图设计
删除数据时与添加数据功能类似,删除数据具体流程如图3-6所示:
图3-6系统删除流程图
第四章 系统概要设计
4.1 系统总功能模块设计
新食代外卖点餐系统分三大部分,即管理员管理、外卖员管理和用户管理。系统按照用户的实际需求开发而来,贴近生活。从管理员出拿到分配好的账号密码可以进入系统,使用相关的系统应用。管理员总体负责整体系统的运行维护,统筹协调。
系统整体模块设计:系统分为管理员、外卖员和用户三大用户角色,系统管理员有最大的权限,整体功能展示如图4-1所示。
图4-1 系统总体结构图
4.3 系统数据库设计
4.2.1 数据库系统概要设计
从设计到制作研发一个系统,需要用到的技术很多,对于开发程序语言、数据库和框架布局都有严格的要求[5]。该系统数据存放使用MySql的数据库,该数据库轻便快速,日常使使用系统十分稳定,更容易维护运行。
4.2.2 E-R模型结构设计
E-R图由实体与有关实体关联相结合构成的图,利用E-R图对清楚地表达出系统内的实体之间的关联。以下将“用户、收货订单、外卖员、美食信息、公告信息、配置文件”等作为实体,它们的局部E-R图,如图4-2所示:
图4-2局部E-R图
4.3.3数据库表结构设计
系统创建数据库和表之间关联,期间花费了不少时间,尽力把表格完善,更好的呈现出来,让表更加明了,更加清晰。系统在MySql的可视化软件Navicatpremium创建的数据表,简洁明了的设计让数据库的创建操作更加快捷,数据表的详细情况如下表所示。
表4-1:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 | ||
url | varchar | 500 | url |
表4-2:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
refid | bigint | 商品id | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 名称 | ||
picture | longtext | 4294967295 | 图片 | ||
type | varchar | 200 | 类型 | 1 | |
inteltype | varchar | 200 | 推荐类型 | ||
remark | varchar | 200 | 备注 |
表4-3:购物车表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
tablename | varchar | 200 | 商品表名 | meishixinxi | |
userid | bigint | 用户id | |||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | longtext | 4294967295 | 图片 | ||
buynumber | int | 购买数量 | |||
price | double | 单价 |
表4-4:收货订单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 订单编号 | ||
meishimingcheng | varchar | 200 | 美食名称 | ||
tupian | longtext | 4294967295 | 图片 | ||
meishifenlei | varchar | 200 | 美食分类 | ||
shuliang | int | 下单数量 | |||
waimaifeiyong | int | 外卖费用 | |||
xiadanshijian | varchar | 200 | 下单时间 | ||
zhanghao | varchar | 200 | 账号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
waimaizhanghao | varchar | 200 | 外卖账号 | ||
waimaiyuanming | varchar | 200 | 外卖员名 | ||
shouhuoshijian | datetime | 收货时间 | |||
beizhu | varchar | 200 | 备注 |
表4-5:地址
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
address | varchar | 200 | 地址 | ||
name | varchar | 200 | 收货人 | ||
phone | varchar | 200 | 电话 | ||
isdefault | varchar | 200 | 是否默认地址[是/否] |
表4-6:配送订单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 订单编号 | ||
meishimingcheng | varchar | 200 | 美食名称 | ||
tupian | longtext | 4294967295 | 图片 | ||
meishifenlei | varchar | 200 | 美食分类 | ||
shuliang | int | 下单数量 | |||
waimaifeiyong | int | 外卖费用 | |||
shouhuodizhi | varchar | 200 | 收货地址 | ||
zhanghao | varchar | 200 | 账号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
zhuangtai | varchar | 200 | 状态 | ||
jiedanshijian | datetime | 接单时间 | |||
waimaizhanghao | varchar | 200 | 外卖账号 | ||
waimaiyuanming | varchar | 200 | 外卖员名 | ||
ispay | varchar | 200 | 是否支付 | 未支付 |
表4-7:订单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
orderid | varchar | 200 | 订单编号 | ||
tablename | varchar | 200 | 商品表名 | meishixinxi | |
userid | bigint | 用户id | |||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | longtext | 4294967295 | 商品图片 | ||
buynumber | int | 购买数量 | |||
price | double | 价格 | 0 | ||
total | double | 总价格 | 0 | ||
type | int | 支付类型 | 1 | ||
status | varchar | 200 | 状态 | ||
address | varchar | 200 | 地址 | ||
tel | varchar | 200 | 电话 | ||
consignee | varchar | 200 | 收货人 | ||
logistics | longtext | 4294967295 | 物流 | ||
remark | varchar | 200 | 备注 | ||
sfsh | varchar | 200 | 是否审核 | ||
shhf | longtext | 4294967295 | 审核回复 | ||
role | varchar | 200 | 用户角色 |
表4-8:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhanghao | varchar | 200 | 账号 | ||
xingming | varchar | 200 | 姓名 | ||
mima | varchar | 200 | 密码 | ||
xingbie | varchar | 200 | 性别 | ||
shouji | varchar | 200 | 手机 | ||
touxiang | longtext | 4294967295 | 头像 | ||
money | double | 余额 | 0 |
表4-9:公告信息分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
typename | varchar | 200 | 分类名称 |
表4-10:外卖员
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
waimaizhanghao | varchar | 200 | 外卖账号 | ||
waimaiyuanming | varchar | 200 | 外卖员名 | ||
mima | varchar | 200 | 密码 | ||
xingbie | varchar | 200 | 性别 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
zhaopian | longtext | 4294967295 | 照片 | ||
money | double | 余额 | 0 |
表4-11:公告信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
typename | varchar | 200 | 分类名称 | ||
name | varchar | 200 | 发布人 | ||
headportrait | longtext | 4294967295 | 头像 | ||
clicknum | int | 点击次数 | 0 | ||
clicktime | datetime | 最近点击时间 | |||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 | ||
storeupnum | int | 收藏数 | 0 | ||
picture | longtext | 4294967295 | 图片 | ||
content | longtext | 4294967295 | 内容 |
表4-12:外卖订单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 订单编号 | ||
meishimingcheng | varchar | 200 | 美食名称 | ||
tupian | longtext | 4294967295 | 图片 | ||
meishifenlei | varchar | 200 | 美食分类 | ||
shuliang | int | 下单数量 | |||
dengjishijian | datetime | 登记时间 | |||
shouhuodizhi | varchar | 200 | 收货地址 | ||
zhanghao | varchar | 200 | 账号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
dingdanzhuangtai | varchar | 200 | 订单状态 | ||
waimianfeiyong | int | 外面费用 |
表4-13::留言反馈
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 留言人id | |||
username | varchar | 200 | 用户名 | ||
avatarurl | longtext | 4294967295 | 头像 | ||
content | longtext | 4294967295 | 留言内容 | ||
cpicture | longtext | 4294967295 | 留言图片 | ||
reply | longtext | 4294967295 | 回复内容 | ||
rpicture | longtext | 4294967295 | 回复图片 |
表4-14:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
image | varchar | 200 | 头像 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-15:美食信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
meishimingcheng | varchar | 200 | 美食名称 | ||
tupian | longtext | 4294967295 | 图片 | ||
meishifenlei | varchar | 200 | 美食分类 | ||
fenliang | varchar | 200 | 份量 | ||
caipinzhuliao | varchar | 200 | 菜品主料 | ||
caipinjieshao | longtext | 4294967295 | 菜品介绍 | ||
onelimittimes | int | 单限 | |||
alllimittimes | int | 库存 | |||
discussnum | int | 评论数 | 0 | ||
price | double | 价格 | |||
storeupnum | int | 收藏数 | 0 |
表4-16:美食分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
meishifenlei | varchar | 200 | 美食分类 |
表4-17:美食信息评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-18:token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
userid | bigint | 用户id | |||
username | varchar | 100 | 用户名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密码 | ||
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 过期时间 | CURRENT_TIMESTAMP |
第五章 系统功能实现
5.1系统前台功能实现
5.1.1首页功能实现
当用户访问系统的网址时,首先映入眼帘的是首页界面。在首页界面上,用户可以看到一个导航条,通过导航条可以跳转进入各个功能展示页面进行操作。系统首页界面如图5-1所示。
图5-1 系统首页界面
在注册流程中,用户在Vue前端填写必要信息(如用户名、密码等)并提交。前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。系统注册界面如图5-2所示:
图5-2 系统注册界面
美食信息:在美食信息页面的输入栏中输入美食名称或价格进行查询,可以查看到美食信息信息,并根据需要进行添加到购物车、购买、收藏或评论操作;美食信息页面如图5-3所示:
图5-3美食信息页面
公告信息:在公告信息页面的输入栏中输入标题进行查询公告详细信息,并根据需要进行点赞或收藏操作;公告信息页面如图5-4所示:
图5-4公告信息页面
5.1.2个人中心
用户注册登录进入系统,点击个人中心可以对个人中心、修改密码、外卖订单、配送订单、收货订单、我的订单、我的收藏等功能进行操作。个人中心页面如图5-5所示:
图5-5个人中心界面
5.2后台模板实现
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。如图5-6所示。
图5-6管理员登录界面
5.2.1管理员功能实现
管理员进入主页面,主要功能包括对用户、外卖员、美食分类、美食信息、外卖订单、配送订单、收货订单、留言反馈、系统管理、订单管理、用户资料等进行操作。管理员主页面如图5-7所示:
图5-7管理员主界面
用户管理功能在视图层(view层)进行交互,比如点击“搜索、新增或删除”按钮或填写用户表单。这些用户表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除用户信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便用户功能可以看到最新的信息或相应的操作反馈。如图5-8所示
图5-8用户界面
外卖员功能在视图层(view层)进行交互,比如点击“搜索、新增或删除”按钮或填写外卖员表单。这些外卖员表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除外卖员信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便外卖员功能可以看到最新的信息或相应的操作反馈。如图5-9所示
图5-9外卖员界面
美食分类管理功能在视图层(view层)进行交互,比如点击“搜索、新增或删除”按钮或填写美食分类表单。这些美食分类表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除美食分类信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便美食分类功能可以看到最新的信息或相应的操作反馈。如图5-10所示
图5-10美食分类界面
5.2.2外卖员功能实现
外卖员进入主页面,主要功能包括对外卖订单、配送订单、收货订单、用户资料等进行操作。外卖员主界面如图5-11示:
图5-11外卖员主界面
第六章 系统测试
6.1系统测试的目的
系统测试(System Testing)是为给客户提供测试产品或服务的质量信息而进行的检查。系统测试还可以提供客观和独立的系统评估,以使运营者能够了解和系统实施所面临的潜在问题。系统测试包括(软件的组件,系统组件)的执行,以评估系统属性。通常这些属性表明被测组件或系统满足系统预期开发需求,在各种预期的时间内,正确响应各种系统输入,同时可以满足分析设计时要求的程度。在预期的环境中运行,并达到用户期望的总体结果。经过一系列严格功能测试,以发现系统功能方面潜在的问题,保证系统的正常运行。
6.2软件测试过程
软件测试是软件设计的收尾阶段,它是贯穿整个设计过程的,是一个巨大的任务。软件测试需要对程序所有的部分进行测试。且对每个部分的测试都是不一样的,需要在进行测试之前将它们分为以下几个阶段:
(1)集成测试
此测试是建立在单元测试基础上的,对系统的各个功能模块所进行的测试。任何的软件设计都会有集成阶段,所以在软件测试过程中,集成测试是的必定部分。在集成测试的时候,由于是对各个模块之间进行测试,所以可能在测试的时候没有发现问题,但整体测试的时候会暴露出来。同时,在进行集成测试时要小心在模块连接时注意是否有数据丢失。还要注意虽然单个模块的错误可能很少,没有影响,但拼接起来可能就会对系统产生很大影响。
(2)系统测试
系统测试紧跟集成测试进行。系统测试将已通过集成测试的部分作为整个系统的一员。和电子设备的各个软件和硬件等一起,通过实际运行进行检测,在模拟的实际环境下检测是否有错误出现。系统测试需要与计划中的理想状况作比较,发现与预想中不一样的地方。通过设计者的分析后决定如何修改。在软件实际运行的过程中,会发生很多意想不到的错误,可能测试人员也没有办法在第一时间解决问题,所以,系统测试应尽可能在实际运行下进行测试,这样才能达到更好的测试目的。
(3)验收测试
验收测试是系统在设计完成发行前最后的测试,它需要了解用户的需求。并和他们一起完成测试,同时根据他们的需求进行针对性的修改,以成为可以更好同时满足用户需求的软件。
6.3测试用例
登录功能是用户进入系统的校验窗口,其中需要填写的信息包括用户账号和用户密码,下面将根据此功能设计具体测试用例来验证登录功能的实现与否。具体测试用例见表6-1。
表6-1 登录功能测试用例
用例序号 | 用例描述 | 测试步骤 | 期望输出 | 测试结果 |
Test_01 | 页面展示 | 浏览器输入登录地址 | 进入登录页面 | 成功 |
Test_02 | 账号非空检验 | 账号为空,点击“登录”按钮 | 提示“用户账号必须输入” | 成功 |
Test_03 | 账号存在性检验 | 输入不存在的账号 | 提示“输入的账号不存在” | 成功 |
Test_04 | 密码非空检验 | 输入正确的账号,密码为空 | 提示“用户密码必须输入” | 成功 |
Test_05 | 密码正确性检验 | 输入正确的账号和不正确的密码 | 提示“输入的密码错误” | 成功 |
Test_06 | 登录成功检验 | 输入正确的账号和密码 | 登录成功,进入首页 | 成功 |
系统阐述的是使用新食代外卖点餐管理系统的设计与开发,在此系统的开发过程中应用到Java、MySql技术和面向接口编程。在系统的开发中应用B/S结构设计开发实现,让系统之间逻辑分层清晰明确使得系统更加的合理可靠,更加坚固的保证了项目的开发健壮性和准确性,更好的服务应用于用户。
这个系统的开发使我能够结合我以前的知识集成和改进它们。毕设就是检验我们对所学内容运用程度的时刻,对所学内容运用情况进行巩固与提高。本系统检验了自己的IT知识,同时也检验了自己运用相关知识去解决实际问题,使自己得到了一个锻炼与提升编程技能的机会。在设计上我遇到了很多困难,主要原因是我所拥有的知识不是很扎实,所以只靠几本书里的知识是远远不够的!自己经过实践取得了一些实践经验。知识不在于理解,必须学会运用,并且使之反映到实际生活中去,才是学知识的根本目的。面对困难,我学着怎样去处理,怎样去发现并分析有关的资料。我参加过一个小型公司的毕业设计,是一个典型的以用户为中心的小型项目。在这个团队里,每个人都有自己独立工作的空间,他们之间互相协作。团队意识很重要。虽然碰到很多难题,但是毕业项目经过不断的调试终于顺利完成。此次实践使我在实际应用中有所提高,同时极大地增强了大脑的工作能力,使我在探索中获得快乐,在成功中获得幸福,是我莫大的财富。后期也将继续对系统做出进一步的优化升级。
(1) 完善操作逻辑,让系统功能更加合理。
(2) 补充完善小功能的应用,使系统更加完整实用。
(3) 精简美化系统界面,提高系统观赏度。
新食代外卖点餐管理系统的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。同时,学校这次期间对我的帮助真的非常的大,身边的老师与同学都十分的热情,我有很多不懂的问题都是身边的老师与同学指导我的,可以说我的成长和进步是离不开学校的老师与同学,在这段期间我的成绩技术也是比以往进步的更加迅速。这四年的校园生活让我受益匪浅,终身难忘。
首先要感谢我的指导老师。她是一位发自内心希望我们这些学生成为优秀的人的老师。我还记得他在课间时间挨个问我们毕业后的想法,推荐我们课外书籍清单,鼓励我们学习课外知识的场景。他又很有责任感,在指导我们完成毕业设计和论文的同时,还给我们讲一些需要注意的事项,真正做到了教书育人。我每一回都因为实际操作中遇到苦难而向老师发消息求助时,老师总是秒回信息,事无巨细地解释清楚,而且同步发到同学群中,对于别的同学来说也是很大的帮助。或许对于一位老师来讲,学生有所成是他们的期望。那我希望这篇论文不是我的最后一篇论文。
其次感谢我的室友。虽然前几年的生活磕磕绊绊,小矛盾不断,但是最近一年我们都平静了下来。也很庆幸,我们在这段焦虑有压力的日子里几乎没有摩擦,而是相互鼓励,谢谢你们。
还有与我密不可分的亲人。即使他们当我因为压力而发脾气时,他们也只是告诉我:“要冷静”。在很多我认为自己撑不过去的时候,是他们的安慰与默默支持让我觉得自己可以。我希望我今后可以继续努力,去成为他们心中的那个我。
所以我会格外的珍惜这次不可多得的历练,在今后的工作生活的,我会继续努力,保持学习,保证自己思想的每日提升,学校带给我的东西很多很多,这些东西是我今后继续前行的养分,真的非常感谢,能够遇到这么多的人。
最后,我向母校老师们再次表示衷心的感谢和美好的祝福,感谢你们的辛勤栽培,祝老师们幸福健康!
参考文献
[1]付恩狄,姚明亮,梁宇柔等.基于JAVA技术的设备绝缘状态自动化监控方法[J].电气自动化,2023,45(02):36-38+41.
[2]徐海燕.JAVA编程在计算机应用软件中的应用特征与技术[J].电子技术与软件工程,2023(03):29-32.
[3]任浩然,刘丹,景永强.JAVA在计算机软件开发中的应用研究[J].信息记录材料,2022,23(11):83-85.
[4]徐鹏涛. 基于Vue的前端开发框架的设计与实现[D]. 山东: 山东大学, 2020.
[5]陈倩怡,何军.Vue+Springboot+MyBatis技术应用解析[J].电脑编程技巧与维护,2020(01):14-15+28.
[6]熊永平.基于SpringBoot框架应用开发技术的分析与研究[J].电脑知识与技术,2022,15(36):76-77.
[7]郑自国,邹丰义.Java案例开发集锦[M].北京:电子工业出版社,2019.2
[8]张孝祥. 深入Java Web开发内幕——核心基础[M]. 北京:电子工业出版社. 2020
[9]李安渝. Web Services技术与实现[M]. 北京:国防工业出版社,2020
[10]孙卫琴,李洪成.Tomcat 与 Java Web 开发技术详解[M].电子工业出版社,2020.6:1-205
[11] 曹广鑫 编著.JSP数据库项目开发宝典[M].北京:电子工业出版社,2020
[12] 周旌恒.JSP应用开发详解(第三版)[M].北京:电子工业出版社,2020
[13]Janki Bhimani,Zhengyu Yang,Ningfang Mi,Jingpei Yang,Manu Awasthi,Rajinikanth Pandurangan,Vijay Balakrishnan. Docker Container Scheduler for I/O IntensiveApplications Running on NVMe SSDs.[J]. IEEE Trans. Multi-Scale ComputingSystems,2018,4(3):42-47.
[14]Campesato Oswald. Java Basics Using ChatGPT/GPT-4[M]. Mercury Learning and Information: 2023-12-26.