基于Java的网上订餐管理系统的设计与实现

摘要

随着科技的快速发展和人们生活节奏的加快,网上订餐已经成为一种常见的生活方式。传统的电话订餐方式容易出现沟通误差,订单录入困难,容易造成订单混乱、延误等问题。通过网上订餐管理系统,商家可以实时更新菜单,用户可以清晰浏览菜品、价格和促销信息,避免了不必要的沟通环节,大大提升了订餐效率。网上订餐系统可以提供用户在任何时间、任何地点订餐,避免了传统电话订餐需要等待和人工沟通的不便。用户可以使用手机、电脑等设备轻松浏览菜单、下订单、支付,提供了更加便捷的订餐体验。
该系统主要使用Java语言,技术框架选择SSM框架,数据库选择MySQL数据库进行开发,前端技术选择HTML。主要功能为用户登录,菜品管理,配送员管理,订单分配管理,点餐中心,个人中心,用户管理。管理员可以后台增加菜品信息,查看配送订单,分配订单给配送员。而用户可以通过登录本系统,进行订餐等。与其他订餐系统相比,本系统设计能够更加清晰直观的满足用户的需求。

关键词:网上订餐管理系统;Java;MySQL;SSM

Abstract

With the rapid development of technology and the acceleration of people’s pace of life, online ordering has become a common way of life. The traditional telephone ordering method is prone to communication errors, difficulty in order entry, and easy to cause problems such as order confusion and delay. Through the online ordering management system, merchants can update menus in real-time, and users can clearly browse dishes, prices, and promotional information, avoiding unnecessary communication links and greatly improving ordering efficiency. The online ordering system can provide users with the ability to book meals at any time and place, avoiding the inconvenience of waiting and manual communication required for traditional telephone ordering. Users can easily browse menus, place orders, and make payments using devices such as mobile phones and computers, providing a more convenient ordering experience.
The system mainly uses Java language, with SSM framework database and MySQL database for development as the technical framework, and HTML as the front-end technology. The main functions include user login, dish management, deliveryman management, order allocation management, ordering center, personal center, and user management. Administrators can add dish information in the background, view delivery orders, and assign orders to delivery personnel. Users can log in to this system and make reservations. Compared with other ordering systems, this system design can more clearly and intuitively meet the needs of users.

Keywords: Online ordering management system; Java; MySQL; SSM
目录
摘要 I
Abstract II
第1章 绪论 1
1.1 课题开发的背景和现状 1
1.2 课题开发的意义 1
第2章 相关技术介绍 3
2.1 Java语言 3
2.2 SSM框架 3
2.3 JDBC技术 4
2.4 HTML 4
2.5 MySQL数据库 4
2.6 本章小结 5
第3章 需求分析 6
3.1 编程与运行环境 6
3.1.1 系统运行环境 6
3.1.2 编程环境 6
3.2 可行性分析 6
3.2.1 技术可行性 7
3.2.2 经济可行性 7
3.2.3 操作可行性 7
3.3 系统业务功能需求分析 8
3.3.1 普通用户功能需求分析 8
3.3.2 管理员功能需求分析 9
3.4 本章小结 11
第4章 总体设计 12
4.1 系统总体结构设计 12
4.2 系统功能结构设计 12
4.2.1 登录注册模块设计 13
4.2.2 菜品管理模块设计 13
4.2.3 订单分配管理模块设计 13
4.2.4 我的订单管理模块设计 14
4.2.5 点餐中心管理模块设计 14
4.2.6 配送管理模块设计 14
4.2.7 用户管理模块设计 14
4.3 数据库设计 15
4.3.1 概念模型设计 15
4.3.2 逻辑结构设计 16
4.4 本章小结 18
第5章 详细设计及实现 19
5.1 登录注册模块实现 19
5.2 菜品管理模块实现 20
5.3 订单分配管理模块实现 22
5.4 我的订单管理模块实现 23
5.5 点餐中心管理模块实现 25
5.6 配送管理模块实现 26
5.7 用户管理模块实现 27
5.8 本章小结 28
第6章 系统测试 29
6.1 测试原则 29
6.2 系统测试 29
6.2.1 登录模块测试 30
6.2.2 菜品管理模块测试 30
6.2.3 订单分配管理模块测试 31
6.2.4 我的订单管理模块测试 32
6.2.5 点餐中心管理模块测试 33
6.2.6 配送管理模块测试 34
6.3 本章小结 34
结论 35
参考文献 36
致谢 38

第1章 绪论
1.1 课题开发的背景和现状
随着社会的发展和人们生活方式的改变,网上订餐已经成为了一种主流的消费方式。通过网上订餐平台,商家可以将自己的餐厅和菜品展示给更多的潜在顾客,增加曝光率。顾客可以通过浏览菜单、餐厅介绍和用户评价等信息,选择适合自己口味的餐厅,提高了商家的竞争力。网上订餐管理系统提供了便捷的订餐方式,顾客可以在任何时间、任何地点轻松下单。系统提供了菜单浏览、多种支付方式、配送选择等功能,方便顾客选择和支付。此外,系统还可以提供顾客评价和反馈功能,商家可以通过这些反馈改进菜品和服务,提升顾客体验。可以实时获取订单数据、用户行为等信息。商家可以基于这些数据进行分析和挖掘,深入了解顾客需求和消费习惯,制定更加精准的营销策略。同时,系统也可以提供促销活动、优惠券等功能,吸引顾客增加消费。采用网上订餐方式可以减少纸质菜单和订单的使用,有利于资源节约和环境保护。同时,网上支付和电子发票等功能也减少了纸质交易凭证的消耗。总的来说,设计和实现一个网上订餐管理系统可以提升商家的竞争力,提高顾客体验,简化管理流程,增加营销效果,并且对资源和环境也有一定的积极影响。这是一个与时代发展和消费需求相适应的选题,具有广阔的应用前景和商业价值 [1]。
1.2 课题开发的意义
网上订餐管理系统为餐饮行业带来了新的发展机遇和创新空间。通过系统的搭建和优化,餐饮企业可以提供更加精准的服务和个性化的推荐,满足不同顾客的需求。同时,系统还可以促进餐饮企业之间的竞争和合作,推动行业的发展和创新。能够收集并分析大量的订单数据,帮助商家了解销售情况、菜品热度、顾客偏好等信息。通过对数据的分析,商家可以进行市场调研和经营决策,制定更加有效的营销策略,提高销售额和盈利能力,网上订餐成为了一种常见的生活方式。网上订餐管理系统为用户提供了轻松、便捷的订餐方式,可以随时随地进行菜品浏览、下单和支付,省去了传统电话订餐中等待和沟通的不便。网上订餐管理系统具有提供便捷的订餐方式、提升商家效率和服务水平、数据统计与分析、优化资源利用和环境保护以及促进餐饮行业发展等多重意义。它对于用户和商家来说都具有重要的实用价值和商业意义。

