餐厅包厢管理系统APP的设计与实现

摘  要

随着信息技术的飞速发展和人们生活水平的提高,餐饮行业的竞争也日益激烈。顾客对于用餐体验的要求不仅仅停留在食物的质量和服务的态度上,还包括用餐环境、私密性以及个性化服务等多个方面。在这种背景下,包厢作为提供给顾客更高级别隐私保护和用餐体验的重要场所,其管理效率和服务质量直接影响到顾客的整体满意度和餐厅的运营效益。

传统的包厢管理模式主要依赖人工记录与调度,这种方式不仅效率低下,而且容易出错,难以满足现代餐饮业快速发展的需求。尤其是在高峰期,服务员需要处理大量的预订、变更以及现场安排工作,这极大地影响了服务质量和顾客体验。

基于Spring Boot的餐厅包厢管理系统,该平台结合了APP应用和MySQL数据库,旨在服务顾客用户、员工用户和管理员,餐厅包厢管理系统实现包含多项关键功能,涵盖数据分析、角色管理、包厢信息管理、预约信息管理、取消记录管理、系统管理(轮播图)、留言管理、通知公告管理、新闻管理(餐厅资讯、资讯分类)、商城管理(菜品信息、分类列表、优惠卷、会员等级、订单列表、订单配送)、权限管理、操作日志等多个领域的管理与互动。通过使用Spring Boot技术框架,实现了快速开发和灵活部署的优势,同时借助APP提供用户友好的交互界面,以及MySQL数据库管理数据持久化与安全性,能够有效支持平台功能的实现与扩展。通过该技术,能够实现平台的快速迭代更新和稳定性维护,确保平台长期稳定运行。

通过本文设计与实现的餐厅包厢管理系统,不仅在于开发一款实用的餐厅包厢管理系统APP,更重要的是通过这个过程探索如何更好地满足现代餐饮业务的需求,促进餐饮行业向更高效、更智能的方向发展。

关键词:餐厅包厢管理系统;Spring Boot框架;APP;MySQL

Design and implementation of restaurant private room management system APP

Abstract

With the rapid development of information technology and the improvement of people's living standards, competition in the catering industry has become increasingly fierce. Customers' requirements for dining experiences extend beyond food quality and service attitude to include dining environment, privacy, and personalized services. In this context, private rooms, as important venues that offer customers higher levels of privacy protection and dining experience, have their management efficiency and service quality directly impacting overall customer satisfaction and restaurant operational benefits.

The traditional private room management mode mainly relies on manual recording and scheduling, which is not only inefficient, but also prone to errors, and it is difficult to meet the needs of the rapid development of modern catering industry. Especially in peak periods, waiters need to deal with a large number of reservations, changes and on-site arrangements, which greatly affects the service quality and customer experience.

Based on Spring Boot, the restaurant private room management system integrates an APP application and a MySQL database. It is designed to serve customer users, employee users, and administrators. The restaurant private room management system implements multiple key functions, including data analysis, role management, private room information management, reservation information management, cancellation record management, system management (carousel), message management, notice announcement management, news management (restaurant information, categorized news), mall management (dish information, category lists, discount coupons, membership levels, order lists, order delivery), permission management, and operation logs. By using the Spring Boot technology framework, it achieves the advantages of rapid development and flexible deployment. At the same time, it leverages the APP to provide a user-friendly interface and MySQL database to manage data persistence and security, effectively supporting the realization and expansion of platform functions. Through this technology, the platform can achieve rapid iteration updates and stability maintenance, ensuring long-term stable operation.

Through the design and implementation of the restaurant private room management system in this paper, it is not only to develop a practical restaurant private room management system APP, but more importantly, to explore how to better meet the needs of modern catering business through this process, and promote the development of the catering industry to a more efficient and intelligent direction.

Keywords: Restaurant private room management system; Spring Boot framework; APP; MySQL

目  录

1 前  言

1.1 选题背景

1.2 研究意义

1.3 国内外研究现状

1.3.1 国内研究现状

1.3.2 国外研究现状

1.4 系统的特点

1.5 论文结构与章节安排

2 关键技术

2.1 Java

2.2 MySQL

2.3 Spring Boot框架

2.4 B/S模式

2.5 uni-app

3 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 功能需求分析

3.3 系统性能分析

3.4 系统流程分析

3.4.1 程序操作流程

3.4.2 登录流程

3.4.3 注册流程

4 系统设计

4.1 总体设计

4.1.1 框架设计

4.1.2 功能模块设计

4.2 数据库设计

4.2.1 E-R图

4.2.1 数据库表结构设计

5 系统实现

5.1 系统环境分析

5.2 系统前台模块

5.2.1 用户登录界面

5.2.2 用户注册界面

5.2.3 顾客用户首页界面

5.3 后台管理模块

6 系统测试

6.1 测试目的与意义

6.2 测试用例

6.3 测试分析

7 结束语

参考文献

致  谢

 

1   

1.1选题背景

随着信息技术的飞速发展和人们生活水平的提高,餐饮行业的竞争也日益激烈。顾客对于用餐体验的要求不仅仅停留在食物的质量和服务的态度上,还包括用餐环境、私密性以及个性化服务等多个方面[1]。在这种背景下,包厢作为提供给顾客更高级别隐私保护和用餐体验的重要场所,其管理效率和服务质量直接影响到顾客的整体满意度和餐厅的运营效益[2]。

传统的包厢管理模式主要依赖人工记录与调度,这种方式不仅效率低下,而且容易出错,难以满足现代餐饮业快速发展的需求。尤其是在高峰期,服务员需要处理大量的预订、变更以及现场安排工作,这极大地影响了服务质量和顾客体验[3]。

1.2研究意义

通过信息化手段,可以实现实时的包厢状态更新、预订信息管理等操作,减少人为错误,提高工作效率。顾客可以通过APP查看包厢的实时状态,进行在线预订或取消预订,享受更加便捷高效的服务,同时也能根据自己的喜好选择合适的包厢,提升了用餐体验。系统能够收集和分析各种数据,如包厢使用频率、顾客偏好等,为餐厅管理层提供科学的决策依据,有助于优化资源配置,制定合理的营销策略。在竞争激烈的餐饮市场中,拥有先进管理系统的餐厅更能吸引顾客,尤其是那些追求高品质用餐体验的消费者,从而增强了餐厅的市场竞争力。推动餐饮行业向智能化方向发展,是顺应时代潮流的表现,也是未来餐饮行业发展的一个重要趋势。

