(赠源码) java+springboot+mysql 餐厅管理系统44813-计算机毕设选题推荐

                                                                              目  录

摘  要

1 绪论

1.1 选题背景与意义

1.2国内外研究现状

1.3论文结构与章节安排

2 餐厅管理系统系统分析

2.1 可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.1.3 法律可行性分析

2.2 功能需求分析

2.2.1 功能性分析

2.2.2 系统用例分析

2.2.2 非功能性分析

2.3  系统流程分析

2.3.1数据增加流程

2.3.2 数据修改流程

2.3.3 数据删除流程

2.4本章小结

3 餐厅管理系统总体设计

3.1 系统功能模块设计

3.2 数据库设计

3.2.1 数据库概念结构设计

3.2.2 数据库逻辑结构设计

3.3本章小结

4 餐厅管理系统详细设计与实现

4.1 用户登录界面

4.2 注册界面

4.3菜品信息模块模块

4.4座位信息管理模块

4.5仓库信息管理模块

4.6系统用户管理模块

4.7 订单信息管理模块

4.8新闻资讯模块模块

5系统测试

5.1 系统测试用例

5.2 系统测试结果

结论

参考文献

致  谢

  要

随着信息技术的飞速发展,餐饮行业正面临着前所未有的变革。传统的餐厅管理模式已难以满足现代餐饮企业的需求,急需一种高效、智能的管理系统来提升运营效率和服务质量。基于Spring Boot的餐厅管理系统应运而生,它借助Spring Boot框架的优势,为餐厅提供了全面的信息化解决方案。该系统不仅能够帮助餐厅实现订单管理、库存管理、员工管理等核心功能,还能通过数据分析为餐厅的决策提供有力支持。通过引入Spring Boot餐厅管理系统,餐厅将能够提升运营效率、优化服务流程,为顾客提供更为便捷、舒适的用餐体验。

本餐厅管理系统采用的数据库是Mysql,使用Springboot技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

关键词:餐厅管理系统;Java语言;Springboot框架;MySQL数据库;

Abstract

With the rapid development of information technology, the catering industry is facing unprecedented changes. The traditional restaurant management model is no longer able to meet the needs of modern catering enterprises, and there is an urgent need for an efficient and intelligent management system to improve operational efficiency and service quality. The restaurant management system based on Spring Boot has emerged, leveraging the advantages of the Spring Boot framework to provide comprehensive information solutions for restaurants. This system not only helps restaurants achieve core functions such as order management, inventory management, and employee management, but also provides strong support for restaurant decision-making through data analysis. By introducing the Spring Boot restaurant management system, the restaurant will be able to improve operational efficiency, optimize service processes, and provide customers with a more convenient and comfortable dining experience.

The database used in this restaurant management system is MySQL, developed using Springboot technology. During the design process, the system code was fully ensured to have good readability, practicality, scalability, universality, ease of maintenance, ease of operation, and concise pages.

Keywords:Restaurant management system; Java language; Springboot framework; MySQL database;

1 绪论

1.1 选题背景与意义

在当今信息化、数字化的时代,餐饮行业正面临着前所未有的挑战与机遇。随着消费者需求的日益多元化和市场竞争的加剧,传统餐厅管理模式已难以满足现代餐饮企业的快速发展需求。因此,开发一款高效、智能的餐厅管理系统成为行业发展的迫切需求。

Spring Boot餐厅管理系统的选题背景正是基于这样的行业现状和发展趋势。该系统的研发旨在通过信息化手段,提升餐厅的运营效率、优化服务流程,并为企业决策提供数据支持。其意义不仅在于满足餐厅日常管理的需要,更在于推动餐饮行业的数字化转型,提升整个行业的竞争力和服务水平。

通过Spring Boot餐厅管理系统的应用,餐厅将能够实现对订单、库存、员工等关键资源的全面管理,提高运营效率,降低成本。同时,系统还能通过数据分析,为餐厅提供精准的市场分析和用户画像,帮助企业制定更加科学的经营策略。因此,该选题具有重要的实践意义和广泛的应用前景。

1.2国内外研究现状

在国内,随着信息化技术的深入发展和餐饮行业的快速崛起,越来越多的餐饮企业开始关注并引入基于Spring Boot的餐厅管理系统。这些系统不仅具备高效、稳定的技术特性,还能够满足餐厅日常运营管理的多样化需求。通过订单管理、菜品管理、库存管理等功能模块的集成,餐厅能够实现对关键资源的全面掌控和优化配置。同时,系统还通过数据分析、用户画像等技术手段,为餐厅提供精准的市场分析和经营策略建议,帮助企业更好地把握市场机遇,提升竞争力。