第2章 相关技术介绍
本次毕业设计的网上订餐管理系统主要基于Java语言来实现的。相关技术还有SSM、JDBC、HTML、MySQL等。本章主要对设计所要使用的开发工具及相关技术进行介绍。
2.1 Java语言
Java是一种跨平台的、面向对象的编程语言,由Sun Microsystems(现在为Oracle公司)于1995年所推出。Java语言具有简单、可靠、安全、可移植、高性能等特点,被广泛应用于各个领域,如企业级应用、移动应用、桌面应用、嵌入式系统等。Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念和特性。面向对象的编程风格使得Java的代码具有更好的可维护性、扩展性和复用性。Java拥有庞大而活跃的开源社区,提供了大量的第三方库和框架,可以帮助开发者快速构建各种类型的应用,提高开发效率[2]。
2.2 SSM框架
SSM框架是一种基于Java语言的开发框架,它由Spring、SpringMVC和MyBatis这三个开源框架组合而成,用于帮助开发者构建Web应用程序。每个框架在整个开发过程中扮演着不同的角色[3]。
Spring是一个轻量级的Java开源框架,它提供了诸多功能和模块,如依赖注入(DI)、面向切面编程(AOP)、事务管理等。Spring的主要目标是简化Java开发,提高代码的松散耦合性,使得应用程序易于扩展和维护。
SpringMVC是Spring框架的一个模块,是基于MVC(Model-View-Controller)设计模式的Web框架。它负责处理请求、响应和视图渲染等等,通过将请求映射到相应的处理方法,实现前端和后端的解耦。
MyBatis是一个持久层框架,它通过提供SQL映射关系配置文件和API,将Java对象与数据库记录进行映射。MyBatis简化了数据库操作相关的代码,提供了强大的SQL查询和事务管理能力。
2.3 JDBC技术
JDBC支持批处理操作,可以一次性执行多个SQL语句,减少与数据库的通信次数,提高性能。JDBC可以通过Transaction管理来确保数据库操作的原子性、一致性、隔离性和持久性。开发人员可以使用Connection对象的事务管理方法(如commit、rollback)来控制事务的提交或回滚。JDBC技术使得Java开发者可以通过标准化的方式与各种不同类型的数据库进行交互,实现数据的存储、检索和处理等功能。同时,JDBC的开放性也使得它成为其他高级数据库访问框架(如Hibernate、Spring JDBC)的基础[5]。
2.4 HTML
HTML(Hypertext Markup Language)是一种用于创建网页的标记语言。它描述了网页的结构和内容,由一系列的HTML标签组成。通过使用这些标签,开发者可以将文本、图像、链接、表格、视频等内容展示在网页上,实现丰富的页面布局和交互效果。HTML标签可以使用CSS(Cascading Style Sheets)规则进行样式设置,如字体、颜色、背景等。样式信息可以用内联样式(style属性)、内部样式表(在head标签内使用style标签)或外部样式表(作为外部CSS文件链接)进行设置。
2.5 MySQL数据库
MySQL是一个流行的关系型数据库管理系统(RDBMS),它是由瑞典公司MySQL AB开发的,并于2008年被Sun Microsystems收购,2010年Sun又被Oracle收购,目前由Oracle公司维护和开发。MySQL是一个开源的数据库管理系统,遵循General Public License(GPL)开源许可证。这意味着用户可以免费获取、使用、修改和分发MySQL。除了以上特点外,MySQL还有一个庞大的社区支持,提供了大量的文档、论坛和教程,帮助开发者学习和解决问题。MySQL被广泛应用于各种规模的应用程序,从个人网站到大型企业级系统都可以使用MySQL来存储和管理数据[6]。
2.6 本章小结
在这一章中,主要对软件开发平台、开发技术的特征做了重点阐述,同时也对该系统所采用的技术及其实现方式做了详尽的阐述。通过对 Java技术、 SSM技术、 MySQL数据库的特性等方面的介绍,使读者能更加全面地了解该软件。
第3章 需求分析
在当今的互联网行业,合理地分析用户的需求,评估其是否可行,是每个企业和程序设计人员都需要具有的素质。该流程不仅能帮助企业确定需求,还能确保项目的成功实施。
3.1 编程与运行环境
3.1.1 系统运行环境
利用 Java语言开发了网上订餐管理系统,选用了 HTML作为前端技术, MySQL作为数据库。本课题以 Java代码为基础,按照现有的 JavaEE标准,选取了 SSM框架作为技术框架。
3.1.2 编程环境
网上订餐管理系统采用idea、MySQL数据库、Navicat等开发工具,采用Java语言、SSM框架进行开发。
3.2 可行性分析
网上订餐管理系统需要使用相应的技术来进行开发和运行,包括前端开发、后端开发、数据库管理等。在技术可行性分析中,需要评估是否有足够的技术知识和能力来完成系统的开发和维护,同时考虑使用现有的技术框架和工具是否能够满足系统所需的功能和性能要求。开发和维护网上订餐管理系统需要一定的成本投入,包括人力资源、硬件设备、软件许可等。在经济可行性分析中,需要评估系统的预期收益和成本,并对成本回报进行评估。可以考虑系统的潜在用户规模、预计的订单量、市场竞争等因素来评估系统的盈利能力和可持续性。
3.2.1 技术可行性
SSM框架提供了良好的可扩展性,支持模块化的开发和插件机制。通过使用Spring的IoC容器和AOP特性,可以方便地集成其他技术和组件。同时,MyBatis的灵活性也允许开发者根据需求进行定制化开发。SSM框架与其他技术和组件的兼容性较好,可以与各种数据库、前端框架、缓存系统等集成。这样开发者可以依据项目需求选择最适合的技术组合,提供定制化的解决方案。SSM框架是相对成熟和稳定的技术架构,经过多年的发展和广泛应用。Spring作为一个轻量级的IoC(Inverse of Control)和AOP(Aspect Oriented Programming)容器,提供了丰富的特性和模块,使开发更加灵活和高效。Spring MVC作为一个MVC(Model-View-Controller)框架,提供了良好的请求处理和视图渲染机制。MyBatis是一个简化数据库操作的持久层框架,通过XML或注解配置来与数据库进行交互。综上所述开发网上订餐管理系统是可行的,可以提供稳定、高效、可扩展的系统解决方案[7]。
3.2.2 经济可行性
开发和维护网上订餐管理系统需要一定的成本投入,包括人力资源、硬件设备、软件许可等。需要评估开发团队所需的人员数量和资质要求,并计算相关的人力成本。此外,还需要考虑购买和维护服务器、数据库、域名和SSL证书等硬件和软件成本。需要对网上订餐市场的需求进行调研和预测,包括用户的数量、消费习惯以及竞争对手的情况等。了解潜在用户规模和市场竞争状况可以帮助评估系统的市场份额和盈利潜力。除了考虑短期内的盈利能力外,还需要评估系统的可持续性。这包括考虑市场的发展趋势、竞争对手的动向以及用户的满意度和忠诚度等因素。通过保持市场竞争力、持续改善用户体验和提供差异化的服务,可以增加系统的可持续性。
3.2.3 操作可行性
网上订餐管理系统易于使用,用户界面设计应该简洁明了,操作流程应该直观,用户可以快速上手并进行操作。提供合适的指引和帮助文档,以便用户能够顺利完成各项操作。网上订餐管理系统具备稳定的运行能力,能够处理并响应各类请求。系统应该具备高可用性,即能够保持稳定运行,并能够处理大量并发用户的请求。网上订餐管理系统具备完善的数据管理功能,包括订单管理、菜单管理、顾客管理等。系统应该能够准确地记录和追踪订单状态,并能够方便地检索和分析订单数据。同时,需要确保数据的安全性和隐私保护。系统具备用户友好性、系统稳定性、数据管理能力、运营管理功能以及良好的技术支持和培训支持,那么系统在操作层面上是可行的。综上所述网上订餐管理系统在操作上是可行的[8]。
3.3 系统业务功能需求分析
3.3.1 普通用户功能需求分析
普通用户功能包括:登录、我的订单、点餐中心、个人中心、我的投诉、我的评价。

  1. 登录注册
    用户首先需要使用正确的用户名和密码登录网上订餐管理系统,没有账号的新用户可以申请注册账号。
  2. 我的订单
    用户可以在“我的订单”页面查看到所有已下的订单。订单列表通常显示订单号、下单时间、订单状态、订单金额等信息。用户可以通过订单列表快速了解自己的订单情况。
  3. 点餐中心
    点餐中心功能为用户提供了方便快捷地选择和下单菜品的能力。用户可以通过浏览菜单、查看菜品详情、管理购物车和选择支付方式来完成点餐流程。这样的功能能够提升用户体验。
  4. 个人中心
    用户可以在个人中心页面管理自己的个人信息。这包括用户名、头像、联系方式、配送地址等。用户可以更新或修改这些信息,以保持个人数据的准确性和完整性。
  5. 我的投诉
    用户可以在“我的投诉”页面或相关界面中提交投诉。投诉通常需要填写相关的信息,如投诉类型、具体问题、订单号等。用户可以详细描述投诉内容等证据。
  6. 我的评价
    用户可以在“我的评价”页面或相关界面中提交评价。评价通常需要选择评价的对象,如餐厅、菜品或配送服务等,并填写评价内容。用户可以给出文字评价、星级评价或是加上一些具体评论来表达自己的意见和感受。