综上所述,研究并开发一款餐厅包厢管理系统APP,对于提升餐厅管理水平、优化顾客体验以及推动整个餐饮行业的智能化发展都具有重要的现实意义。

1.3国内外研究现状

1.3.1国内研究现状

 在国内,随着互联网技术的普及和移动设备的广泛使用,餐饮行业逐渐向信息化、智能化方向发展。许多餐厅已经开始采用电子点餐系统、客户关系管理系统(CRM)等信息技术来提高运营效率和服务质量[4]。对于包厢管理系统的具体应用,虽然没有专门针对包厢管理APP的大量文献报道,但不少研究探讨了如何利用信息技术提升餐饮业的整体管理水平[5]。

例如,一些研究集中在开发基于Java或ASP.NET技术的餐饮管理系统,这些系统通常包括菜单管理、库存管理、订单处理等功能模块,有的也涵盖了包厢预订和管理功能。然而,这些研究大多侧重于整个餐饮业务流程的信息化,而专门针对包厢管理的移动应用程序设计较少。

1.3.2国外研究现状

在国外,尤其是发达国家,由于信息技术起步较早,因此在餐饮管理系统方面有着较为成熟的经验和技术积累。国外的一些高端餐厅和连锁餐饮品牌很早就开始使用定制化的软件解决方案来优化内部管理和顾客服务,其中就包括包厢管理的功能[6]。

国际上,对于餐厅管理系统的讨论更多地涉及到用户体验设计、数据安全、跨平台兼容性等方面的问题。此外,随着云计算、大数据分析以及人工智能技术的发展,国外的研究者们也在探索如何将这些前沿技术融入到餐饮管理系统中,以提供更加智能的服务。比如,通过机器学习算法预测顾客偏好,或是利用物联网(IoT)技术实现对包厢环境(如温度、灯光)的自动化控制[7]。

1.4系统的特点

(1)餐厅包厢管理系统中的web后台管理中的后端不再使用古老的jsp+javabean+servlet技术,而是使用当前主流的Spring Boot框架,它减少Java配置代码,简化编程代码,目前Spring Boot框架也是很多企业选择的框架之一。

(2)餐厅包厢管理系统中的前端使用的是uni-app框架,它是使用Vue.js 开发所有前端应用的框架,可应用多平台,性能优秀,周边生态丰富且开发学习成本低。

(3)餐厅包厢管理系统中数据库用的MySQL,它执行效率高,运行速度快,安全性能也很高,同时无平台限制。

1.5论文结构与章节安排

本文共分为七章,章节内容安排如下:

第一章:引言,主要介绍餐厅包厢管理系统领域研究的背景和意义,概述研究的现状和系统特点。

第二章:关键技术,主要探讨和说明实现餐厅包厢管理系统的关键技术。

第三章:系统分析,主要从餐厅包厢管理系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。

第四章:系统设计,主要对餐厅包厢管理系统功能模块、数据库进行功能设计。

第五章:系统实现,主要介绍了餐厅包厢管理系统各个顾客用户的功能、系统界面的实现。

第六章:系统测试,主要对餐厅包厢管理系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。

第七章:结束语。总结全文研究内容,提出对共建平台领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。

2  关键技术

2.1Java

Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在餐厅包厢管理系统中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。

2.2MySQL

MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在餐厅包厢管理系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。

2.3Spring Boot框架

Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序;拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求。在餐厅包厢管理系统中,Spring Boot可以帮助开发团队快速搭建后端服务,并实现各种功能模块的集成和管理。

2.4B/S模式

B/S模式(Browser/Server模式)是一种网络应用架构,其中浏览器(Browser)作为客户端与服务器(Server)进行通信。这种模式使用户可以通过普通的Web浏览器访问应用程序,而无需安装额外的客户端软件。用户通过浏览器发送请求,服务器接收并处理这些请求,然后将结果返回给浏览器显示给用户。在餐厅包厢管理系统中,uni-app结合B/S模式B/S模式的优势包括跨平台的兼容性,用户可以在不同操作系统和设备上访问应用程序。此外,维护和部署也更为简便,并且能够实现较高的安全性,因为服务器端控制了应用程序和数据的访问权限。

2.5uni-app

uni-app是一个跨平台的应用开发框架,可以同时用于开发微信小程序、H5应用、Android和iOS应用等,减少了开发成本和时间。uni-app提供了丰富的组件库和插件,可以快速构建各种功能模块,提高开发效率。通过优化渲染引擎和网络请求,提高了应用程序的性能和用户体验。App端支持原生渲染,可支撑更流畅的用户体验。小程序端的性能优于市场其他框架。同时基于通用的前端技术栈,采用vue语法+微信小程序api,无额外学习成本。

3  系统分析

3.1可行性分析

3.1.1技术可行性

从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。同时,MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。

3.1.2经济可行性

从经济角度来看,基于Spring Boot搭建优化共建平台的投入成本相对较低,因为Spring Boot本身是一个免费、开源的框架,可以节省开发成本。同时,使用MySQL作为数据库也具有成本效益高的优势。APP作为平台的使用界面,能够更好地吸引用户参与,从而提升平台的商业化价值,增加商业合作和广告推广等收入来源。因此,本系统具有经济可行性。

3.1.3操作可行性

从操作角度来看,Spring Boot的简洁性和高度集成的特点使得系统的部署和运行相对简单,容易维护和管理。同时,APP作为用户主要的操作入口,有利于用户体验的优化,提升用户的参与度和留存率。因此,本系统具有操作可行性。

综合来看,基于Spring Boot的优化共建平台的设计与实现在经济、技术、操作等方面都具有较高的可行性,能够为用户提供便捷的服务,促进共建共享的理念。

3.2功能需求分析

本系统可以分为:顾客用户、员工用户和管理员三大角色。

前台APP端:系统前台用户为顾客用户使用者,主要包括首页(推荐、在线反馈、包厢信息、菜品信息、餐厅资讯)、购物车、餐厅资讯、我的(基本信息、我的资产、我的订单、收货地址、收藏、评论、预约信息、取消信息、在线反馈、订单配送)等功能。

