摘 要
在信息化、数字化的时代背景下,餐饮行业面临着前所未有的挑战与机遇。为了提高运营效率、优化顾客体验,餐饮企业亟需一套高效、稳定且灵活的管理系统来支撑其日常运营。基于Spring Boot的餐饮管理系统应运而生,成为餐饮行业数字化转型的重要工具。
Spring Boot以其简化的配置、快速的开发部署以及良好的扩展性,为餐饮管理系统的构建提供了强大的技术支撑。通过整合仓库信息管理、菜系分类管理、菜品信息管理、菜品预订管理、点餐订单管理以及订单结算管理等核心功能,该系统能够帮助餐饮企业实现全面的业务管理,提高运营效率,降低运营成本。
此外,基于Spring Boot的餐饮管理系统还具备良好的用户体验和交互性。顾客可以通过系统轻松浏览菜品、在线预订、下单支付,享受更加便捷、高效的用餐体验。同时,系统也提供了丰富的数据分析和报表功能,帮助餐饮企业更好地了解顾客需求、优化菜品结构、提升服务质量。
综上所述,基于Spring Boot的餐饮管理系统是餐饮行业数字化转型的得力助手。它不仅能够提升餐饮企业的运营效率和服务质量,还能够为顾客带来更加便捷、舒适的用餐体验。随着技术的不断发展和完善,相信该系统将在未来为餐饮行业带来更多的创新和变革。
关键词:餐饮管理系统;Java;Spring Boot框架
Catering management system
Abstract
In the context of informatization and digitization, the catering industry is facing unprecedented challenges and opportunities. In order to improve operational efficiency and optimize customer experience, catering enterprises urgently need an efficient, stable, and flexible management system to support their daily operations. The catering management system based on Spring Boot has emerged as an important tool for the digital transformation of the catering industry.
Spring Boot provides powerful technical support for the construction of catering management systems with its simplified configuration, fast development and deployment, and good scalability. By integrating core functions such as warehouse information management, dish classification management, dish information management, dish reservation management, ordering order management, and order settlement management, this system can help catering enterprises achieve comprehensive business management, improve operational efficiency, and reduce operational costs.
In addition, the catering management system based on Spring Boot also has a good user experience and interactivity. Customers can easily browse dishes, make online reservations, place orders and make payments through the system, and enjoy a more convenient and efficient dining experience. At the same time, the system also provides rich data analysis and reporting functions, helping catering enterprises better understand customer needs, optimize dish structure, and improve service quality.
In summary, the catering management system based on Spring Boot is a powerful assistant for the digital transformation of the catering industry. It can not only improve the operational efficiency and service quality of catering enterprises, but also bring customers a more convenient and comfortable dining experience. With the continuous development and improvement of technology, we believe that this system will bring more innovation and change to the catering industry in the future.
Key words:Catering management system; Java; Spring Boot framework
目 录
餐饮管理系统,作为现代餐饮业的核心支撑工具,其研究背景与意义深远而广泛。随着科技的飞速发展和人们生活水平的持续提升,餐饮业正面临着前所未有的变革与机遇。在这一背景下,餐饮管理系统的研究与应用显得尤为重要。
从研究背景来看,餐饮行业正逐渐从传统的经营模式向数字化、智能化转型。传统的餐饮管理方式往往依赖于人工操作和纸质记录,效率低下且容易出错。而随着消费者需求的日益多样化和个性化,餐饮企业急需一种高效、准确的管理方式来应对市场的快速变化。此外,随着互联网和移动设备的普及,线上预订、在线支付等新型消费模式也逐渐成为主流,这进一步推动了餐饮管理系统的研发与应用。
在意义方面,餐饮管理系统的研究与应用对于提升餐饮企业的运营效率、降低成本、优化顾客体验等方面具有显著作用。通过系统化的管理,餐饮企业可以实现对食材采购、库存管理、菜品制作、销售等各个环节的精准把控,从而确保食材的新鲜度、提高菜品的制作效率、减少浪费和损耗。餐饮管理系统还可以帮助企业更好地了解顾客需求和消费习惯,通过数据分析和挖掘,为企业的菜品创新、营销策略制定等提供有力支持。最后,通过优化顾客的点餐、支付等流程,餐饮管理系统可以大大提升顾客的用餐体验,增强顾客的忠诚度和口碑传播。
综上所述,餐饮管理系统的研究与应用是餐饮业发展的必然趋势,也是提升餐饮企业竞争力和可持续发展的关键所在。随着技术的不断进步和创新,相信未来餐饮管理系统将为餐饮业带来更多的惊喜和变革。
-
- 国内外研究现状
在国内,随着餐饮行业的快速发展和市场竞争的加剧,餐饮企业对于高效、精准的管理系统的需求日益迫切。国内的研究机构和企业纷纷投入大量资源进行餐饮管理系统的研发与创新,以满足市场的多样化需求。这些系统不仅涵盖了仓库信息管理、菜系分类管理、菜品信息管理、菜品预订管理、点餐订单管理、订单结算管理等基础功能,还通过引入大数据、人工智能等先进技术,实现了更加智能化、个性化的服务。例如,一些先进的餐饮管理系统能够通过对消费者行为的分析,为餐饮企业提供精准的营销策略和菜品推荐,从而提升顾客满意度和忠诚度。
在国际上,餐饮管理系统的研究与应用同样取得了显著的进展。发达国家在餐饮管理系统的技术研发、应用推广等方面具有较高的水平,一些国际知名的餐饮管理软件厂商提供了全面的解决方案,涵盖了从前端点餐到后端供应链管理的全流程。同时,这些系统也注重与物联网、云计算等前沿技术的融合,为餐饮企业提供了更加便捷、高效的管理工具。
然而,尽管餐饮管理系统在国内外的研究与应用取得了一定的成果,但仍然存在一些挑战和问题。例如,系统的稳定性和安全性需要得到进一步保障,同时,随着消费者需求的不断变化和技术的快速发展,餐饮管理系统也需要不断更新和升级,以适应市场的变化。
综上所述,餐饮管理系统在国内外的研究与应用均呈现出积极的发展态势,但仍需不断完善和创新,以更好地满足餐饮企业的需求,推动餐饮行业的持续发展。
根据市场调研得到的信息数据,结合国内外前沿研究,利用相关系统开发和设计方法,最终设计出餐饮管理系统。
本文共有七章,如下所示。
第一章概述了餐饮管理系统的研究背景和意义;精炼地总结了国内外研究情况和未来的研究趋势,最后给出了论文的组成结构。
第二章简要对系统各业务流程进行需求分析、可行性分析。
第三章对餐饮管理系统进行设计。
第四章对餐饮管理系统进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。
第五章对餐饮管理系统采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。
第六章总结全文并对未来的研究做出展望。
在软件开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。餐饮管理系统的可行性分析如下所示:
餐饮管理系统采用Spring Boot框架进行开发,在技术上是完全可行的。Spring Boot以其简洁、快速和高效的特点,为系统的开发和部署提供了强大的支持。它集成了众多成熟的技术和组件,使得开发者能够专注于业务逻辑的实现,而无需过多关注底层技术的细节。同时,Spring Boot还提供了丰富的文档和社区支持,使得开发者在遇到问题时能够快速找到解决方案。因此,基于Spring Boot开发餐饮管理系统,不仅技术实现上可行,而且能够确保系统的稳定性和可扩展性,为餐饮行业的运营管理提供可靠的技术保障。
餐饮管理系统在经济可行性方面展现出显著优势。通过引入该系统,餐饮企业能够实现对各项业务流程的精准把控和高效管理,从而有效降低运营成本、提升运营效率。同时,系统提供的数据分析和预测功能有助于企业做出更明智的决策,优化资源配置,进一步降低经营风险。长远来看,餐饮管理系统的投资回报率高,能够为企业创造持续的价值和竞争优势,因此在经济层面具备高度的可行性。
本系统是基于浏览器和服务器的餐饮管理系统,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的前台页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。
在设计和开发餐饮管理系统之前,我们进行了详尽的需求分析,旨在确保系统能够精准地满足餐饮企业及其用户群体的实际需求。
明确业务核心:餐饮管理系统应全面覆盖仓库信息管理、菜系分类管理、菜品信息管理、菜品预订管理、点餐订单管理、订单结算管理等核心业务流程。这些流程需要紧密衔接,以确保餐饮企业能够高效、有序地运营。
系统性能与效率:餐饮行业通常面临高峰时段的业务压力,因此系统必须具备高性能和稳定性,能够应对大量并发请求,确保业务流程的顺畅进行。此外,系统还应提供快速的数据处理和分析能力,帮助餐饮企业实时掌握经营情况,做出及时有效的决策。
用户体验与交互:系统界面应设计得直观、友好,易于操作。通过优化用户体验,降低顾客和员工的学习成本,提高操作效率。同时,系统还应支持多种设备接入和支付方式,以满足不同顾客的需求。
数据安全与隐私:餐饮管理系统涉及大量的敏感信息,如顾客资料、交易数据等。因此,系统必须采取严格的数据加密和访问控制措施,确保数据的安全性。此外,系统还应具备完善的备份和恢复机制,以防止数据丢失或损坏。
扩展性与可维护性:随着餐饮业务的不断发展和市场的变化,系统可能需要适应新的业务模式或调整现有功能。因此,在设计系统时,我们充分考虑了扩展性和可维护性,采用模块化设计和灵活的架构,以便在未来能够轻松地添加新功能或进行功能调整。
综上所述,餐饮管理系统的需求分析旨在确保系统能够精准地满足餐饮企业的业务需求,提升企业的运营效率和服务质量。通过优化性能、提升用户体验、保障数据安全以及实现系统的可扩展性和可维护性,我们期待这一系统能够为餐饮企业带来实质性的改进,推动餐饮行业的健康发展。
餐饮管理系统的性能分析是评估系统是否能够满足餐饮企业日常运营需求的关键环节。以下是关于餐饮管理系统性能的主要分析点:
响应速度是评估系统性能的重要指标之一。在餐饮业务中,尤其是在高峰时段,系统需要能够快速响应各种操作请求,如订单处理、菜品更新等。快速的响应速度能够提升顾客满意度,减少等待时间,同时也有助于提高工作效率。
系统的稳定性和可靠性也至关重要。餐饮管理系统需要能够持续稳定运行,避免因系统故障或崩溃导致业务中断。这要求系统具备强大的容错能力和恢复机制,能够在遇到问题时迅速恢复正常运行。
系统的数据处理能力也是性能分析的重要方面。餐饮管理系统需要处理大量的数据,包括订单信息、库存数据、顾客资料等。系统需要能够高效地处理这些数据,确保数据的准确性和实时性,为企业的决策提供有力支持。
易用性和用户友好性也是影响系统性能的关键因素。餐饮管理系统的界面设计应简洁明了,操作流程应简单易懂,以降低员工的学习成本和提高操作效率。同时,系统还应提供完善的帮助文档和客服支持,以便用户在使用过程中遇到问题时能够及时得到解决。
系统的扩展性和可维护性也是性能分析不可忽视的方面。随着餐饮业务的发展和市场的变化,系统可能需要不断升级和扩展以满足新的需求。因此,系统在设计之初就应考虑到未来的扩展性,采用模块化设计等方式以便于后期的维护和升级。
综上所述,餐饮管理系统的性能分析涉及多个方面,包括响应速度、稳定性、数据处理能力、易用性以及扩展性和可维护性等。通过对这些方面的全面评估,可以确保系统能够满足餐饮企业的实际需求,并为企业的发展提供有力支持。
餐饮管理系统的完整UML用例图分别是图2-1、图2-2、图2-3和图2-4,在参与者上包括普通用户、前台人员、后厨人员和管理员。
普通用户角色的用例描述:用户通过简单的注册登录,即可畅享系统的各项服务。在首页,用户可以浏览最新的公告消息和餐饮资讯,了解餐厅的最新动态和美食推荐。菜品信息展示丰富多样,方便用户挑选心仪的佳肴。在个人中心,用户可以轻松管理自己的账户信息,查看个人首页、菜品预订、点餐订单、订单结算等详细信息,还能收藏喜爱的菜品,实现个性化的用餐体验。整个系统操作简单直观,满足了普通用户对餐饮服务的多样化需求。
普通用户角色用例如图2-1所示。
图2-1普通用户用例图
管理员角色的用例描述:管理员通过登录系统,可以方便地管理系统用户,确保用户信息的准确性和安全性。同时,系统支持仓库信息管理、菜系分类管理、菜品信息管理等功能,帮助管理员高效管理餐厅的物料和菜品资源。此外,管理员还能轻松进行菜品预订管理、点餐订单管理、订单结算管理,实时监控餐厅的业务情况。系统还提供了轮播图管理、公告消息管理以及餐饮资讯和资讯分类的资源管理功能,帮助管理员灵活发布餐厅动态和资讯,提升品牌形象。整体而言,餐饮管理系统为管理员提供了全方位、高效便捷的管理工具,助力餐厅实现精细化运营。
管理员角色用例如图2-2所示。
图2-2管理员用例图
前台人员角色的用例描述:前台人员通过系统可以迅速更新菜品信息,确保菜单的实时性和准确性;同时,系统支持预订管理,方便前台人员处理顾客的预订需求,提升服务效率。在点餐和订单管理方面,系统简化了操作流程,使前台人员能够迅速处理订单,提高顾客满意度。此外,订单结算管理功能也大大简化了收银流程,提高了工作效率。综上所述,餐饮管理系统为前台人员提供了全面的管理支持,助力他们更好地服务顾客,提升餐厅的整体运营效率。
前台人员角色用例如图2-3所示。
图2-3前台人员用例图
后厨人员角色的用例描述:餐饮管理系统餐饮管理系统为后厨人员提供了菜品预订管理和点餐订单管理的核心功能,极大地提升了后厨的工作效率和准确性。通过系统,后厨人员可以实时查看并处理菜品预订信息,提前准备食材,确保食材的充足和新鲜。同时,点餐订单管理功能使得后厨人员能够迅速获取订单详情,按照顺序进行菜品制作,避免了因信息传递不畅导致的延误或错误。这些功能不仅提高了后厨的响应速度,也确保了顾客订单的准确执行,为餐厅提供了更加稳定、高效的运营支持。
后厨人员角色用例如图2-4所示。
图2-4后厨人员用例图
(1)增加数据流程
系统中的所有用户(管理员、普通用户、前台人员和后厨人员)都可以实现增加数据功能,图2-5显示的就是在增加数据时的流程。
图2-5增加数据流程图
(2)修改数据流程
在录入系统信息的时候如果信息有错,可以对系统中的数据进行编辑。图2-6显示的就是修改数据的流程。
图2-6修改数据流程图
(3)删除数据流程
在系统中经常会出现一些过期的数据,那就可以直接删除这些数据,图2-7就是删除数据时的流程图。
图2-7删除数据流程图
由于本系统在逻辑事务处理方面对数据库的操作比较频繁所以系统在底层连接数据库时并没有使用原生的JDBC,而是把JDBC进行了封装,封装之后相当于一个连接数据库的工具DB UTIL,这样使用起来会更加方便而且这样进行封装还可以降低系统中代码的冗余,当我们需要连接和使用数据库时只需要调用这个工具里面的一个方法就可以了。而且通过封装可以把对数据库的操作独立起来,当需要连接不同种类的数据库时只需要加以修改就可以达到目的。
DAO层本来并无这个类,它只是java中MVC构造里的一个model概念,主要就是里面的一些方法,而这些方法就是用来访问数据库的方法。我们在软件开发时DAO层我们一般都放接口和接口的实现类,用于来规范实现类的我们叫它接口,实现类重点用于对数据库的操纵。
MVC是一种系统研发的关键模型,M是Model模型,它是系统内部关键程序运行的核心,主要进行对数据库的各种操作。视图View是V也叫做视图,主要的作用是对一些数据进行显示。控制器Controller 是C执行从View的视图层来读取数据,然后控制用户的输入。
系统架构如下图所示。
图3-1系统架构图
进入系统后首先要进行登录,验证你的身份,赋予你不同的权限。当你成功登录后,页面会有多个板块,分别是系统用户、仓库信息管理、菜系分类管理、菜品信息管理、菜品预订管理、点餐订单管理、订单结算管理、系统管理(轮播图)、公告消息管理、资源管理(餐饮资讯、资讯分类)等。系统分为普通用户、前台人员、后厨人员和管理员四大模块,里面界面简单易懂,根据标示可以直接进行方便快捷的操作。
系统功能结构图如下所示。
图3-2系统功能结构图
一个好的系统它的后台数据库一定要考虑的全面,这和我们建造房子一个概念,房子不是随心所欲建起来的,一切都是在合理设计的基础是实现的,地基打牢固了房子才能建的更高。数据库如果设计的很合理,而且每个方面都能考虑到了那么这个系统才能不会出现大的问题。
一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计。
-
-
- 数据库E-R图设计
-
餐饮管理系统采用的是mysql数据库,数据存储快,因为餐饮管理系统,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确,
系统的主要实体间关系E-R图如下图所示。
图3-3系统E-R图
此环节把概念转变成数据。由于整个数据库所处理的信息过多,就只展示以下几个表。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表classification_of_cuisine (菜系分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | classification_of_cuisine_id | int | 10 | 0 | N | Y | 菜系分类ID | |
2 | classification_of_cuisine | varchar | 64 | 0 | Y | N | 菜系分类 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dish_information_id | int | 10 | 0 | N | Y | 菜品信息ID | |
2 | dish_name | varchar | 64 | 0 | Y | N | 菜品名称 | |
3 | classification_of_cuisine | varchar | 64 | 0 | Y | N | 菜系分类 | |
4 | price_of_dishes | int | 10 | 0 | Y | N | 0 | 菜品价格 |
5 | taste_of_dishes | varchar | 64 | 0 | Y | N | 菜品口味 | |
6 | description_of_dishes | varchar | 64 | 0 | Y | N | 菜品描述 | |
7 | dish_pictures | varchar | 255 | 0 | Y | N | 菜品图片 | |
8 | introduction_to_dishes | longtext | 2147483647 | 0 | Y | N | 菜品简介 | |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dish_reservation_id | int | 10 | 0 | N | Y | 菜品预订ID | |
2 | dish_name | varchar | 64 | 0 | Y | N | 菜品名称 | |
3 | classification_of_cuisine | varchar | 64 | 0 | Y | N | 菜系分类 | |
4 | price_of_dishes | int | 10 | 0 | Y | N | 0 | 菜品价格 |
5 | taste_of_dishes | varchar | 64 | 0 | Y | N | 菜品口味 | |
6 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
7 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
8 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
9 | booking_time | date | 10 | 0 | Y | N | 预订时间 | |
10 | booking_quantity | int | 10 | 0 | Y | N | 0 | 预订数量 |
11 | booking_amount | varchar | 64 | 0 | Y | N | 预订金额 | |
12 | booking_remarks | varchar | 64 | 0 | Y | N | 预订备注 | |
13 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
14 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | front_desk_staff_id | int | 10 | 0 | N | Y | 前台人员ID | |
2 | personnel_name | varchar | 64 | 0 | Y | N | 人员姓名 | |
3 | gender_of_personnel | varchar | 64 | 0 | Y | N | 人员性别 | |
4 | age_of_personnel | varchar | 64 | 0 | Y | N | 人员年龄 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | kitchen_staff_id | int | 10 | 0 | N | Y | 后厨人员ID | |
2 | personnel_name | varchar | 64 | 0 | Y | N | 人员姓名 | |
3 | gender_of_personnel | varchar | 64 | 0 | Y | N | 人员性别 | |
4 | age_of_personnel | varchar | 64 | 0 | Y | N | 人员年龄 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | ordering_orders_id | int | 10 | 0 | N | Y | 点餐订单ID | |
2 | dish_name | varchar | 64 | 0 | Y | N | 菜品名称 | |
3 | classification_of_cuisine | varchar | 64 | 0 | Y | N | 菜系分类 | |
4 | price_of_dishes | int | 10 | 0 | Y | N | 0 | 菜品价格 |
5 | taste_of_dishes | varchar | 64 | 0 | Y | N | 菜品口味 | |
6 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
7 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
8 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
9 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
10 | order_date | date | 10 | 0 | Y | N | 点餐日期 | |
11 | order_quantity | int | 10 | 0 | Y | N | 0 | 点餐数量 |
12 | order_amount | varchar | 64 | 0 | Y | N | 点餐金额 | |
13 | order_notes | varchar | 64 | 0 | Y | N | 点餐备注 | |
14 | order_status | varchar | 64 | 0 | Y | N | 订单状态 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_settlement_id | int | 10 | 0 | N | Y | 订单结算ID | |
2 | dish_name | varchar | 64 | 0 | Y | N | 菜品名称 | |
3 | classification_of_cuisine | varchar | 64 | 0 | Y | N | 菜系分类 | |
4 | price_of_dishes | int | 10 | 0 | Y | N | 0 | 菜品价格 |
5 | taste_of_dishes | varchar | 64 | 0 | Y | N | 菜品口味 | |
6 | order_number | varchar | 64 | 0 | N | N | 订单编号 | |
7 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
8 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
9 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
10 | order_date | date | 10 | 0 | Y | N | 点餐日期 | |
11 | order_quantity | int | 10 | 0 | Y | N | 0 | 点餐数量 |
12 | order_amount | varchar | 64 | 0 | Y | N | 点餐金额 | |
13 | order_notes | varchar | 64 | 0 | Y | N | 点餐备注 | |
14 | settlement_date | date | 10 | 0 | Y | N | 结算日期 | |
15 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
16 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | outbound_information_id | int | 10 | 0 | N | Y | 出库信息ID | |
2 | item_name | varchar | 64 | 0 | Y | N | 物品名称 | |
3 | item_type | varchar | 64 | 0 | Y | N | 物品类型 | |
4 | purpose_of_the_item | varchar | 64 | 0 | Y | N | 物品用途 | |
5 | outbound_date | date | 10 | 0 | Y | N | 出库日期 | |
6 | outbound_quantity | int | 10 | 0 | Y | N | 0 | 出库数量 |
7 | outbound_remarks | varchar | 64 | 0 | Y | N | 出库备注 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | storage_information_id | int | 10 | 0 | N | Y | 入库信息ID | |
2 | item_name | varchar | 64 | 0 | Y | N | 物品名称 | |
3 | item_type | varchar | 64 | 0 | Y | N | 物品类型 | |
4 | purpose_of_the_item | varchar | 64 | 0 | Y | N | 物品用途 | |
5 | storage_date | date | 10 | 0 | Y | N | 入库日期 | |
6 | inventory_quantity | int | 10 | 0 | Y | N | 0 | 入库数量 |
7 | storage_remarks | varchar | 64 | 0 | Y | N | 入库备注 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | warehouse_information_id | int | 10 | 0 | N | Y | 仓库信息ID | |
2 | item_name | varchar | 64 | 0 | Y | N | 物品名称 | |
3 | item_type | varchar | 64 | 0 | Y | N | 物品类型 | |
4 | inventory_of_items | int | 10 | 0 | Y | N | 0 | 物品库存 |
5 | purpose_of_the_item | varchar | 64 | 0 | Y | N | 物品用途 | |
6 | item_images | varchar | 255 | 0 | Y | N | 物品图片 | |
7 | item_remarks | text | 65535 | 0 | Y | N | 物品备注 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
- 系统实现
- 普通用户模块的实现
4.1.1 前台首页界面
进入系统首页,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,最下面是餐饮资讯,其主界面展示如下图所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
用户注册:当用户想要进入系统中对信息进行查看的时候,就必须要登录到系统当中,要是新的用户没有系统的账号的话,点击“注册”按钮,就会进入到新用户注册这个界面上,用户输入对应的账号(必须填写)+密码(必须填写)+确认密码(必须填写,而且要与密码一直)+昵称+邮箱+性别+联系电话+选择用户身份等,然后点击“注册”,系统在用户这一数据库中会查询账号是不是存在,两次密码是不是一样,都填写正确就会注册成功,然后再进行登录,如果是之前已经注册过的用户很长时间没有使用,忘记密码,也可以点击“忘记密码”进行找回。用户注册界面如下图所示。
图4-2 用户注册界面图
注册代码如下:
public String encryption(String plainText) {
String re_md5 = new String();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
re_md5 = buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return re_md5;
}
4.1.3 用户登录界面
系统中的前台上注册后的用户是可以通过自己的账户名、密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到系统的首页中;否则将会提示相应错误信息。用户登录界面如下图所示。
图4-3用户登录界面图
登录代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
4.1.4 餐饮资讯界面
当用户点击“餐饮资讯”这一菜单按钮,会显示管理员在后台发布的所有的餐饮资讯信息,支持通过关键词对资讯进行搜索,选择需要的资讯信息点击可以进入到资讯信息详细的介绍界面,同时可以进行点赞、收藏和评论等操作,餐饮资讯界面如下图所示。
图4-4餐饮资讯界面图
当用户点击“菜品信息”这一菜单按钮,会显示管理员在后台发布的所有的菜品信息,支持通过关键词对菜品信息进行搜索,选择需要的菜品信息点击可以进入到菜品信息详细的介绍界面,同时可以进行预订、点餐、点赞、收藏和评论,菜品信息界面如下图所示。
图4-5菜品信息界面图
-
- 管理员功能模块的实现
4.2.1 管理员登录界面
管理员进入到系统登录界面,需要填写正确的账号、密码和验证码等信息输入准确无误后登录进入到系统操作界面。管理员的账号是在数据表表中直接设置生成的,不需要进行注册;修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。管理员登录界面如下图所示。
图4-6管理员登录界面图
4.2.2 管理员功能界面
管理员可以查看系统用户、仓库信息管理、菜系分类管理、菜品信息管理、菜品预订管理、点餐订单管理、订单结算管理、系统管理(轮播图)、公告消息管理、资源管理(餐饮资讯、资讯分类)等,并且可以根据需要进行相应的操作。在功能界面可以查看菜品预订统计和订单结算统计。管理员功能界面如下图所示。
图4-7管理员功能界面图
4.2.3 系统用户管理界面
管理员可以对系统中所有的用户角色进行管控,包含了管理员、普通用户、前台人员和后厨人员这四种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。系统用户管理界面如下图所示。
图4-8系统用户管理界面图
4.2.4仓库信息管理界面
管理员可以管理系统中的仓库信息,包括添加新的仓库、编辑已有仓库的信息、删除仓库等操作,以确保系统中的仓库信息准确完整。仓库信息管理界面如下图所示。
图4-9仓库信息管理界面图
4.2.5 系统管理界面
管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。系统管理界面如下图所示。
图4-10系统管理界面图
轮播图添加代码:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
管理员可以对系统前台展示的通知公告进行增删改查,方便用户进行查看。公告消息管理界面如下图所示。
图4-11公告消息管理界面图
前台人员可以管理系统中的菜品预订信息,包括接受顾客的菜品预订、确认预订信息、调整预订时间等操作,以便于提供更好的预订服务。界面如下图所示。
图4-12菜品预订管理界面图
前台人员可以管理系统中的点餐订单,包括接受顾客的点餐、确认订单信息、调整订单内容等操作,以确保顾客点餐的准确性和及时性。界面如下图所示。
图4-13点餐订单管理界面图
后厨人员可以查看系统中的菜品预订信息,包括已接受的预订、预订时间、预订菜品等,以便于准备和安排菜品的制作。界面如下图所示。
图4-14菜品预订管理界面图
后厨人员可以查看系统中的点餐订单信息,包括顾客的点餐内容、数量、要求等,以便于准备和安排菜品的制作。界面如下图所示。
图4-15点餐订单管理界面图
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
5.2 系统测试用例
系统测试包括:用户登录功能测试、餐饮资讯查看功能测试、菜品信息添加、菜品信息搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
餐饮资讯查看功能测试:
表5-2餐饮资讯查看功能测试表
用例名称 | 餐饮资讯查看 |
目的 | 测试餐饮资讯查看功能 |
前提 | 用户登录 |
测试流程 | 点击餐饮资讯列表 |
预期结果 | 可以查看到所有餐饮资讯信息 |
实际结果 | 实际结果与预期结果一致 |
管理员添加菜品信息界面测试:
表5-3 管理员添加菜品信息界面测试表
用例名称 | 菜品信息添加测试用例 |
目的 | 测试菜品信息添加功能 |
前提 | 管理员正常登录情况下 |
测试流程 | 1)管理员点击菜品信息添加,填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,菜品信息列表会显示新的菜品信息 |
实际结果 | 实际结果与预期结果一致 |
菜品信息搜索功能测试:
表5-4菜品信息搜索功能测试表
用例名称 | 菜品信息搜索测试 |
目的 | 测试菜品信息搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的菜品信息 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
5.3 系统测试结果
通过编写餐饮管理系统的测试用例,已经检测完毕用户登录模块、餐饮资讯查看模块、菜品信息添加模块、菜品信息搜索模块、密码修改功能测试,通过这5大模块为餐饮管理系统的后期推广运营提供了强力的技术支撑。
餐饮管理系统的开发与实践,无疑是我大学生活中极具挑战性和收获的一段经历。这个项目不仅考验了我的技术能力,还锻炼了我对餐饮行业管理需求的理解与应对能力,为我未来的职业发展奠定了坚实的基础。
在餐饮管理系统的开发过程中,我充分利用了所学的专业知识,结合餐饮市场的实际需求,为餐饮企业量身打造了一套高效、实用的管理系统。该系统涵盖了菜品信息管理、菜品预订管理、点餐订单管理、订单结算管理等多个核心模块,实现了餐饮业务从前端到后端的全面数字化管理。
通过餐饮管理系统的应用,餐饮企业能够更加高效地管理菜品信息、库存数据、顾客订单等关键信息,提升了工作效率和服务质量。同时,系统还提供了丰富的数据分析和报表功能,帮助企业管理层更好地了解业务状况,制定更加科学的经营策略。
在项目的推进中,我深刻体会到了团队协作的重要性。我们团队成员紧密配合,共同攻克了一个又一个技术难题,不断优化和完善系统功能。这种团队协作的精神不仅提升了项目的开发效率,也增强了我们之间的默契和信任。
展望未来,我将继续关注餐饮行业的发展动态和技术趋势,不断优化和完善餐饮管理系统。我希望能够引入更多的创新技术,进一步提升系统的智能化和自动化水平,为餐饮企业提供更加便捷、高效的管理工具。
同时,我也希望能够将餐饮管理系统拓展到更多的餐饮业态中,满足不同规模和需求的餐饮企业的管理需求。我相信,随着餐饮行业的不断发展和技术的不断进步,餐饮管理系统将会发挥更加重要的作用,为餐饮企业的运营和管理带来更大的便利和效益。
总之,餐饮管理系统的开发与实践是我大学生活中的一次宝贵经历。它不仅提升了我的技术能力和团队协作精神,也让我更加深入地了解了餐饮行业的实际需求和发展方向。在未来的道路上,我将继续努力学习、不断进步,为餐饮行业的发展贡献自己的力量。
参考文献
[1]Salsabila D ,Awalia N ,Maharani S , et al.The Correlation Between Economic Activities to Water Pollution in Banyumas District, Central Java Province, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2024,1313(1):
[2]Insani N ,Ridhoi R ,Hidajat G H , et al.Pro-Environmental Tourism: Lessons Learned from Adventure, Wellness and Eco-tourism in Padusan Village, Mojokerto, East Java[J].IOP Conference Series: Earth and Environmental Science,2024,1313(1):
[3]Annisa F L ,Umi L .Accuracy of Antenatal Visits in West Java Province: Comparison between Rural and Urban Areas Data Analysis of the Indonesian Demographic and Health Survey 2017[J].IOP Conference Series: Earth and Environmental Science,2024,1313(1):
[4]Acintya R ,Kinanthi D H ,Kuncoro B A , et al.Impact of Rice Field Conversion on the Availability of Rice in Banyumas Regency, Central Java Province[J].IOP Conference Series: Earth and Environmental Science,2024,1313(1):
[5]Utami W B ,Hariadi S S ,Raya B A .The Paradox of Farmers in Response Agricultural Land Conversion to National Strategic Development Policies in Central Java[J].IOP Conference Series: Earth and Environmental Science,2024,1313(1):
[6]孙铁强,刘俊,于洪健,等.基于SpringBoot框架的在线监测和专家系统的研究[J].自动化应用,2024,65(04):15-16+19.DOI:10.19769/j.zdhy.2024.04.006.
[7]徐少军,李宗哲,梅杰,等.基于Springboot+Vue框架的质量检验监督管理系统研发[J].纺织标准与质量,2024,(01):11-14+21.
[8]雷欣,马宏琳,郑霖,等.基于SpringBoot的域名信息系统设计与实现[J].电脑知识与技术,2024,20(05):44-47.DOI:10.14004/j.cnki.ckt.2024.0188.
[9]施海涛.基于Java的连锁餐饮管理系统设计[J].无线互联科技,2023,20(18):83-85.
[10]张金凤.餐饮管理系统的统计模块设计[J].福建电脑,2022,38(09):90-93.DOI:10.16707/j.cnki.fjpc.2022.09.020.
[11]唐春燕.基于微服务的智慧餐饮系统的设计与实现[D].华东师范大学,2022.DOI:10.27149/d.cnki.ghdsu.2022.002129.
[12]钟良堂,谭昊,廖瑾睿,等.基于图像识别的智慧餐饮管理系统[J].信息与电脑(理论版),2022,34(06):175-179.
[13]张健.餐饮系统的设计与实现[J].信息与电脑(理论版),2021,33(08):135-138.
[14]张银霞,郭畅.虚拟化校园食堂餐饮管理系统的设计与实现[J].现代计算机,2020,(25):90-96.
[15]孙晨熙.基于微信公众平台的餐饮管理系统的设计与实现[D].山东大学,2020.DOI:10.27272/d.cnki.gshdu.2020.000686.
[16]仇博.酒店餐饮信息管理系统的设计与实现[J].信息与电脑(理论版),2020,32(06):78-80.
[17]杨阳,徐淮东,刘柏君,等.互联网+智能餐饮管理系统的实现[J].现代营销(经营版),2020,(01):126-127.DOI:10.19921/j.cnki.1009-2994.2020.01.103.
[18]叶久峰,沈明旦.基于移动互联网的精神专科医院餐饮管理系统设计与实现[J].电脑编程技巧与维护,2019,(11):61-63.DOI:10.16184/j.cnki.comprg.2019.11.020.
[19]张光勇.餐饮管理系统的设计与优化[J].电脑知识与技术,2019,15(24):98-99.DOI:10.14004/j.cnki.ckt.2019.2829.
[20]何敏,罗云清.基于C#的酒店餐饮管理系统开发研究[J].电脑知识与技术,2019,15(12):57-59.DOI:10.14004/j.cnki.ckt.2019.1341.
致谢
经过几个月时间的努力终于完成了这篇文章,在文章的写作与研究的过程中遇到了很多困难,都在同学和老师的帮助下解决了。尤其非常感谢我最敬爱的老师,他对我进行了无私的指导和帮助,不厌其烦的帮助进行文章的修改。老师严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使我获益颇丰。此外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此,向帮助和指导过我的老师表示最衷心的感谢!感谢这篇文章所涉及到的各位学者。本文引用了数位学者的文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇文章的写作。感谢我的同学和朋友,在我写文章的过程中给与了我很多素材和帮助,还在文章的撰写和排版过程中提供热情的帮助。同时,感谢我的室友对我的热心指导和帮助,经常有不懂之处都是大家在帮助我,才使得我比较顺利的完成了这篇文章。由于我水平有限,所写文章难免有不足之处,恳请各位老师和学友批评和指正!
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~