在国外,尤其是欧美等发达国家,基于Spring Boot的餐厅管理系统同样得到了广泛的应用和推广。这些系统不仅技术成熟、功能完备,还结合了当地餐饮市场的实际需求和文化特色,为餐厅提供了个性化的解决方案。国外的研究者还在不断探索新的技术手段和商业模式,如人工智能、物联网等前沿技术的应用,以推动餐厅管理系统的持续优化和创新发展。

综上所述,基于Spring Boot的餐厅管理系统在国内外均呈现出蓬勃发展的态势,不仅为餐饮企业提供了高效、智能的管理工具,还推动了整个行业的数字化转型和智能化升级。随着技术的不断进步和应用场景的不断拓展,相信未来基于Spring Boot的餐厅管理系统将在餐饮行业中发挥更加重要的作用。

1.3论文结构与章节安排

(1)系统采用前后端分离的开发模式,使得前端和后端可以独立开发和维护,提高了开发效率和系统的可维护性。

(2)系统采用微服务架构,将系统拆分成多个独立的服务,每个服务可以独立部署和扩展,提高了系统的灵活性和可扩展性。

(3)系统采用 Docker 容器化部署技术,使得系统可以快速部署和迁移,提高了系统的可靠性和可移植性。

(4)系统采用自动化测试技术,包括单元测试、接口测试和性能测试等,提高了系统的稳定性和可靠性。

(5)系统采用安全保障技术,包括用户认证、授权、数据加密等,保障了系统的安全性和用户的隐私。

这些技术特色使得Springboot餐厅管理系统具有高效、稳定、可靠、安全等优点,能够满足用户的需求和提高用户的体验。

2 餐厅管理系统系统分析

系统需求分析是确保系统开发成功的关键环节之一。它在系统设计和实施中扮演着承上启下的角色。通过系统需求分析,可以准确挖掘出系统的需求,以精确解决现实中遇到的问题。若需求分析不到位,将对后续系统实现产生负面影响。

系统的优秀程度很大程度上取决于需求分析的准确性。充分完善的需求分析能够确保系统满足用户实际需求,并为设计和实施提供正确导向。相反,若需求分析不到位,则可能导致后续系统设计和实现偏离预期,无法达到用户期望。

因此,在系统开发过程中,系统需求分析具有重要地位。需要深入理解用户需求,与利益相关者进行有效沟通,并进行详尽的需求挖掘和分析。包括收集用户需求、定义功能和非功能需求、制定用户故事和用例等。只有经过充分准确的需求分析,方能为后续系统设计和实现奠定良好基础。

2.1 可行性分析

可行性分析是系统开发过程中的重要环节,旨在评估项目的可行性和可实施性。通过综合分析技术、经济、法律和操作等方面,判断项目是否值得投资和实施。

2.1.1 技术可行性分析

Springboot餐厅管理系统的开发中,我们使用了MySQL数据库作为数据存储,并借助IDEA、Tomcat等开发工具来提高开发效率和便利性。MySQL作为可靠的关系型数据库管理系统,能够高效地存储和管理系统所需的各种数据。IDEA作为开发工具,提供了丰富的功能和友好的开发环境,帮助我们更好地进行代码编写和调试。Tomcat作为Java Web服务器,能够方便地部署和运行基于Springboot框架的系统。

2.1.2 经济可行性分析

在开发Springboot餐厅管理系统时,我们选择了一些开源免费的开发软件和技术,如IDEA开发工具、Tomcat 8.0服务器、MySQL 5.7数据库以及Photoshop图片处理软件。这些工具和技术的使用不仅提供了强大的功能和便捷的开发环境,而且还能够降低系统开发成本。通过使用IDEA进行编码和调试,Tomcat作为服务器进行部署,MySQL作为数据存储解决方案,以及Photoshop进行界面设计和图片处理,我们能够自主设计并实现校园地图导览系统。而采用开源的MySQL等技术,不仅保证了系统的稳定性和可靠性,还有效地降低了开发成本。

2.1.3 法律可行性分析

需要评估系统是否符合适用的法律法规。特别是在数据保护和隐私方面,如《个人信息保护法》等相关法律法规的遵守,以确保用户的个人信息安全和合法使用。