后台管理端:后台系统划分为员工用户和管理员两个使用者,管理员可登录系统后台进行管理,拥有后台数据分析、角色管理、包厢信息管理、预约信息管理、取消记录管理、系统管理(轮播图)、留言管理、通知公告管理、新闻管理(餐厅资讯、资讯分类)、商城管理(菜品信息、分类列表、优惠卷、会员等级、订单列表、订单配送)、权限管理、操作日志等功能;员工用户登录后则有据分析、预约信息管理、取消记录管理等功能。

顾客用户角色用例如下图所示。

图3.1顾客用户用例图

系统前台APP端顾客用户具体功能说明如下所示。

  1. 注册登录:游客可以通过注册成为系统用户,使用账号密码可登录系统前台,使用系统功能。
  2. 首页:顾客用户登录系统后首先进入首页界面,可查看轮播图、推荐、在线反馈、包厢信息、菜品信息、餐厅资讯等信息和其他系统功能导航栏。
  3. 购物车:用户可将喜欢的菜品加入购物车,进行结算前的临时管理;支持数量增减、删除商品、一键清空等操作。
  4. 餐厅资讯:顾客用户可查看管理员发布的所有餐厅资讯信息,支持搜索文章,可点击查看详情,可点赞、收藏和评论某一餐厅资讯。
  5. 我的:顾客用户可对基本信息、我的资产、我的订单、收货地址、收藏、评论、预约信息、取消信息、在线反馈、订单配送等信息进行管控。例如,基本信息:查看和修改个人资料(头像、昵称、联系方式等)。我的资产:查看余额、积分、优惠券、会员等级等资产信息。我的订单:查看历史订单详情,支持订单状态追踪、再次购买、评价等。收货地址:管理收货地址信息,支持新增、编辑、删除地址。收藏:查看收藏的菜品或包厢信息,方便下次预订或购买。评论:对已完成订单中的菜品或服务进行评价打分。预约信息:查看自己的包厢预约记录,包括预约时间、状态、包厢信息等。取消信息:查看自己取消的预约记录,并了解取消原因和退款情况。在线反馈:提交对餐厅的意见建议或投诉信息,等待客服回复。订单配送:查看当前订单的配送进度,包括配送员信息、预计送达时间等。

员工用户角色用例如下图所示。

图3.2员工用户用例图

系统后台APP端员工用户具体功能说明如下所示。

  1. 注册登录:员工用户由管理员进行分配账号密码,支持在后台进行登录,使用系统功能。
  2. 数据分析:查看包厢使用情况、预约趋势、订单统计等数据图表。提供可视化报表,辅助员工了解运营状况。
  3. 预约信息管理:可查看所有顾客提交的包厢预约请求。支持审核、确认或拒绝预约申请。可手动修改预约状态或时间。
  4. 取消记录管理:查看所有顾客取消预约的记录。可对取消原因进行分类统计,便于后续优化服务策略。

管理员角色用例如下图所示。

图3.3管理员用例图

系统后台管理端管理员具体功能说明如下所示。

  1. 登录:管理员账号密码由系统生成,可使用账号密码可进行登录系统后台,使用系统功能进行管理,并可对自己的个人信息和密码进行管控。
  2. 数据分析:综合分析餐厅整体运营数据,包括包厢利用率、顾客行为、订单转化率、会员活跃度等。提供多维度数据展示与导出功能,支持决策制定。
  3. 角色管理:创建、编辑、删除不同角色(如员工、顾客、管理员等),并为其分配相应权限。
  4. 包厢信息管理:添加、编辑、删除包厢信息(如名称、类型、容纳人数、价格、图片等)。设置包厢状态(空闲、占用、维护等)。支持批量操作与状态更新。
  5. 预约信息管理:查看、处理所有用户的包厢预约请求。支持预约订单的状态变更、人工调整、备注说明等。
  6. 取消记录管理:查看所有用户取消预约的记录,包括取消时间、原因、是否退款等信息。支持数据分析与异常检测。
  7. 系统管理:管理首页轮播图内容,上传或删除广告图、活动宣传图等。设置轮播图跳转链接或显示顺序。
  8. 留言管理:查看顾客在APP中提交的留言信息。支持回复、标记已读、删除等功能。
  9. 通知公告管理:发布、编辑、删除系统通知或餐厅公告。支持按时间排序、置顶重要通知。
  10. 新闻管理:包含了餐厅资讯、资讯分类。发布关于餐厅的新闻动态、促销活动等内容。对资讯进行分类管理(如“活动通知”、“菜品推荐”等)。
  11. 商城管理:包含了菜品信息、分类列表、优惠卷、会员等级、订单列表、订单配送等子菜单。菜品信息:添加、编辑、删除菜单菜品信息(名称、价格、图片、描述、分类等)。分类列表:设置菜品分类(如凉菜、热菜、汤类、甜点等)。优惠券:发放、回收、设置优惠券规则(满减、折扣、限时等)。会员等级:设置不同会员等级及其权益(积分、优惠卷等)。订单列表:查看所有订单信息(下单人、金额、状态、时间等)。支持订单状态更改、查看详情、导出数据等。订单配送:管理订单配送流程,跟踪配送人员、配送状态、配送时间等。
  12. 权限管理:管理各角色用户的操作权限,确保系统安全性。支持细粒度权限控制(如页面访问、按钮级权限)。
  13. 操作日志:记录管理员及员工的所有操作行为(如登录、修改配置、处理订单等)。用于审计、排查问题或评估操作合规性。

3.3系统性能分析

对于Spring Boot餐厅包厢管理系统的设计与实现,下面是系统性能分析表:

表3.1性能需求表

项目

内容

响应时间

系统对用户请求的响应时间需在500ms以内

并发用户数

系统需要支持1000个并发用户同时访问

吞吐量

系统每秒需要处理1000个请求

可用性

系统需要保证每月99.9%的可用性

数据安全

用户敏感数据需要加密存储,并支持数据库备份和恢复

数据一致性

系统中的数据操作需保证ACID特性,确保数据一致性

扩展性

系统需要支持水平扩展,能够方便地增加服务器节点以应对高请求量

可维护性

系统代码需要清晰易懂、结构良好,方便日后维护和修改

日志记录

系统需要记录用户操作日志、异常日志以及系统运行日志

监控报警

系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员

缓存设置

针对频繁使用的数据,系统需要进行合适的缓

3.4系统流程分析

3.4.1程序操作流程

用户访问平台网站,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图所示。

图3.4程序操作流程图

3.4.2登录流程

用户访问平台的网站,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图所示。