普通用户功能用例图如图3-1所示。
在这里插入图片描述

图3-1 普通用户功能用例图
3.3.2 管理员功能需求分析
管理员功能包括:管理员登录、用户管理、菜品管理、订单分配管理、投诉管理、订单管理。

  1. 管理员登录
    管理员可以使用自己的帐户和密码进行登录和退出。
  2. 用户管理
    管理员可以管理用户的账户信息。这包括查看用户列表、编辑用户信息、禁用或删除账户等。管理员可以根据需要修改用户的个人信息,如用户名、联系方式、配送地址等。
  3. 菜品管理
    管理员可以在系统中添加新的菜品,并对已有菜品进行编辑。添加菜品时,管理员可以填写菜品的名称、描述、价格、分类等信息,并上传菜品的图片。编辑功能允许管理员对已有菜品的信息进行修改,如更新价格、修改描述等。管理员可以为菜品设置分类和标签,以便用户浏览和搜索。菜品分类可以按照菜系、主食、饮品等进行划分,方便用户按照自己的喜好进行选择。菜品标签可以用于标示特殊要求或食材,如素食、辣味、无麸质等。。
  4. 订单分配管理
    管理员或配送员可以接收订单并进行分配。订单可以根据不同的策略进行分配,如按照区域、距离或配送员的负载等进行分配,以确保订单能够及时配送。在订单分配后,管理员或配送员可以更新订单的状态。这包括订单的接收、配送中、已送达等状态。通过实时更新订单状态,可以让用户了解订单的进展,并提供准确的配送信息。
  5. 投诉管理
    通过投诉管理功能,管理员可以接收、记录、分类和处理用户的投诉,有效解决用户的问题并提供满意的回复。这有助于保持用户对系统的信任和满意度,同时也为系统的改进提供重要的参考和反馈。
  6. 订单管理
    管理员可以查看订单的详细信息,包括订单编号、下单时间、支付状态、配送地址、联系方式、菜品及数量、价格等。这些详细信息可以帮助管理员核对订单的准确性,并为后续操作提供必要的信息。
    管理员功能用例图如图3-2所示。
    在这里插入图片描述