2.2 功能需求分析

2.2.1 功能性分析

餐厅管理系统主要分为员工用户模块、注册用户模块和管理员模块三个部分,并且每个角色的用户有不同的功能需求。

注册用户功能

(1)首页:快速了解餐厅信息,便捷预约与点餐。

(2)公告通知:实时获取餐厅最新公告与通知。

(3)新闻资讯:浏览美食行业新闻,增长知识。

(4)座位信息:实时查看座位状态,轻松预约。

(5)菜品信息:详细展示菜品,助您点餐无忧。

(6)我的账户:个人信息管理,账户安全有保障。

(7)个人中心:集中管理预约、订单与收藏。

员工用户功能

(1)后台首页:员工工作概览,高效处理事务。

(2)座位信息管理:协助管理座位,优化餐厅布局。

(3)预约信息管理:处理用户预约,提升服务质量。

(4)订单信息管理:快速处理订单,确保客户满意。

(5)员工排班管理:灵活排班,提高工作效率。

(6)员工绩效管理:量化绩效,激发工作热情。

管理员功能

(1)后台首页:全局掌控餐厅运营,决策更精准。

(2)系统用户管理:权限控制,确保系统安全。

(3)座位信息管理:优化座位配置,提升翻台率。

(4)预约信息管理:全面掌控预约情况,提升效率。

(5)菜品信息管理:更新菜品,满足客户需求。

(6)订单信息管理:订单处理透明化,增强客户信任。

(7)仓库信息管理:实时库存监控,确保供应充足。

(8)入库/出库信息管理:精准记录,优化库存结构。

(9)员工排班管理:合理安排员工工作,提升效率。

(10)员工绩效管理:科学考核,激发团队潜能。

(11)系统管理:灵活配置,确保系统稳定运行。

(12)公告通知管理:及时发布信息,加强内部沟通。

(13)资源管理:新闻资讯与分类管理,丰富内容资源。

2.2.2 系统用例分析

员工用户角色的用例展示。

图2-1 餐厅管理系统员工用户角色用例图

注册用户角色的用例展示。

图2-2 餐厅管理系统注册用户角色用例图

管理员角色的用例展示。

图2-3 餐厅管理系统管理员角色用例图

2.2.2 非功能性分析

在餐厅管理系统中,除了功能模块的设计和实现外,非功能性需求也是十分重要的。以下是对餐厅管理系统的非功能性分析:

(1)可用性:系统应具备良好的可用性,即用户能够轻松地使用系统进行报表核算,并且系统应保持高可靠性,避免出现频繁的故障或停机时间。

(2)安全性:系统应具备良好的安全性,确保用户的个人信息和报表内容得到保护,防止未经授权的访问和数据泄露。

(3)性能:系统应具备良好的性能,即能够在合理的响应时间内处理大量的座位信息求,保证系统的高效运行。

(4)可扩展性:系统应具备良好的可扩展性,以适应日益增长的用户数量和报表量,能够方便地进行系统的升级和扩展。

(5)易用性:系统应具备良好的易用性,用户界面应简洁明了,操作流程应简单易懂,减少用户的学习成本。

(6)兼容性:系统应具备良好的兼容性,能够与不同的操作系统、浏览器和设备进行良好的兼容,以满足用户的多样化需求。

(7)可维护性:系统应具备良好的可维护性,代码结构清晰、易于理解和修改,方便开发人员进行系统的维护和更新。

(8)可靠性:系统应具备良好的可靠性,即能够保证数据的完整性和准确性,避免出现数据丢失或错误的情况。

2.3  系统流程分析

业务流程是一种用符号和线条表示用户在使用系统时的过程的可视化工具。通过绘制业务流程图,开发人员可以更好地理解业务流程,识别潜在的问题,并对系统进行改进和完善。

2.3.1数据增加流程

该流程图展示了用户在增加数据时的操作流程。用户首先登录系统,成功后进入增加数据页面。用户填写除编号以外的增加信息,并提交给系统。系统接收到用户提交的数据后,首先生成特定的编号。然后,系统对用户填写的其他增加信息进行验证。如果验证合法通过,则将完整的数据添加到系统中,并向用户显示增加数据成功的提示。如果验证不通过,则系统不会进行数据添加,并向用户显示增加数据失败的提示,图2-4显示的就是在增加数据时的流程。

图2-4 数据增加流程图

2.3.2 数据修改流程