图3.5登录流程图

3.4.3注册流程

未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、电子邮件等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如下图所示。

图3.6注册流程图

4  系统设计

4.1总体设计

4.1.1框架设计

B/S架构,即浏览器/服务器架构,是一种基于Web的分布式计算范式。在此架构中,应用程序的逻辑被巧妙地区分为客户端和服务器两部分。具体而言,客户端借助广泛使用的浏览器界面,进行应用访问与操作;而服务器端则肩负起业务逻辑处理、数据存储及管理的核心职责。值得一提的是,客户端无需安装特定的软件,用户仅需通过浏览器输入相应的URL地址,即可轻松访问应用程序,这一特性极大地提升了用户的使用便捷性和系统的维护效率。服务器端通常采用高性能的计算机和数据库系统,能够处理大量并发请求和复杂的业务逻辑。B/S架构的优势在于其跨平台性和易于维护性,开发者可以通过更新服务器端的代码来实现整个系统的升级和维护,而无需逐一更新客户端。

图4.1系统架构图

4.1.2功能模块设计

功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。餐厅包厢管理系统由多个功能模块组成,每个模块下又包含具体的功能操作。功能模块图如下图所示。

图4.2系统架构图

4.2数据库设计

4.2.1E-R

E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助我们理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本餐厅包厢管理系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.3总E-R图

4.2.1数据库表结构设计

在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。

表 4-1-access_token(登陆访问时长)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

token_id

int

临时访问牌ID

2

token

varchar

64

临时访问牌

3

info

text

65535

信息

4

maxage

int

最大寿命:默认2小时

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

user_id

int

用户编号

表 4-2-address(收货地址)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

address_id

int

收货地址

2

name

varchar

32

姓名

3

phone

varchar

13

手机

4

postcode

varchar

8

邮编

5

address

varchar

255

地址

6

user_id

mediumint

用户ID

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

9

default

tinyint

默认判断

表 4-3-article(文章)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

article_id

mediumint

文章id

2

title

varchar

125

标题

3

type

varchar

64

文章分类

4

hits

int

点击数

5

praise_len

int

点赞数

6

create_time

timestamp

创建时间

7

update_time

timestamp

更新时间

8

source

varchar

255

来源

9

url

varchar

255

来源地址

10

tag

varchar

255

标签

11

content

longtext

4294967295

正文

12

img

varchar

255

封面图

13

description

text

65535

文章描述