图3-2 管理员主要功能用例图
3.4 本章小结
本章首先介绍了系统需求分析的重要性和作用,在系统需求分析方面,对网上订餐管理系统的功能需求进行了详细梳理和描述。通过与相关利益相关方的沟通和了解,确定了系统的基本功能模块,如用户注册和登录、菜单浏览和订购、订单管理和配送等。同时,也考虑到了系统的扩展性和灵活性,使其能够适应未来的需求变化。在可行性分析方面,评估了基于Java的网上订餐管理系统的技术可行性、经济可行性和操作可行性。从技术可行性角度看,Java是一种成熟、稳定且广泛应用的编程语言,具备处理复杂业务逻辑和高并发访问的能力,因此选择Java开发是可行的。在经济可行性方面,进行了成本估算和效益分析。考虑到系统开发、维护和运营的成本,确定了项目的投资回报期和预期效益,这有助于决策者评估项目的经济可行性,这些分析有助于明确系统的需求,确定开发的方向和目标,并评估系统的可行性,为后续章节的系统设计和实施奠定了基础[9]。
第4章 总体设计
4.1 系统总体结构设计
本系统采用了 B/S架构、 MVC设计思想,主要分为用户层、逻辑层和数据库层。用户界面层,用于展示界面。逻辑层,以逻辑为核心主要处理业务逻辑。数据库层主要是对数据库的CRUD [10]。
4.2 系统功能结构设计
在对该系统进行需求分析的基础上,提出了菜品管理,订单分配管理,我的订单管理,点餐中心管理,配送管理,用户管理等模块。总体结构图如图4-1所示。
在这里插入图片描述

图4-1 系统设计总体结构图
4.2.1 登录注册模块设计
设计一个简洁直观的登录页面,包括用户名、密码和登录按钮等输入字段和按钮态。提供一个注册链接,引导用户前往注册页面进行账号创建。通过使用一个会话管理机制,将用户的登录状态保存在服务器端,以便在用户的操作期间跟踪和验证其身份。为了保护用户密码的安全性,应该对用户密码进行加密存储,如采用哈希算法进行密码加密并保存哈希值。
4.2.2 菜品管理模块设计
创建一个页面展示所有菜品的列表,包括每个菜品的名称、描述、价格等信息。允许管理员通过一个表单页面添加新的菜品。在表单中,管理员可以填写菜品的名称、描述、价格、分类和库存等信息,并上传菜品的图片。允许管理员对已有的菜品进行编辑。管理员可以进入菜品的编辑页面,更新菜品的名称、描述、价格、分类和库存等信息。允许管理员添加、编辑和删除菜品的分类信息。这样可以帮助管理员对菜品进行分类管理。在添加和编辑菜品的过程中,对管理员输入的数据进行验证,确保输入的数据符合要求。如果输入的数据有误,及时给出相应的错误提示。
4.2.3 订单分配管理模块设计
为每个订单提供一个详情页面,显示订单的详细信息,如顾客信息、菜品信息、订单状态和配送员信息等。允许管理员从待分配的订单列表中选择一个订单,并从配送员列表中选择一个配送员,将订单分配给该配送员。在完成分配操作后,更新订单中的配送员信息和订单状态等。管理员可以查看所有订单的列表,并查看每个订单的详细信息。管理员可以对订单进行状态更新、取消订单等操作。在订单分配过程中,对管理员选择的订单和配送员进行验证,确保选择的订单和配送员符合要求。如果选择的订单或配送员有误,应及时给出相应的错误提示。
4.2.4 我的订单管理模块设计
订单管理模块是网上订餐管理系统中的一个重要功能模块,它允许用户管理和查看自己的订单。用户通过选择菜品和填写配送地址等信息下单,生成一个新的订单并存入数据库。用户查询自己的订单列表,按照订单的状态进行筛选,以方便用户查看订单的不同状态。用户对已完成的订单进行评价,对餐品的味道、配送服务等进行评分和留言。也可以对不满意的订单对配送员或者商家进行投诉。
4.2.5 点餐中心管理模块设计
它允许用户浏览菜单、选择菜品,并提交订单进行下单。每个菜品通常会显示菜品名称、简要描述、价格和配图等信息,以便用户了解菜品的特点和价格。通常用户可以通过勾选或点击菜品添加按钮的方式将菜品添加到购物车。在下单页面,用户可以查看所选择的菜品列表、总价和配送地址等信息,并进行相应的编辑和修改。
4.2.6 配送管理模块设计
提供配送员信息的管理功能,包括添加、编辑和删除配送员的信息。当订单生成后,管理员可以将订单分配给空闲的配送员。将订单与配送员的信息关联起来,确保订单能够及时送达。配送员接受订单后,管理员可以在系统中更新订单的配送状态。配送状态可以包括配送中、已送达等。
4.2.7 用户管理模块设计
在网络订餐系统中,用户管理模块是一个不可或缺的功能,它主要负责对用户的信息进行管理。用户名,密码,名字,联系方式,都是要被记录下来的。实现了用户信息的添加,修改,删除等功能。
4.3 数据库设计
4.3.1 概念模型设计
在建立数据结构的过程中,主要是对实体、属性及其之间的关系进行描述。本论文采用解析学的原理和方法,对网上订餐管理系统的需求进行了深入的研究,然后对其进行了需求分析和抽取[11],从而得到系统的E-R图,系统E-R图如图4-2所示。
在这里插入图片描述