数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-5所示。

图2-5数据修改流程图

2.3.3 数据删除流程

如果系统里面存在一些没有用的数据的话相关的管理人员还可以对这些数据进行删除,图2-6就是数据删除时的流程图。

图2-6数据删除流程图

2.4本章小结

本章主要通过对餐厅管理系统的可行性分析、功能需求分析、系统用例分析和系统流程分析,确定了系统要实现的功能,并为代码实现和测试提供了标准。可行性分析评估了系统的技术、经济和操作可行性;功能需求分析明确了系统的功能模块和需求;系统用例分析描述了用户角色的使用场景和交互过程;系统流程分析详细说明了各个功能模块的操作流程和数据流动。这些分析结果将指导系统的开发与测试,确保满足用户需求并提供可靠易维护的系统。

3 餐厅管理系统总体设计

在功能模块设计方面,本章详细讨论了餐厅管理系统所需的功能模块,并对每个模块进行了设计。这些功能模块包括车员工用户模块、注册用户模块和管理员模块及核算人员模块块等,每个模块都有特定的功能和操作流程。本章主要讨论的内容包括餐厅管理系统的功能模块设计、数据库系统设计。

3.1 系统功能模块设计

在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本餐厅管理系统中的用例。那么接下来就要开始对本餐厅管理系统的架构、主要功能和数据库开始进行设计。餐厅管理系统根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。

图3-1 餐厅管理系统功能模块图

3.2 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.2.1 数据库概念结构设计

下面是整个餐厅管理系统中主要的数据库表总E-R实体关系图。

图3-2 餐厅管理系统总E-R关系图

3.2.2 数据库逻辑结构设计

通过上一小节中餐厅管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

用户编号:

表appointment_information (预约信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

appointment_information_id

int

10

0

N

Y

预约信息ID

2

seat_number

varchar

64

0

Y

N

座位编号

3

seat_name

varchar

64

0

Y

N

座位名称

4

table_type

varchar

64

0

Y

N

餐位类型

5

booking_customers

int

10

0

Y

N

0

预约顾客

6

number_of_diners

int

10

0

Y

N

0

就餐人数

7

appointment_time

datetime

19

0

Y

N

预约时间

8

contact_phone_number

varchar

16

0

Y

N

联系电话

9

appointment_status

varchar

64

0

Y

N

预约状态

10

appointment_remarks

text

65535

0

Y

N

预约备注

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表dish_information (菜品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

dish_information_id

int

10

0

N

Y

菜品信息ID

2

dish_number

varchar

64

0

Y

N

菜品编号

3

dish_name

varchar

64

0

Y

N

菜品名称

4

type_of_dishes

varchar

64

0

Y

N

菜品类型

5

nutritive_value

varchar

64

0

Y

N

营养价值

6

cover_photo

varchar

255

0

Y

N

封面图片

7

price_of_dishes

int

10

0

Y

N

0

菜品价格

8

details_of_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

更新时间

表employee_performance (员工绩效)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

employee_performance_id

int

10

0

N

Y

员工绩效ID

2

employee_name

int

10

0

Y

N

0

员工姓名

3

employee_department

varchar

64

0

Y

N

员工部门

4

employee_performance

varchar

64

0

Y

N

员工表现

5

overtime_duration

varchar

64

0

Y

N

加班时长

6

performance_details

longtext

2147483647

0

Y

N

绩效详情

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表employee_scheduling (员工排班)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

employee_scheduling_id

int

10

0

N

Y

员工排班ID

2

employee_name

int

10

0

Y

N

0

员工姓名

3

working_hours

datetime

19

0

Y

N

上班时间

4

off_duty_time

datetime

19

0

Y

N

下班时间

5

scheduling_type

varchar

64

0

Y

N

排班类型

6

scheduling_details

longtext

2147483647

0

Y

N

排班详情

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表employee_users (员工用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

employee_users_id

int

10

0

N

Y

员工用户ID

2

employee_name

varchar

64

0

Y

N

员工姓名

3

employee_title

varchar

64

0

Y

N

员工职称

4

date_of_employment

date

10

0

Y

N

入职时间

5

employee_age

int

10

0

Y

N

0

员工年龄

6

examine_state

varchar

16

0

N

N

已通过

审核状态

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表order_information (订单信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_information_id

int

10

0

N

Y

订单信息ID

2

dish_number

varchar

64

0

Y

N

菜品编号

3

dish_name

varchar

64

0

Y

N

菜品名称

4

price_of_dishes

varchar

64

0

Y

N

菜品价格

5

type_of_dishes

varchar

64

0

Y

N

菜品类型

6

ordering_customers

int

10

0

Y

N

0

点菜顾客

7

ordering_time

datetime

19

0

Y

N

点菜时间

8

order_quantity

int

10

0

Y

N

0

点菜数量

9

total_price

varchar

64

0

Y

N

合计总价

10

ordering_notes

varchar

64

0

Y

N

点菜备注

11

dish_status

varchar

64

0

Y

N

菜品状态

12

pay_state

varchar

16

0

N

N

未支付

支付状态

13

pay_type

varchar

16

0

Y

N

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

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表outbound_information (出库信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

outbound_information_id

int

10

0

N

Y

出库信息ID

2

warehouse_number

varchar

64

0

Y

N

仓库编号

3

warehouse_name

varchar

64

0

Y

N

仓库名称

4

warehouse_location

varchar

64

0

Y

N

仓库位置

5

outbound_items

varchar

64

0

Y

N

出库物品

6

outbound_time

datetime

19

0

Y

N

出库时间

7

outbound_quantity

int

10

0

Y

N

0

出库数量

8

reason_for_outbound

varchar

64

0

Y

N

出库原因

9

outbound_details

longtext

2147483647

0

Y

N

出库详情

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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已取消

表registered_users (注册用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registered_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

int

10

0

Y

N

0

用户年龄

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

更新时间

表seat_information (座位信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

seat_information_id

int

10

0

N

Y

座位信息ID

2

seat_number

varchar

64

0

Y

N

座位编号

3

seat_name

varchar

64

0

Y

N

座位名称

4

seating_capacity

int

10

0

Y

N

0

可坐人数

5

seat_type

varchar

64

0

Y

N

座位类型

6

seat_status

varchar

64

0

Y

N

座位状态

7

minimum_consumption

int

10

0

Y

N

0

最低消费

8

cover_photo

varchar

255

0

Y

N

封面图片

9

seat_details

longtext

2147483647

0

Y

N

座位详情

10

praise_len

int

10

0

N

N

0

点赞数

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表storage_information (入库信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

storage_information_id

int

10

0

N

Y

入库信息ID

2

warehouse_number

varchar

64

0

Y

N

仓库编号

3

warehouse_name

varchar

64

0

Y

N

仓库名称

4

warehouse_location

varchar

64

0

Y

N

仓库位置

5

inventory_items

varchar

64

0

Y

N

入库物品

6

storage_time

datetime

19

0

Y

N

入库时间

7

inventory_quantity

int

10

0

Y

N

0

入库数量

8

reason_for_storage

varchar

64

0

Y

N

入库原因

9

storage_remarks

text

65535

0

Y

N

入库备注

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

email

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

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表warehouse_information (仓库信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

warehouse_information_id

int

10

0

N

Y

仓库信息ID

2

warehouse_number

varchar

64

0

Y

N

仓库编号

3

warehouse_name

varchar

64

0

Y

N

仓库名称

4

warehouse_location

varchar

64

0

Y

N

仓库位置

5

storage_type

varchar

64

0

Y

N

存放类型

6

quantity_of_items

varchar

64

0

Y

N

物品数量

7

item_details

longtext

2147483647

0

Y

N

物品详情

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

3.3本章小结

在餐厅管理系统的需求分析中,我们主要关注系统总体架构和功能模块的设计。通过建立E-R模型和数据库逻辑系统设计,完成了数据库系统的设计。首先确定了系统应具备的功能模块,如系统用户、仓库信息管理、座位信息管理、能源分配管理、能源核算管理、订单信息管理管理等。然后使用E-R模型设计数据库结构,定义各个实体的属性和表之间的关系。最后通过逻辑系统设计,进一步细化数据库的结构和功能。这些设计工作为系统的开发和实施奠定了基础,确保系统能够有效地存储和管理数据。

4 餐厅管理系统详细设计与实现

餐厅管理系统的详细设计与实现主要是根据前面的餐厅管理系统的需求分析和餐厅管理系统的总体设计来设计页面并实现业务逻辑。主要从餐厅管理系统界面实现、业务逻辑实现这两部分进行介绍。

4.1 用户登录界面

用户登录界面是Springboot餐厅管理系统中的重要模块。该界面提供了账号和密码输入框,用户需在这些输入框中填写正确的信息进行登录。登录按钮用于触发验证流程,系统将对用户输入的账号和密码进行认证。如果验证成功,用户将进入系统主界面;如果验证失败,系统将显示错误信息并提示用户重新输入。为方便新用户注册,登录界面通常还提供注册链接;而忘记密码链接则用于找回密码。此外,登录界面可能包含其他辅助功能,如记住密码和自动登录,用户登录界面如下图4-1所示。

图4-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.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }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.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

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

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

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

            tokenService.save(accessToken);

            // 返回用户信息

            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.2 注册界面

注册模块满足用户两部分,当用户想要进行资料相关信息的查询管理的时候,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其注册主界面展示如下图4-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.3菜品信息模块模块

用户点击“菜品信息”按钮,可以查看到所有菜品信息详情,可以进行点菜、点赞、收藏、购买等操作。界面如下图所示。

图4-3菜品信息界面图

4.4座位信息管理模块

当员工用户点击“座位信息管理”页面,系统会自动带出座位编号、座位名称可坐人数、最低消费等信息,可以进行查询、删除、查看评论等操作,界面如下图所示。

图4-4座位信息界面图

4.5仓库信息管理模块

当管理员点击“仓库信息管理”页面、系统会自动带出仓库编号、仓库名称、仓库位置、存放类型、物品数量等信息、可以进行查询、删除、入库、出库等操作,界面如下图所示。

图4-5仓库信息管理界面图

4.6系统用户模块

系统用户模块是问题投诉办理系统中的一个关键功能模块,负责对系统中的用户进行管理和维护。该模块包括用户注册、用户登录、用户信息管理、用户权限管理以及用户认证和授权等功能。用户可以通过注册功能创建账号,并使用登录功能访问系统。用户信息管理功能允许用户编辑和更新个人信息,而管理员用户则能够进行用户权限管理。此外,用户管理模块还需要确保系统的安全性,通过用户认证和授权功能验证用户身份并限制其对系统的访问和操作权限。通过合理的用户管理,问题投诉办理系统能够提供安全、易用和灵活的用户体验。界面如下图所示。

图4-6系统用户界面图

4.7 订单信息管理模块

管理员可以管理订单信息管理的相关信息,包括菜品编号、菜品名称、菜品价格、点菜顾客等,可以进行查询、删除操作。界面如下图所示。

图4-7 订单信息管理界面图

订单信息管理关键代码如下:

 @RestController

@RequestMapping("auth")

public class AuthController extends BaseController<Auth, AuthService> {

    /**

     * 服务对象

     */

    @Autowired

    public AuthController(AuthService service) {

        setService(service);

    }

}

4.8新闻资讯模块模块

用户点击“新闻资讯”按钮,可以查看到所有管理员发布新闻资讯信息,可以进行点赞、收藏、评论等操作。界面如下图所示。

图4-8新闻资讯界面图

5系统测试

5.1 系统测试用例

系统测试包括:用户登录功能测试、仓库信息管理查看功能测试、座位信息添加、密码修改功能测试,如表5-1、5-2、5-3所示:

用户登录功能测试:

表5-1 用户登录功能测试表

添加座位信息界面测试:

表5-2 添加座位信息界面测试表

测试项

测试结果

添加座位信息

通过

缺少必要信息

未通过

输入非法细辛脑

未通过

密码修改搜索功能测试:

表5-3 密码修改功能测试表

5.2 系统测试结果

通过编写餐厅管理系统的测试用例,已经检测完毕用户登录功能测试、座位信息添加、密码修改功能测试,通过这3大模块为餐厅管理系统的后期推广运营提供了强力的技术支撑。

结论

基于Spring Boot的餐厅管理系统,通过集成用户、员工和管理员三类用户的功能需求,实现了餐厅运营的高效化、便捷化和规范化。该系统不仅提供了用户友好的界面和丰富的功能,还支持灵活的配置和强大的数据管理能力,为餐厅的日常运营提供了强有力的支持。通过此系统,餐厅能够提升客户体验、优化员工管理、增强内部沟通,并实现业务数据的实时监控与分析,从而助力餐厅提升竞争力,实现可持续发展。

参考文献

  [1]罗光武,陈典灿,吴荷,等. 应用Springboot+Vue框架的时间管理软件的设计与实现 [J]. 工业控制计算机, 2024, 37 (04): 64-66.

[2]刘慧玲,谭定英,陈平平. 基于SpringBoot和Vue.js的大学生团队管理系统的设计 [J]. 电脑编程技巧与维护, 2024, (03): 120-122. DOI:10.16184/j.cnki.comprg.2024.03.039.

[3]徐少军,李宗哲,梅杰,等. 基于Springboot+Vue框架的质量检验监督管理系统研发 [J]. 纺织标准与质量, 2024, (01): 11-14+21.

[4]雷欣,马宏琳,郑霖,等. 基于SpringBoot的域名信息系统设计与实现 [J]. 电脑知识与技术, 2024, 20 (05): 44-47. DOI:10.14004/j.cnki.ckt.2024.0188.

[5]吴伶琳. 基于SpringBoot的客户关系管理系统设计与实现 [J]. 无线互联科技, 2023, 20 (24): 60-62.

[6]卞媛莉. 职工餐厅成本管理相关要点分析与探讨 [J]. 中国乡镇企业会计, 2023, (10): 78-80.

[7]吴政潭. 必胜客餐厅的运营管理研究 [J]. 北京印刷学院学报, 2023, 31 (07): 31-35. DOI:10.19461/j.cnki.1004-8626.2023.07.009.

[8]张芮绮. 线上餐厅管理系统的设计 [J]. 科技风, 2023, (06): 4-6. DOI:10.19392/j.cnki.1671-7341.202306002.

[9]Yang Y . Design and Implementation of Student Information Management System Based on Springboot [J]. Advances in Computer, Signals and Systems, 2022, 6 (6):

[10]闫向明. 智能化技术在高校餐饮服务及管理中的应用 [J]. 食品安全导刊, 2022, (23): 165-167. DOI:10.16043/j.cnki.cfs.2022.23.065.

[11]黄杰. RFID公共餐厅就餐系统设计[D]. 内蒙古大学, 2022. DOI:10.27224/d.cnki.gnmdu.2022.001258.

[12]刘宁. 集渔泰式火锅智慧餐厅数字化转型研究[D]. 兰州理工大学, 2022. DOI:10.27206/d.cnki.ggsgu.2022.000960.

[13]Francesco P ,Antonio B ,Antonella M . Value co-creation and data-driven orientation: reflections on restaurant management practices during COVID-19 in Italy [J]. Transforming Government: People, Process and Policy, 2022, 16 (2): 172-184.

[14]王攀藻,赵金库,李嫣然,等. 智慧餐厅系统应用研究 [J]. 物联网技术, 2022, 12 (02): 120-121. DOI:10.16667/j.issn.2095-1302.2022.02.033.

[15]宋海洋,何小虎,刘宇航,等. 疫情防控下校园餐厅便捷服务App设计与开发 [J]. 信息技术与信息化, 2021, (08): 54-56.

[16]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

[17]尹梦鑫. 基于Flutter的智能化餐厅菜品管理系统的设计与实现[D]. 山东大学, 2021. DOI:10.27272/d.cnki.gshdu.2021.005552.

[18]牟明任,赵璘. 基于Java Web的餐厅管理系统的设计 [J]. 软件工程, 2020, 23 (09): 52-55. DOI:10.19644/j.cnki.issn2096-1472.2020.09.015.

[19]Toast Inc.; "Command-Adaptive Restaurant Management System" in Patent Application Approval Process (USPTO 20200193534) [J]. Politics & Government Week, 2020,

[20]Toast Inc.; Patent Application Titled "User-Adaptive Restaurant Management System" Published Online (USPTO 20200193505) [J]. Politics & Government Week, 2020,

致  谢

基于Spring Boot的餐厅管理系统,以其出色的功能和性能,为餐厅运营带来了显著的提升和实实在在的优惠。该系统不仅提供了直观友好的用户界面,使用户能够轻松预约座位、浏览菜品并享受快捷的点餐体验,还通过智能化的订单处理和座位管理,帮助餐厅提高了翻台率和客户满意度。同时,系统还为员工提供了高效的工作平台,简化了繁琐的日常工作,提升了工作效率。对于管理员而言,该系统更是提供了全面的后台管理功能,使他们能够实时监控餐厅运营状况,做出精准决策,从而进一步优化资源配置和降低成本。综上所述,基于Spring Boot的餐厅管理系统不仅为餐厅带来了更加便捷和高效的运营方式,还为餐厅业务的长远发展提供了实实在在的优惠和支持。

免费领取源码,请关注+点赞+收藏+私信博主,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值