表 4-4-article_type(文章分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

smallint

分类ID

2

display

smallint

显示顺序

3

name

varchar

16

分类名称

4

father_id

smallint

上级分类ID

5

description

varchar

255

描述

6

icon

text

65535

分类图标

7

url

varchar

255

外链地址

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-5-auth(用户权限管理)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

auth_id

int

授权ID

2

user_group

varchar

64

用户组

3

mod_name

varchar

64

模块名

4

table_name

varchar

64

表名

5

page_title

varchar

255

页面标题

6

path

varchar

255

路由路径

7

parent

varchar

64

父级菜单

8

parent_sort

int

父级菜单排序

9

position

varchar

32

位置

10

mode

varchar

32

跳转方式

11

add

tinyint

是否可增加

12

del

tinyint

是否可删除

13

set

tinyint

是否可修改

14

get

tinyint

是否可查看

15

field_add

text

65535

添加字段

16

field_set

text

65535

修改字段

17

field_get

text

65535

查询字段

18

table_nav_name

varchar

500

跨表导航名称

19

table_nav

varchar

500

跨表导航

20

option

text

65535

配置

21

create_time

timestamp

创建时间

22

update_time

timestamp

更新时间

表 4-6-box_information(包厢信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

box_information_id

int

包厢信息ID

2

restaurant

varchar

64

所属餐厅

3

restaurant_location

varchar

64

餐厅位置

4

box_name

varchar

64

包厢名称

5

box_type

varchar

64

包厢类型

6

box_cover

varchar

255

包厢封面

7

box_price

double

包厢价格

8

box_capacity

double

包厢容量

9

box_status

varchar

64

包厢状态

10

box_introduction

longtext

4294967295

包厢简介

11

hits

int

点击数

12

praise_len

int

点赞数

13

collect_len

int

收藏数

14

comment_len

int

评论数

15

recommend

int

智能推荐

16

reservation_information_limit_times

int

在线预约限制次数

17

create_time

datetime

创建时间

18

update_time

timestamp

更新时间

表 4-7-cancel_record(取消记录)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

cancel_record_id

int

取消记录ID

2

appointment_number

varchar

64

预约编号

3

restaurant

varchar

64

所属餐厅

4

restaurant_location

varchar

64

餐厅位置

5

box_name

varchar

64

包厢名称

6

box_type

varchar

64

包厢类型

7

box_price

varchar

64

包厢价格

8

reservation_user

int

预约用户

9

appointment_time

datetime

预约时间

10

cancel_time

datetime

取消时间

11

reason_for_cancellation

text

65535

取消原因

12

create_time

datetime

创建时间

13

update_time

timestamp

更新时间

14

source_table

varchar

255

来源表

15

source_id

int

来源ID

16

source_user_id

int

来源用户

表 4-8-cart(购物车)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

cart_id

int

购物车ID

2

title

varchar

64

标题

3

img

varchar

255

图片

4

user_id

int

用户ID

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

state

int

状态:使用中,已失效

8

price

double

单价

9

price_ago

double

原价

10

price_count

double

总价

11

num

int

数量

12

goods_id

mediumint

商品id

13

type

varchar

64

商品分类

14

description

varchar

255

描述

表 4-9-code_token(验证码)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

code_token_id

int

验证码ID

2

token

varchar

255

令牌

3

code

varchar

255

验证码

4

expire_time

timestamp

失效时间

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

表 4-10-collect(收藏)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

collect_id

int

收藏ID

2

user_id

int

收藏人ID

3

source_table

varchar

255

来源表

4

source_field

varchar

255

来源字段

5

source_id

int

来源ID

6

title

varchar

255

标题

7

img

varchar

255

封面

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-11-comment(评论)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

comment_id

int

评论ID

2

user_id

int

评论人ID

3

reply_to_id

int

回复评论ID

4

content

longtext

4294967295

内容

5

nickname

varchar

255

昵称

6

avatar

varchar

255

头像地址

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

9

source_table

varchar

255

来源表

10

source_field

varchar

255

来源字段

11

source_id

int

来源ID

表 4-12-coupon(优惠券)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

coupon_id

int

优惠券ID

2

coupon_user_id

int

优惠券用户ID

3

coupon_user_auth

varchar

255

优惠券用户

4

coupon_name

varchar

255

优惠券名称

5

coupon_price

int

优惠券价格

6

coupon_price1

int

优惠券券后价格

7

coupon_time

varchar

255

优惠券时间

8

coupon_type

varchar

255

优惠券类型

9

create_time

timestamp

创建时间

10

update_time

timestamp

更新时间

表 4-13-coupon_user(用户优惠券)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

id

int

用户优惠券ID

2

user_id

int

用户ID

3

coupon_id

int

优惠券ID

4

is_use

int

是否使用

5

coupon_user_id

int

用户优惠券ID

表 4-14-customer_user(顾客用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

customer_user_id

int

顾客用户ID

2

customer_name

varchar

64

顾客姓名

3

user_gender

varchar

64

用户性别

4

contact_number

varchar

16

联系号码

5

examine_state

varchar

16

审核状态

6

user_id

int

用户ID

7

create_time

datetime

创建时间

8

update_time

timestamp

更新时间

表 4-15-dishes_information(菜品信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

dishes_information_id

int

菜品信息ID

2

location_information

varchar

64

位置信息

3

dishes_introduction

text

65535

菜品简介

4

hits

int

点击数

5

collect_len

int

收藏数

6

comment_len

int

评论数

7

cart_title

varchar

125

标题

8

cart_img

text

65535

封面图

9

cart_description

varchar

255

描述

10

cart_price_ago

double

原价

11

cart_price

double

卖价

12

cart_inventory

int

商品库存

13

cart_type

varchar

64

商品分类

14

cart_content

longtext

4294967295

正文

15

cart_img_1

text

65535

主图1

16

cart_img_2

text

65535

主图2

17

cart_img_3

text

65535

主图3

18

cart_img_4

text

65535

主图4

19

cart_img_5

text

65535

主图5

20

cart_integral

int

积分

21

create_time

datetime

创建时间

22

update_time

timestamp

更新时间

表 4-16-employee_user(员工用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

employee_user_id

int

员工用户ID

2

employee_name

varchar

64

员工姓名

3

employee_gender

varchar

64

员工性别

4

mobile_phone_number

varchar

16

手机号码

5

employee_remarks

varchar

64

员工备注

6

examine_state

varchar

16

审核状态

7

user_id

int

用户ID

8

create_time

datetime

创建时间

9

update_time

timestamp

更新时间

表 4-17-goods(商品信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

goods_id

mediumint

产品ID

2

title

varchar

125

标题

3

img

text

65535

封面图:用于显示于产品列表页

4

description

varchar

255

描述

5

price_ago

double

原价

6

price

double

卖价

7

sales

int

销量

8

inventory

int

商品库存

9

type

varchar

64

商品分类

10

hits

int

点击量

11

content

longtext

4294967295

正文

12

img_1

text

65535

主图1

13

img_2

text

65535

主图2

14

img_3

text

65535

主图3

15

img_4

text

65535

主图4

16

img_5

text

65535

主图5

17

create_time

timestamp

创建时间

18

update_time

timestamp

更新时间

19

customize_field

text

65535

自定义字段

20

source_table

varchar

255

来源表

21

source_field

varchar

255

来源字段

22

source_id

int

来源ID

23

user_id

int

添加人

24

integral

int

积分

表 4-18-goods_type(商品类型)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

int

商品分类ID

2

father_id

smallint

上级分类ID

3

name

varchar

255

商品名称

4

desc

varchar

255

描述

5

icon

varchar

255

图标

6

source_table

varchar

255

来源表

7

source_field

varchar

255

来源字段

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-19-hits(用户点击)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

hits_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

表 4-20-logistics_delivery(物流配送)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

logistics_delivery_id

int

物流配送ID

2

order_number

varchar

64

订单号

3

product_name

varchar

64

商品名称

4

purchase_quantity

varchar

64

购买数量

5

total_transaction_amount

double

交易总额

6

the_date_of_issuance

date

发货日期

7

delivery_number

varchar

30

配送订单

8

ordinary_users

int

普通用户

9

shipping_address

varchar

64

收货地址

10

delivery_status

varchar

64

配送状态

11

signing_status

varchar

64

签收状态

12

recommend

int

智能推荐

13

contact_name

varchar

255

联系人名字

14

merchant_id

int

商家id

15

create_time

datetime

创建时间

16

update_time

timestamp

更新时间

表 4-21-message(留言板)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

message_id

int

留言板ID

2

user_id

int

用户ID

3

title

varchar

64

标题

4

content

longtext

4294967295

内容

5

nickname

varchar

32

昵称

6

avatar

varchar

255

头像

7

email

varchar

125

留言者邮箱

8

phone

varchar

11

留言者手机号码

9

create_time

timestamp

创建时间

10

update_time

timestamp

更新时间

11

reply

longtext

4294967295

回复

12

reply_state

tinyint

回复状态

表 4-22-notice(公告)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

notice_id

mediumint

公告ID

2

title

varchar

125

标题

3

content

longtext

4294967295

正文

4

create_time

timestamp

创建时间

5

update_time

timestamp

更新时间

表 4-23-operation_log(操作日志表)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

operation_log_id

int

操作日志ID

2

user_group

varchar

64

用户角色

3

user_name

varchar

64

用户账号

4

routes

varchar

64

模块名称

5

create_time

datetime

创建时间

6

update_time

timestamp

更新时间

表 4-24-order(订单)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

order_id

int

订单ID

2

order_number

varchar

64

订单号

3

goods_id

mediumint

商品ID

4

title

varchar

255

商品标题

5

img

varchar

255

商品图片

6

price

double

价格

7

price_ago

double

原价

8

num

int

数量

9

price_count

double

总价

10

norms

varchar

255

规格

11

type

varchar

64

商品分类

12

contact_name

varchar

32

联系人姓名

13

contact_email

varchar

125

联系人邮箱

14

contact_phone

varchar

11

联系人手机

15

contact_address

varchar

255

收件地址

16

postal_code

varchar

9

邮政编码

17

user_id

int

买家ID

18

merchant_id

mediumint

商家ID

19

create_time

timestamp

创建时间

20

update_time

timestamp

更新时间

21

description

varchar

255

描述

22

state

varchar

16

订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成

23

remark

text

65535

订单备注

24

delivery_state

varchar

16

发货状态:未配送,已配送

25

vip_discount

double

折扣

26

integral

int

积分

27

buy_type

tinyint

1-全额购买,2-积分兑换

表 4-25-praise(点赞)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

praise_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

status

tinyint

点赞状态:1为点赞,0已取消

表 4-26-reservation_information(预约信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

reservation_information_id

int

预约信息ID

2

appointment_number

varchar

64

预约编号

3

restaurant

varchar

64

所属餐厅

4

restaurant_location

varchar

64

餐厅位置

5

box_name

varchar

64

包厢名称

6

box_type

varchar

64

包厢类型

7

box_price

varchar

64

包厢价格

8

reservation_user

int

预约用户

9

customer_name

varchar

64

顾客姓名

10

contact_number

varchar

64

联系号码

11

appointment_time

datetime

预约时间

12

appointment_remarks

text

65535

预约备注

13

examine_state

varchar

16

审核状态

14

examine_reply

varchar

255

审核回复

15

pay_state

varchar

16

支付状态

16

pay_type

varchar

16

支付类型: 微信、支付宝、网银

17

cancel_record_limit_times

int

在线取消限制次数

18

create_time

datetime

创建时间

19

update_time

timestamp

更新时间

20

source_table

varchar

255

来源表

21

source_id

int

来源ID

22

source_user_id

int

来源用户

表 4-27-restaurant_information(餐厅信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

restaurant_information_id

int

餐厅信息ID

2

restaurant_name

varchar

64

餐厅名称

3

restaurant_cover

varchar

255

餐厅封面

4

restaurant_location

varchar

64

餐厅位置

5

per_capita_consumption

double

人均消费

6

restaurant_rating

varchar

64

餐厅评分

7

restaurant_introduction

text

65535

餐厅简介

8

hits

int

点击数

9

praise_len

int

点赞数

10

collect_len

int

收藏数

11

comment_len

int

评论数

12

create_time

datetime

创建时间

13

update_time

timestamp

更新时间

表 4-28-slides(轮播图)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

slides_id

int

轮播图ID

2

title

varchar

64

标题

3

content

varchar

255

内容

4

url

varchar

255

链接

5

img

varchar

255

轮播图

6

hits

int

点击量

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

表 4-29-upload(文件上传)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

upload_id

int

上传ID

2

name

varchar

64

文件名

3

path

varchar

255

访问路径

4

file

varchar

255

文件路径

5

display

varchar

255

显示顺序

6

father_id

int

父级ID

7

dir

varchar

255

文件夹

8

type

varchar

32

文件类型

表 4-30-user(用户账户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

user_id

int

用户ID

2

state

smallint

账户状态:(1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

所在用户组

4

login_time

timestamp

上次登录时间

5

phone

varchar

11

手机号码

6

phone_state

smallint

手机认证:(0未认证|1审核中|2已认证)

7

username

varchar

16

用户名

8

nickname

varchar

16

昵称

9

password

varchar

64

密码

10

email

varchar

64

邮箱

11

email_state

smallint

邮箱认证:(0未认证|1审核中|2已认证)

12

avatar

varchar

255

头像地址

13

open_id

varchar

255

针对获取用户信息字段

14

create_time

timestamp

创建时间

15

vip_level

varchar

255

会员等级

16

vip_discount

double

会员折扣

17

integral

int

积分

表 4-31-user_group(用户组)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

group_id

mediumint

用户组ID

2

display

smallint

显示顺序

3

name

varchar

16

名称

4

description

varchar

255

描述

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

register

smallint

注册位置

9

create_time

timestamp

创建时间

10

update_time

timestamp

更新时间

表 4-32-vip_level(论坛分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

vip_level_id

smallint

等级ID

2

name

varchar

255

等级名称

3

discount

double

折扣

4

create_time

timestamp

创建时间

5

update_time

timestamp

更新时间

5  系统实现

5.1系统环境分析

考虑到餐厅包厢管理系统主要面对部分人群,网站的访问量不大。系统处理、统计分析工作简单,Tomcat服务器能够满足中小型网络用户的数据处理,通过互联网Internet 接入及MySQL 5.6以上的数据库应用的需求点。系统具体开发环境如下表所示:

表5.1系统环境表

项目

开发环境

操作系统

Windows 11、Windows 10、Windows 8、Windows 7

开发语言

Java

使用框架

Spring Boot、uni-app

体系结构

三层B/S体系结构

开发工具

IDEA(2020版)/MyEclipse(2017)/Eclipse、Vs Code

数据库

MySQL 5.6以上

数据库管理工具

Navicat

JDK版本

Java 1.8

Maven

apache-maven 3.6.1-bin

Tomcat

apache-tomcat-7.0.88

移动端

iOS、Android、Web(响应式)、以及各种小程序

5.2系统前台模块

5.2.1用户登录界面

用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。

图5.1用户登录界面设计

登录关键代码如下:

 /**

     * 登录

     * @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, "账号或密码不正确");

        }

    }

5.2.2用户注册界面

用户注册时,系统要求用户提供必要的信息,例如用户名、密码、电子邮件地址等。这些信息通常由用户在注册表单中输入,并通过前端验证确保格式的正确性。注册过程完成后,系统会为新用户创建一个账户。这包括分配一个唯一的用户ID和设置初始的权限或者角色。

图5.2用户注册界面设计

注册关键代码如下:

    /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}    

5.2.3顾客用户首页界面

顾客用户登录系统后首先进入首页界面,可查看轮播图、推荐、在线反馈、包厢信息、菜品信息、餐厅资讯等信息和其他系统功能导航栏。

例如,顾客用户前台首页主界面图如下所示。

图5.3顾客用户首页主界面设计

例如,顾客用户前台首页包厢信息界面图如下所示。

图5.4顾客用户包厢信息界面设计

例如,顾客用户前台首页包厢信息界面图如下所示。

5.2.4顾客用户我的界面

顾客用户可对基本信息、我的资产、我的订单、收货地址、收藏、评论、预约信息、取消信息、在线反馈、订单配送等信息进行管控。例如,基本信息:查看和修改个人资料(头像、昵称、联系方式等)。我的资产:查看余额、积分、优惠券、会员等级等资产信息。我的订单:查看历史订单详情,支持订单状态追踪、再次购买、评价等。收货地址:管理收货地址信息,支持新增、编辑、删除地址。收藏:查看收藏的菜品或包厢信息,方便下次预订或购买。评论:对已完成订单中的菜品或服务进行评价打分。预约信息:查看自己的包厢预约记录,包括预约时间、状态、包厢信息等。取消信息:查看自己取消的预约记录,并了解取消原因和退款情况。在线反馈:提交对餐厅的意见建议或投诉信息,等待客服回复。订单配送:查看当前订单的配送进度,包括配送员信息、预计送达时间等。

例如,顾客用户我的主界面图如下所示。

图5.5顾客用户我的主界面设计

例如,顾客用户我的订单界面图如下所示。

图5.6顾客用户我的订单界面设计

5.3后台管理模块

5.3.1角色管理界面

管理员可对顾客用户、员工用户和管理员等用户信息进行管控,包括进行增删改查操作,可点击详情进行查阅,员工用户由管理员进行分配账号密码。

图5.7角色管理界面设计

添加用户信息关键代码:

 @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);

 }

5.3.2包厢信息管理界面

管理员可查看所有包厢信息,进行增改删查操作,支持包厢名称、包厢类型、包厢状态搜索,可点击详情和查看评论,并进行在线预约等操作。

图5.8包厢信息管理界面设计

5.3.3预约信息管理界面

管理员可查看所有预约信息,进行查询和删除操作,支持预约编号、包厢名称、预约时间、审核状态、支付状态搜索,可点击详情进行查阅,可进行审核、在线取消等操作。员工用户则可对预约信息进行审核确认。

图5.9管理员预约信息管理界面设计

图5.10员工用户预约信息管理界面设计

5.3.4取消记录管理界面

管理员可对所有的取消信息进行管理,进行删改查操作,支持预约编号、包厢名称、取消时间搜索,可点击详情进行查阅。员工用户则只可查看自己权限范围内的取消信息。

图5.11管理员取消记录管理界面设计

图5.12员工用户取消记录管理界面设计

5.3.5新闻管理界面

管理员可对餐厅资讯、资讯分类进行管理,进行增删改查操作,餐厅资讯支持标题、标签、分类搜索,可点击详情和查看评论进行查阅;资讯分类支持类型名称搜索。

图5.13新闻管理界面设计

上传图片关键代码如下:

   @PostMapping("/upload")

    public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

        log.info("进入方法");

        if (file.isEmpty()) {

            return error(30000, "没有选择文件");

        }

        try {

            //判断有没路径,没有则创建

            String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";

            File targetDir = new File(filePath);

            if (!targetDir.exists() && !targetDir.isDirectory()) {

                if (targetDir.mkdirs()) {

                    log.info("创建目录成功");

                } else {

                    log.error("创建目录失败");

                }

            }

            String fileName = file.getOriginalFilename();

            File dest = new File(filePath + fileName);

            log.info("文件路径:{}", dest.getPath());

            log.info("文件名:{}", dest.getName());

            file.transferTo(dest);

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("url", "/api/upload/" + fileName);

            return success(jsonObject);

        } catch (IOException e) {

            log.info("上传失败:{}", e.getMessage());

        }

        return error(30000, "上传失败");

    }

6  系统测试

6.1测试目的与意义

在软件开发生命周期中,系统测试占据着举足轻重的地位。通过进行全面而系统的测试,我们能够确保软件在实际使用环境中具备稳定运行的能力,从而满足用户的多样化需求,并显著提升软件的整体质量与可靠性。这一过程不仅有助于识别并修复潜在问题,还能为软件的持续优化提供有力支撑。

随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。图6-1就是纠错测试流程。

图6.1测试与纠错信息流程

6.2测试用例

在系统的功能验证阶段,我们将对全部的功能界面进行全面测试。具体而言,我们将模拟用户行为,输入各类数据并进行提交操作,随后仔细观察和分析每个页面的响应反馈。这一过程旨在验证系统的功能完整性,确保页面所呈现的功能与预期相符,并能够完全实现预设的交互逻辑。通过这种全面细致的测试方法,我们将确保系统在实际应用中能够稳定、准确地响应用户需求。

下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表6.1系统登录功能测试用例

功能描述

用于系统登录

测试目的

检测登录时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的用户名和密码带有非法字符

提示用户名或者密码错误

与预期结果一致

输入的用户名或者密码为空

提示用户名或者密码错误

与预期结果一致

输入的用户名和密码不存在

提示用户名或者密码错误

与预期结果一致

输入正确的用户名和密码

登录成功

与预期结果一致

下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表6.2注册功能测试用例

功能描述

用于用户注册

测试目的

检测用户注册时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的手机号不合法

提示请输入正确的手机号码

与预期结果一致

输入的字段为空

提示必填项不能为空

与预期结果一致

输入的密码少于6位

提示密码必须为6-12位

与预期结果一致

输入的密码大于12位

提示密码必须为6-12位

与预期结果一致

下表是包厢信息管理功能的测试用例,检测了包厢信息中对包厢信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;管理员登录系统。

表6.3包厢信息管理的测试用例

功能描述

用于包厢信息

测试目的

检测包厢信息时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加包厢信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加包厢信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改包厢信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改包厢信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除包厢信息,选择包厢信息删除

提示删除成功

与预期结果一致

点击搜索包厢信息,输入存在的包厢名称

查找出相应包厢信息

与预期结果一致

点击搜索包厢信息,输入不存在的包厢名称

不显示包厢信息

与预期结果一致

下表是菜品信息管理功能的测试用例,检测了菜品信息中对菜品信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;管理员登录系统。

表6.4菜品信息管理的测试用例

功能描述

用于菜品信息

测试目的

检测菜品信息时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加菜品信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加菜品信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改菜品信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改菜品信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除菜品信息,选择菜品信息删除

提示删除成功

与预期结果一致

点击搜索菜品信息,输入存在的菜品名称

查找出相应菜品信息信息

与预期结果一致

点击搜索菜品信息,输入不存在的菜品名称

不显示菜品信息信息

与预期结果一致

下表是预约信息管理功能的测试用例,检测了预约信息中对预约信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;管理员、员工用户、顾客用户登录系统。

表6.5预约信息管理的测试用例

功能描述

用于预约信息

测试目的

检测预约信息时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加预约信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加预约信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改预约信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改预约信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除预约信息,选择预约信息删除

提示删除成功

与预期结果一致

点击搜索预约信息,输入存在的预约编号

查找出相应预约信息信息

与预期结果一致

点击搜索预约信息,输入不存在的预约编号

不显示预约信息信息

与预期结果一致

6.3测试分析

本餐厅包厢管理系统开发与设计满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及会员能够方便操作。系统的主要特点和优点归纳如下:

(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给客户带来了极大的方便。

(2)该餐厅包厢管理系统开发与设计内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因客户的马虎操作而出现的失误,其操作方便,会员界面友好,能够上网的人都可以很好的进行操作。

经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进餐厅包厢管理系统APP管理的发展,发展前景广阔。

7  结束语

通过开发餐厅包厢管理系统,我深刻体会到软件开发的完整流程。首先,在确定开发目标后,我进行了详细的需求分析,明确了系统所需的各项功能。接下来,我设计了系统的功能框架和数据库结构,包括实体和数据表的设计。随后,我实现了各个功能模块的详细界面,并进行了全面的功能测试。尽管在这个过程中遇到了各种挑战,但通过反复分析和深入思考,借助相关文献和解决方案,我成功地解决了这些问题,最终使餐厅包厢管理系统顺利运行。

虽然该系统在功能上基本满足了用户的需求,但仍有许多需要改进的地方。在接下来的开发阶段,我计划进行以下改进:

用户界面设计:目前的操作页面虽然满足了简易操作的要求,但在多样化设计方面还有提升空间。我将考虑引入更多丰富的设计元素,使界面更加美观和用户友好。

安全性能优化:针对系统安全性能的增强,需要进一步优化系统的整体防护能力。具体而言,将要对程序退出的安全性进行加强,确保在退出过程中不存在数据泄露或系统不稳定的风险。同时,对系统的并发处理能力进行升级,以确保在高并发场景下系统能够保持稳定的运行状态。这些改进措施将共同提升系统的安全性能,确保在各种使用场景下,系统都能为用户提供安全、可靠的服务。

性能优化:在性能优化方面,将着重于对程序的数据结构和代码逻辑进行精细化调整。通过优化,旨在确保系统能在高负载下保持稳定且高效的运行状态。优化后的系统应具备快速处理大量事务的能力,显著缩短事务处理时间,从而提高整体工作效率。同时,致力于降低服务器资源的占用率,以实现资源的高效利用和成本的有效控制。这些优化措施将共同提升系统的整体性能,为用户提供更加流畅、高效的服务体验。

通过这些改进,我希望能够进一步提升餐厅包厢管理系统的用户体验和性能,使其更加贴合实际需求。

参考文献

  1. 赵叶平,陈圣,马军,等. 基于Spring Boot+VUE+Uni-app框架的文明城市智慧管理系统设计与实现 [J]. 工业控制计算机, 2025, 38 (04): 139-140+153.
  2. 龚丽. 基于uni-app框架的翻译程序设计与实现 [J]. 电脑编程技巧与维护, 2025, (02): 23-25.
  3. 陆向艳,贺梦帆. 基于Android的上课签到App的设计与实现 [J]. 电脑编程技巧与维护, 2025, (02): 74-76.
  4. 胡莉莉. 酒店管理餐厅服务中个性化服务创新路径探索 [J]. 食品界, 2025, (02): 93-95.
  5. 党国航,杜国庆,秦路恒. 智慧旅游背景下文旅康养App的设计与实现 [J]. 中原文化与旅游, 2025, (02): 49-51.
  6. Alawami A ,Alawami M ,Obaid A , et al. A Systematic Review of AI-Driven Innovations in the Hospitality Sector: Implications on Restaurant Management [J]. American Journal of Industrial and Business Management, 2025, 15 (01): 30-40.
  7. 鹿志远,韩嘉宇,牟文静,等. “壹点爱”图书共享公益APP的设计与实现 [J]. 中国新通信, 2024, 26 (24): 66-68.
  8. 李华东,樊丽娟,朱海罗. 智慧餐厅管理提升策略研究 [J]. 中国食品, 2024, (18): 106-109.
  9. Ordoñez A ,Urbano J ,Mesa F , et al. Design and implementation of an autonomous device with an app to monitor the performance of photovoltaic panels [J]. Energy Reports, 2024, 12 2498-2510.
  10. Zou J ,Wu X ,Tang J , et al. Design and implementation of intelligent dimming switch based on “Tuya Cloud” [J]. Journal of Physics: Conference Series, 2024, 2836 (1): 012021-012021.
  11. 李华东,樊丽娟,魏川. 智慧餐厅管理模式对用户体验的实际影响 [J]. 中国食品, 2024, (16): 118-122.
  12. 江文熙. 通往餐厅的数学之路 [J]. 数学大王(中高年级), 2024, (03): 22-23.
  13. 张芮绮. 线上餐厅管理系统的设计 [J]. 科技风, 2023, (06): 4-6.
  14. 李克. 餐厅智能炒菜机控制系统及信息管理系统开发[D]. 北京林业大学, 2022.
  15. Memis E K . Operational effects of using restaurant management system: An assessment according to business features [J]. International Journal of Gastronomy and Food Science, 2021, 25
  16. 武琨. 餐饮精益管理与过程控制[M]. 化学工业出版社: 202106. 436.
  17. 尹梦鑫. 基于Flutter的智能化餐厅菜品管理系统的设计与实现[D]. 山东大学, 2021.
  18. 武晓嫚,成淑萍,赵金阳. 餐厅预约系统的设计与实现 [J]. 福建电脑, 2020, 36 (12): 124-126.
  19. Baylen L N L . Analysis of Inventory Management Systems of Selected Small-Sized Restaurants in Quezon Province: Basis for an Inventory System Manual [J]. Journal of Business and Management Studies, 2020, 2 (3): 09-18.
  20. 牟明任,赵璘. 基于Java Web的餐厅管理系统的设计 [J]. 软件工程, 2020, 23 (09): 52-55.
  21. Febrianto N ,Hartono B ,Yulinarsari P A . Supply Chain Management Information System of Duck Meat at Madura Island (Case Study at Sinjay Duck Restaurant) [J]. IOP Conference Series Earth and Environmental Science, 2020, 478 (1): 012087.

致  谢

这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开老师的帮助。我对老师由衷的表示感谢,

其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。

最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。

再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。

由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。

请关注点赞+私信博主,免费领取项目源码

更多推荐