图4-2系统E-R图
4.3.2 逻辑结构设计
基于数据库的分析和概念结构的设计,将对应的数据库的概念模型转换成了逻辑结构,也就是设计了数据库的结构[12]。本系统中主要MySQL数据表的结构设计如下。

  1. 用户信息表
    用户信息表保存着网上订餐管理系统的所有的用户信息,其中uid是用户id,类型为int,数据为主键自增,adress是地址,类型为varchar,数据长度为50,不能为空, phone是电话号,类型为varchar,数据长度为50,不能为空, zhanghao是账号,类型为varchar,数据长度为50,不能为空, mima是密码,类型为varchar,数据长度为100,不能为空,用户信息表如表4-1所示。
    表4-1 用户信息表
    字段名 数据类型 长度 是否为主外键 能否为空
    uid int 10 是 否
    adress varchar 150 否 否
    mima
    zhanghao varchar
    varchar 150
    150 否
    否 否

    Phone varchar 150 否 否
  2. 菜品信息表
    菜品信息表主要存放的是网上订餐系统中所有菜系详细信息,其中id是默认id,数据类型为int,为主键自增,type为分类,数据类型为int,数据长度为150,不能为空,name为菜品名称,数据类型为varchar,数据长度为150,不能为空, photo为图片,数据类型为blod,不能为空,detail为菜品详情,数据类型为varchar,数据长度为150,不能为空。price为价格,数据类型为decimal,数据长度为150,不能为空。菜品信息如表4-2所示。

表4-2 菜品信息表
字段名 数据类型 长度 是否为主外键 能否为空
Id int 10 是 否
type int 150 否 否
name varchar 150 否 否
photo blod 150 否 否
Detail
price varchar
decimal 100
100 否
否 否

3. 订单信息表
订单信息表是用来存储所有用户的下单情况的。其中pid是默认id,数据类型为int,为主键,number为单号,数据类型为varchar,数据长度为100,不能为空,nid为菜品id,数据类型为int,数据长度为100,不能为空,time为下单时间,数据类型为time,数据长度为11,不能为空。订单信息表如表4-3所示。
表4-3 订单信息表
字段名 数据类型 长度 是否为主外键 能否为空
pid int 10 是 否
number varchar 150 否 否
nid int 150 否 否
time time 11 否 否
4. 配送员信息表
配送员信息表是用来存储所有配送员信息的。其中id是默认id,数据类型为int,为主键自增,name为姓名,数据类型为varchar,数据长度为150,不能为空,num为总单量,数据类型为int,不能为空,phone为手机号,数据类型为varchar,数据长度为11,不能为空。配送员信息表如表4-4所示。

表4-4 配送员信息表
字段名 数据类型 长度 是否为主外键 能否为空
Id int 10 是 否
name varchar 150 否 否
num int 150 否 否
phone varchar 11 否 否
5. 管理员表
管理员信息表存储着后台网上订餐管理员的信息。其中aid是主键,数据类型为int,为主键,name为管理员姓名,数据类型为varchar,数据长度为100,不能为空,mima为密码,数据类型为varchar,数据长度为100,不能为空,zhanghao为账号,数据类型为varchar,数据长度为100,不能为空,管理员表如表4-6所示。

4.4 本章小结
在本章中,对系统进行了整体设计,包括系统的整体结构和各个功能模块的设计。首先,设计了系统的整体架构,确定了前端界面、后端服务和数据库之间的交互关系。这样的架构能够实现用户与系统的高效交互,并保证数据的安全性和一致性。通过本章的总体设计,为网上订餐管理系统的实现和开发奠定了基础,确保系统具备必要的功能和性能。下一步,将开始进行系统的具体实现和编码工作,以进一步完善系统并满足用户的需求。

第5章 详细设计及实现
5.1 登录注册模块实现
设计用户界面,包括用户名、密码和其它必需的注册信息的输入框,以及登录和注册按钮。获取用户在注册界面输入的信息,并进行合法性验证,例如检查用户名是否已被使用、密码是否符合安全要求等。如果验证通过,将用户输入的信息保存到数据库中,以便后续的登录验证和用户信息管理。在后端服务中,使用输入的用户名和密码查询数据库,验证用户的身份是否正确。如果验证成功,则将用户信息保存在会话中或生成一个访问令牌,以便后续的页面访问验证。如果验证失败,返回登录界面,并显示错误信息,提示用户重新输入用户名和密码。在登录成功后,将用户导航到主页面或指定的目标页面。
系统登录流程图如图5-1所示。
在这里插入图片描述

图5-1 系统登录流程图
本系统的登录页面,集成在UserController.java文件中,关于登录的主要代码如下:
@ResponseBody
@RequestMapping(“/login”)
public String login(String username, String password, HttpSession session){
Map<String, Object> map = userService.login(username, password, session);
return JSON.toJSONString(map);
}
@RequestMapping(“/exit”)
public String exit(HttpSession session){
userService.exit(session);
return “redirect:/login.html”;
}
登录界面效果图如图5-2所示。
在这里插入图片描述

图5-2 登录界面效果图
5.2 菜品管理模块实现
在实现菜品管理模块时,需要考虑数据的增删改查操作,对用户输入进行合法性验证,以及菜品数据的展示和搜索功能。同时,要确保数据的安全性和一致性,可以使用事务处理和权限控制等方式来管理数据操作。
主要的后端代码如下:
@RequestMapping(value=“/findFoodType”,produces= “application/json;charset=utf-8”)
public String findFood(){
List foodTypeList = foodService.findFoodType();
return JSON.toJSONString(foodTypeList);
}
“application/json;charset=utf-8”)
public String findOnshelfFoodByType(Long typeId){
foodService.findOnshelfFoodByType(typeId);
return JSON.toJSONString(onshelfFoodByType);
}
@RequestMapping(value = “/findFoodInfo”, produces = “application/json;charset=utf-8”)
public String findFoodInfoById(Long foodId){
Map<String, Object> foodInfo = foodService.findFoodInfoById(foodId);
return JSON.toJSONString(foodInfo);
}
菜品管理界面效果图如图5-3所示。
在这里插入图片描述

图5-3 菜品管理界面效果图
5.3 订单分配管理模块实现
实现订单分配,管理员后台可以操作将订单分配个哪个配送员。将订单分配给具体的配送员或处理人员。可以根据配送员的工作区域、工作时间和工作负载等因素进行分配。分配好后会记录订单,记录订单的分配信息,包括订单号、配送员姓名、分配时间等。可以设计一个订单分配记录表,保存分配记录。
主要代码如下:
@RequestMapping(“/allocationList”)
public String findAllCookingOrder(OrderVo vo){
orderService.findAllCookingOrder(vo);
return JSON.toJSONString(allCookingOrder);
}
@RequestMapping(“/findOrderDetailByOrderId”)
public String findOrderDetailByOrderId(String orderId){
orderService.findOrderDetailByOrderId(orderId);
return JSON.toJSONString(orderDetailList);
}
订单分配管理界面效果图如图5-4所示,订单分配界面效果图如图5-5所示。
在这里插入图片描述

图5-4 订单分配管理界面效果图
在这里插入图片描述

图5-5 订单分配管理界面效果图
5.4 我的订单管理模块实现
用户可以点击我的订单按钮显示单个订单的详细信息,包括订单号、顾客信息、菜品列表、总金额等。用户可以通过订单详情页面查看订单的详细信息。用户可以在订单详情页里对订单进行投诉和评价。
主要代码如下:
@RequestMapping(“/generateOrder”)
public String generateOrder(@RequestParam Map<String, Object> map, HttpSession session){
Map<String, Object> map1 = orderService.generateOrder(map, session);
return JSON.toJSONString(map1);
}
@RequestMapping(“/findOrderListByUserId”)
public String findOrderListByUserId(HttpSession session){
List<Map<String, Object>> orderInfoList = orderService.findOrderListByUserId(session);
return JSON.toJSONString(orderInfoList);
}
查看我的订单效果图如图5-6所示,订单评价效果图如图5- 7所示。
在这里插入图片描述

图5-6 查看我的订单效果图
在这里插入图片描述

图5-7 订单评价效果图
5.5 点餐中心管理模块实现
用户可以在页面中查看浏览菜品,也可以根据自己的喜好去搜索菜品信息,可以查看到菜品详细信息包括菜品名称、菜品类别、配料、菜品描述、烹饪方式、菜品图片、价格等等。用户可以选择中意的菜品进行下单结算。
主要代码如下:
@RequestMapping(“/list”)
public String findFoodattrListByPage(FoodattrVo vo){
LayuiTableDataResult foodattrListByPage = foodattrService.findFoodattrListByPage(vo);
return JSON.toJSONString(foodattrListByPage);
}
@RequestMapping(“/add”)
public String addFoodattr(FoodattrVo vo){
Map<String, Object> map = foodattrService.addFoodattr(vo);
return JSON.toJSONString(map);
}
点餐中心界面效果图如图5-8所示,菜品详情界面效果图如图5- 9所示。
在这里插入图片描述

图5-8 点餐中心界面效果图
在这里插入图片描述

图5-9 菜品详情界面效果图
5.6 配送管理模块实现
后台管理可以看到配送记录和待配送订单,以列表的形式展示,包括订单编号、收货人、下单时间、接单时间、配送状态以及是否被投诉等。在待配送列表中可以看到所有用户下单后管理员分配好配送订单的所有待配送的订单信息。
主要代码如下:
@RequestMapping(“/list”)
public String findDeliverListByPage(DeliverVo vo){
LayuiTableDataResult deliverListByPage = deliverService.findDeliverListByPage(vo);
return JSON.toJSONString(deliverListByPage);
}
@RequestMapping(“/findUser”)
public String findUserListNotDeliver(){
Map<String, Object> map = deliverService.findUserListNotDeliver();
return JSON.toJSONString(map);
}
配送记录界面效果图如图5-10 所示。
在这里插入图片描述

图5-10 配送记录界面效果图
5.7 用户管理模块实现
用户管理模块是网上订餐管理系统中基础且重要的模块之一,用于管理系统的用户账户。管理人员可以对用户角色进行管理,包括新增、修改和删除等操作。
主要代码如下:
@RequestMapping(“/list”)
public String findUserListByPage(UserVo vo){
LayuiTableDataResult userListByPage = userService.findUserListByPage(vo);
return JSON.toJSONString(userListByPage);
}
@RequestMapping(“/add”)
public String addUser(UserVo vo){
Map<String, Object> map = userService.addUser(vo);
return JSON.toJSONString(map);
}
@RequestMapping(“/modify”)
public String modifyUserBackstage(UserVo vo){
Map<String, Object> map = userService.modifyUserBackstage(vo);
return JSON.toJSONString(map);
}
用户信息界面效果图如图5-11所示。
在这里插入图片描述

图5-11 用户信息界面效果图
5.8 本章小结
本章详细介绍了系统的各个功能模块的设计和实现,包括菜品管理模块、订单分配管理、我的订单管理模块、点餐中心管理模块、配送管理等模块。通过合理的模块划分和功能设计,系统能够满足网上订餐管理系统的各项需求。在本章的设计与实现过程中,基于Java技术栈,采用了合适的框架和工具,SSM框架、MySQL数据库、前端采用HTML技术等,通过良好的设计和实现,成功地开发出了一个功能完备、性能优异的网上订餐管理系统。

第6章 系统测试
为确保产品质量与性能,需要对产品进行全面的测试与分析。在这一阶段,我们将对系统的各种功能进行测试,测试其运行稳定性,分析和解决其中的问题[7]。
6.1 测试原则
测试原则是指在进行软件测试时遵循的一些基本原则,可以帮助确保测试工作的有效性和高质量。尽可能地测试所有可能的输入组合和场景,以确保在各种情况下系统的正确性。将测试的重点放在发现缺陷和错误上,尽可能多地找出系统中的问题,以便进行及时修复。在测试过程中合理利用有限的资源,确保以最少的成本和时间来实现高质量的测试。优先考虑系统中的高风险功能和关键业务流程,将测试的重点放在这些部分,以降低风险并提高系统的可靠性。测试应该是可重复的,即在相同的条件下,可以重复执行相同的测试用例,以便能够验证和确认测试结果[8]。
6.2 系统测试
系统测试是软件开发生命周期中的一个重要阶段,旨在评估整个系统是否符合预期的需求和质量标准。系统测试是在集成测试完成后进行的,主要目的是验证系统功能的完整性、可靠性、性能、稳定性和安全性等方面。确定系统测试的目标、范围、测试策略和资源需求等,并编写详细的测试计划。测试计划应包括测试目标、测试方法、测试环境、测试进度、测试用例等信息。基于需求规格和系统设计文档,设计出一组全面而具体的测试用例。测试用例应覆盖系统的各种功能、边界条件、异常情况和性能要求等,以尽可能发现潜在的问题和缺陷[9]。
6.2.1 登录模块测试
登录模块是系统中非常重要的一个功能模块,测试登录模块的目的是验证用户登录功能的正确性、安全性和用户体验。验证有效的用户名和密码是否能够成功登录系统。验证无效的用户名和密码是否不能登录系统,并给出相应的错误提示。验证系统是否对密码进行正确的加密和存储,以保护用户的密码安全[10]。
登录测试用例和测试结果如表6-1所示,登录错误提示界面如图6-1所示。
表6-1 登录测试用例和测试结果
测试点 测试用例 预期结果 与预期结果是否一致
密码不正确
登录系统 输入错误的密码登录 点击登录时
提示密码错误 是
错误账号用户登录系统 输入错误的账号登录系统 点击登录时
提示用户不存在 是
在这里插入图片描述

图6-1 登录错误提示
6.2.2 菜品管理模块测试
菜品管理模块是一个与餐饮业务相关的重要功能模块,测试菜品管理模块的目的是验证菜品的基本信息、操作和管理功能的正确性、稳定性和易用性。验证添加新菜品时能否正确填写和保存菜品的名称、描述、价格、分类等基本信息。验证修改菜品信息时能否正确更新菜品的相关信息。菜品管理测试用例和测试结果如表6-2所示,新增菜品错误提示界面如图6-2所示。
表6-2 菜品管理模块测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
新增菜品信息 点击新增菜品输入正确的菜品数据 新增成功 是
修改菜品信息 修改菜品但不输入菜品类型和名称 提示“必填项不能为空” 是

删除菜品信息
点击删除按钮删除菜品 提示“请输入信息”

点击删除按钮删除正在上架的菜品 提示“操作成功”


在这里插入图片描述

图6-2 新增菜品错误提示界面
6.2.3 订单分配管理模块测试
订单分配管理模块是一个与订单处理和派遣有关的重要功能模块,测试订单分配管理模块的目的是验证订单派发、分配和管理功能的正确性、稳定性和效率。
订单分配测试用例和测试结果如表6-4所示,订单分配成功提示如图6-3所示。
表6-4 订单分配测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致

分配订单 点击分配配送员
选择配送员提交 提示订单已成功分配 是
点击作废订单,
点击提交 提示订单作废成功 是
查询分配订单信息 点击待配送列表 显示所有待配送信息 是
在这里插入图片描述

图6-3 订单分配成功提示
6.2.4 我的订单管理模块测试
验证用户能否正确创建订单,并填写相关信息如商品/服务、数量、地址等。验证订单是否正确显示订单状态、订单详情、订单金额等信息。验证用户在收到商品/完成服务后能正确进行评价。验证用户能够正确提交投诉,并填写投诉相关的信息如订单号、投诉内容等。我的订单的测试用例和测试结果如表6-5所示。我的订单列表效果图如图所示6-4所示,投诉失败效果图如图6-5所示。
表6-5 我的订单的测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
查看订单信息 点击我的订单 跳转订单详情列表 是
评价订单 不输入评价内容 提示“评价失败” 是
投诉订单 投诉未配送的订单 提示“投诉失败” 是
在这里插入图片描述

图6-4 我的订单列表效果图
在这里插入图片描述

图6-5 投诉失败效果图
6.2.5 点餐中心管理模块测试
点餐中心管理模块是与餐饮点餐中心相关的重要功能模块,测试此模块的目的是验证点餐中心的顺畅运行、订单管理和服务质量等方面的正确性、稳定性和易用性。
点餐中心的测试用例和测试结果如表6-6所示。成功加入购物车提示效果图如图6-6所示。
表6-6 点餐中心的测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致

选择菜品点餐 选择菜品点餐能否成功加入购物车
购物车加入成功 是
点击菜品分类能否正确跳转到分类菜品
跳转成功 是
点击菜品详情能否成功跳转到菜品详情页
跳转成功 是
在这里插入图片描述

图6-6 成功加入购物车提示效果图
6.2.6 配送管理模块测试
测试配送管理模块的目的是验证订单配送流程的准确性、稳定性和效率。测试能否准确查看到配送的信息列表。配送管理测试用例和测试结果如表6-7所示。
表6-7 配送管理测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
配送列表详情信息 能否准确的查询出配送详情信息列表 查询成功 是
配送列表效果图如图6-7所示。
在这里插入图片描述

图6-7 配送列表效果图
6.3 本章小结
在本章中,首先进行了详细的测试计划设计,包括测试目标、测试范围、测试方法和测试资源等。然后,根据测试计划执行了各个测试阶段的测试活动,包括单元测试、集成测试和系统测试等。在系统测试阶段,对整个网上订餐管理系统进行了全面的功能测试、性能测试和用户体验测试。通过模拟用户行为和使用场景,验证系统的功能是否满足用户需求,并检测并修复了一些性能方面的问题。通过测试和改进,系统的功能、性能和用户体验得到了明显的提升,并使系统达到了预期的要求 [14]。

结论
本次毕业设计所开发的系统具备了较高的功能完备性、技术稳定性和性能可靠性。系统不仅满足了用户的基本需求,而且还具备了良好的用户体验和高效的性能表现。然而,我也意识到系统在某些方面仍存在一些不足之处,如界面的美化、功能的扩展等。因此,我将进一步提升系统的功能和性能,并持续对系统进行后续的维护和支持,以满足用户的不断变化的需求。
展望未来,随着技术的进步和用户需求的不断变化,系统将更加注重界面的美观和交互的友好性。用户希望能够通过简单直观的操作完成订餐过程,并获得个性化的推荐和定制的服务。在技术方面,系统将继续探索新的技术和工具,以提高性能和安全性。例如,采用云计算和微服务架构,以实现系统的弹性扩展和高可用性。同时,数据安全和隐私保护也将成为系统设计的重要考虑因素。总之,基于Java的网上订餐管理系统将会不断发展和完善,以适应用户需求的变化和技术的进步。通过不断创新和改进,系统将提供更好的用户体验、更高的性能和更广泛的服务范围,为用户和商家带来更多的便利和价值。

参考文献
[1]韦婉辰,卢华.基于微信小程序的校园订餐管理系统的设计与实现[J].信息记录材料,2022,23(05):119-122.
[2]韩立峰,亓雪冬.基于微服务的高校网上订餐系统设计[J].微型电脑应用,2021,37(09):155-157+165.
[3]陈江辉,於立杰,李强.智慧校园食堂订餐系统信息化平台的设计[J].网络安全技术与应用,2021(03):43-44.
[4]戴静,马奇奇,王帅等.基于Android的智能顺风订餐系统的设计与实现[J].科技风,2019(34):27.
[5]聂维,张忠,刘小豫.网上订餐系统的设计与开发[J].信息与电脑(理论版),2019,31(20):56-58.
[6]张小艾.基于CAS的校园订餐系统的设计与实现[J].电脑知识与技术,2018,14(35):63-64+99.
[7]赵将.Java语言在计算机软件开发中的应用[J].数字技术与应用,2023,41(03):160-162.
[8]任蕾蕾.计算机软件开发中数据库安全设计研究[J].网络安全和信息化,2023(03):55-57.
[9]王淼.MySQL查询优化与研究[J].信息记录材料,2022,23(05):227-229.
[10]谢霜.基于Java技术的网络管理体系结构的应用[J].网络安全技术与应用,2022(10):14-15.
[11]王金朔,孙延辉.基于SSM和Java的网上订餐系统设计[J].信息通信,2018(10):99-100.
[12]聂维,张忠,刘小豫.网上订餐系统的设计与开发[J].信息与电脑(理论版),2019,31(20):56-58.
[13] 郑戟明,董云朝,柳青.MySQL数据库数据导入导出方法的探讨[J].电脑知识与技术,2022,18(22):24-25.
[14] 董明.计算机软件系统开发中的主要问题与应对研究[J].网络安全技术与应用,2021(11):51-52.
[15] 刘洁.基于计算机软件开发的Java编程语言分析[J].电子技术与软件工程,2021(09):41-42.
[16] 李想.计算机软件开发中的数据库测试技术研究[J].电子技术与软件工程,2021(19):39-40.
[17]王南.Java编程在计算机应用软件中的应用特征与技术研究[J].信息记录材料,2022,23(04):130-132.
[18]尹应荆.JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023(05):45-47.
[19]程小红.基于Java程序设计语言中一维数组的应用[J].数字技术与应用,2023,41(08):31-34.
[20]闫立誉.基于Java平台开发的软件保护技术探究[J].数字技术与应用,2023,41(08):199-201.
[21]Zhongsheng G .Design of anti-intrusion storage system for agricultural products sales data based on multi layercross entropy[J].Environmental Technology Innovation,2021,24
[22]Argo W ,Rosa D ,C R A .Designing and Developing an Agricultural Product Sales Application Catalog with a Hybrid Application Development Framework[J].IOP Conference Series: Materials Science and Engineering,2021.
[23]Uk M A ,Song E W ,Yong S K , et al.Development of Sales Strategies for Agricultural Products Using Lift-based Association Rules Network: A Focus on Large Supermarkets and Traditional Markets[J].The Journal of Internet Electronic Commerce Resarch,2019,19(3):105-127.
[24]Wang Z .Analysis on the Efficient Construction Mode of Rural E-commerce Platform[J].IOP Conference Series: Materials Science and Engineering,2018,439(3):
[25]Jin G .Analysis of Mobile E-commerce Operating Mode of “Agricultural Products” and Research on Development Strategy[J].Tourism Management and Technology Economy,2018,1(1):  
致谢
首先,我要由衷地感谢我的指导教师,您在我本科毕业论文的整个研究过程中给予了我无微不至的指导和支持。感谢您耐心地解答我的问题,指导我进行研究,并对我的论文提出宝贵的意见和建议。您的专业知识、严谨治学的态度以及对我的鼓励与支持,对我在本科研究中起到了重要的推动作用。
感谢我的家人、亲朋好友们对我在本科期间的支持和鼓励。感谢他们无条件地支持、理解和鼓励我,在我遇到困难和挫折时给予我力量,使我能够顺利完成本科论文的撰写和答辩。
最后,我要感谢我的同学们,感谢他们与我一同度过忙碌的本科岁月,彼此相互帮助、共同进步。在研究过程中,我们互相交流、互相学习,不断激发出更多的创造力和灵感。
感谢大家的支持和鼓励,是你们的帮助和鼓励,我才能够顺利完成本科论文的撰写和答辩。在未来的学习和工作中,我将不忘初心,继续努力学习,积极探索,不断提升自己的技术和综合素质。
衷心感谢您们的辛勤付出和关心,祝愿您们身体健康、工作愉快!再次致以最诚挚的谢意!

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值