基于java+springboot+msyql的酒店在线点餐系统46485-计算机原创毕设选题推荐(免费领源码)
摘 要
酒店在线点餐系统采用B/S模式、采用JAVA语言、springboot框架、mysql数据库等开发工具,促进了酒店在线点餐系统的业务发展。与传统线下点餐相比,酒店在线点餐系统不但节省了商家的线下运营的成本和门店曝光等难题,对用户而言提供了足不出户送餐上门的服务,针对现代城市而言,出门用餐停车难,排队麻烦等问题。特开发了基于springboot的酒店在线点餐系统。
本系统设计开发分为管理员、普通用户两大模块,后台管理模块功能主要分为:首页、系统用户(管理员、普通用户、个人账户管理(个人账户列表、个人账户添加)、用户充值管理、菜品类型管理(菜品类型列表 、菜品类型添加)、餐厅信息管理(餐厅信息列表、餐厅信息添加)、坐位预定管理、餐厅菜品管理(餐厅菜品管理列表、餐厅菜品添加)、菜品购买管理、系统管理(轮播图管理)、美食公告管理(美食公告)、资源管理(美食资讯、资讯分类)等功能模块。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
关键词:酒店在线点餐系统;java语言;springboot框架、mysql数据库;
A Hotel Online Ordering System Based on Springboot
ABSTRACT
The hotel's online ordering system adopts the B/S model, JAVA language, Springboot framework, MySQL database and other development tools, promoting the business development of the hotel's online ordering system. Compared with traditional offline ordering, hotel online ordering systems not only save businesses the cost of offline operations and store exposure, but also provide users with door-to-door delivery services without leaving their homes. For modern cities, it is difficult to park and queue when dining out. We have developed a hotel online ordering system based on Springboot.
The design and development of this system are divided into two modules: administrator and ordinary user. The backend management module mainly includes: homepage, system user (administrator, ordinary user, personal account management (personal account list, personal account addition), user recharge management, dish type management (dish type list, dish type addition), restaurant information management (restaurant information list, restaurant information addition), seat reservation management Functional modules such as restaurant dish management (restaurant dish management list, restaurant dish addition), dish purchase management, system management (carousel map management), food announcement management (food announcement), resource management (food information, information classification), etc. 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: Hotel online ordering system; Java language; Springboot framework, MySQL database;
目 录
1.1. 课题背景
当前我国经济在快速发展。中国消费者迈进了数字化时代,但酒店和餐厅却慢了一拍。对中国大多数行业来说,互联网可以显著提高劳动生产率,但大多数具体的好处酒店和餐厅却尚未实现,更多地反映在与消费相关的层面。无论是菜品的丰富度,还是价格的竞争力,还是相对的便利性,消费者大量转移到自助点餐系统已经大势所趋。
餐饮业的信息化改造内容,主要有:由传统的笔和纸点餐,改用电子点餐;由传统的人工计算、统计、管理,改用电脑进行计算、统计和管理;将现代的电子技术、无线技术、计算机技术和网络技术引入到餐饮行业中来,替代部分人工操作,加快餐饮企业的运转效率,提升餐饮企业的管理水平,使餐饮企业运作更规范、更科学、更高效。
1.2 研究意义
社会主义进入新时代,经济实力越来越强。我们也变得越来越忙碌、对生活的要求也变得更加严格,对快速和方便的服务的需求也在逐渐增加。因此,对饭店行业的管理、服务的要求也越来越严格。为适应时代的发展,各大餐饮业开始广泛地使用电脑来进行管理,并推出各种在线点餐程序,为提高工作人员效率提供了一种新的方式,并且减轻了他们的工作强度,也免去排队和租赁场地的困扰。免除排队可以说在很大程度上降低客户的不舒适感,在树立企业形象的同时,为餐饮业客户提供更加方便、舒适、优质而高效的服务,实现双赢。
于此同时,实现餐饮店点餐的计算机化也是顺应时代潮流的举措,现如今餐饮种类正逐渐增加,浩繁的餐饮信息令餐饮业迎来管理上的难题。餐饮行业进入高速发展的时代,餐饮业的管理工作变得越来越困难,在这一客观需要的推动下,建立、完善、发展餐饮酒店在线点餐系统,可以为餐饮业管理者带来极大的方便。
本系统即为方便餐饮店管理者和客户而制作的网上酒店在线点餐系统,结合了餐饮店和客户的需求,设计出的一个基于springboot框架、JAVA语言、MySQL数据库等技术的网上酒店在线点餐系统。
2.1 JAVA技术
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,JSP(java server pages),和XML技术。
JAVA语言功能:
面向对象:面向对象是Java编程语言的标志之一,是一种软件开发方法。最重要的是将所有东西变成对象,然后以某种方式编程。编程时,代码和数据写在每个对象上。 面向对象编程方法的出现使得人们在编程过程中的设计思考和操作变得非常简单,同时也提高了程序的安全性。
跨平台:Java流行的一个关键特性是它的跨平台特性,这使得用Java编程变得容易。您可以用Java编写程序并在其他地方运行它,而无需在编译后更改它。
2.2 Spring Boot框架
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。
2.3 MYSQL数据库
系统的开发必须配套相应数据库,数据库具有一定的组织结构,能够存放和管理数据信息,在以前数据库的功能仅仅是数据保存和管理操作,但是时代的变迁和发展,现在的数据库演变成了数据处理的方式,数据库从最开始的简单存放数据表格信息到现在的能够存放成千上万数据的大型数据库,期间还是经历了许多的改革。
本次开发的酒店在线点餐系统使用的数据库是MYSQL数据库,该数据库运行速度快,安全性能也很高,而且对使用的平台没有任何的限制,所以被广泛应运到系统的开发中。MySQL是一个开源和多线程的关系管理数据库系统,MySQL是开放源代码的数据库,具有跨平台性,虽然功能未必强大,导致很多人都了解这个数据库的基本应用,在数据库中,总共建立了10几个表,这里面每个表都是相对应的,都各自有各自的联系,数据库意义重大,如果没有数据库的链接,就没办法运行程序,这显然可以看见数据库与程序的重要性,是紧密相连接的。
2.4 B/S结构
B/S(浏览器/服务器)结构是目前主流的网络化的结构模式,它能够把系统核心功能集中在服务器上面,可以帮助系统开发人员简化操作,便于维护和使用。只需要用户在客户端安装360浏览器、谷歌浏览器、QQ浏览器等当前大众浏览器,在电脑里面安装sqlserver、mysql数据库等数据库。安装好的浏览器与服务器端的数据库进行信息数据的交互。很多专门软件能够做到的事情,采用B/S结构模式也能实现,它能够结合Web浏览器技术,ActiveX技术以及多种脚本语言等技术。帮助程序开发者节约了不少开发成本。目前B/S结构成为程序开发主流结构,它最好的地方就是没有地点限制还不用专门安装软件,笔记本或者电脑能够上网就能访问系统。系统使用B/S进行开发在后期系统维护上面就会很省事,不用什么问题都在服务器上面操作,简单的客户端处理就解决部分问题,开发出来的程序跟用户交互性上面也会增强,还可以实时刷新浏览器进行程序局部的数据信息更新。

图2-1 B/S模式三层结构图
3.1 可行性分析
3.2.1技术可行性
本系统在Windows操作系统中进行开发,并且目前PC机的性能已经可以胜任普通系统的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。
系统的开发环境和配置都是可以自行安装的,系统使用java开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。
(1)硬件可行性分析
酒店在线点餐系统及信息分析的设计对于所使用的计算机没有什么硬性的要求,计算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有一定的要求的,服务器必须选择安全性比较高的,然后就是在打开系统必须顺畅,不能停顿太长时间;性价比高;安全性高。
(2)软件可行性分析
开发整个系统使用的是云计算,流量的可扩展性和基于流量的智能调整云计算的优点就是流量的可扩展性和基于流量的智能调整,保障系统的安全及数据信息的及时备份。
因此,我们从两个方面进行了可行性研究,可以看出系统的开发没有问题。
3.2.2经济可行性
在酒店在线点餐系统开发之前所做的市场调研及其他的饭店点餐相关的管理系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于酒店在线点餐系统的开发在经济上是完全可行的,没有任何费用支出的。
使用比较成熟的技术,系统是基于springboot的开发,采用Mysql数据库。所以系统在开发人力、财力要求不高,具有经济可行性。
3.2.3操作可行性:
可操作性主要是对酒店在线点餐系统设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、普通用户、卖家三种角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息的操作需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。
3.2 功能需求分析
酒店在线点餐系统主要是为了提高饭店工作人员的工作效率和更方便快捷的满足顾客,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多发达系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。
系统所要实现的功能分析,对于现在网络方便的管理,系统要实现用户可以直接在电脑上查看所有数据信息,根据需求可以进行在线添加,删除或修改酒店在线点餐系统信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足用户的各种需求。所以酒店在线点餐系统的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。
普通用户用例图如下所示。

图3-1 普通用户用例图
管理员用例图如下所示。

图3-2 管理员用例图
3.3 系统性能分析
(1)界面简洁清晰:系统界面要求简单明了,容易操作,符合用户操作习惯。
(2)储存性高:因为酒店在线点餐系统中有很多的信息需要存储,因此对于系统的存储量有很大的要求,需要有一个强大的数据库的支持才能确保所有的信息都能安全稳定的进行存储。
(3)易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。
(4)稳定性需求:开发的酒店在线点餐系统要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。
(6)稳定性:开发的酒店在线点餐系统要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。
4.1 系统的结构划分
本系统可以分为:管理员、普通用户两个的功能模块。
后台管理端的功能:首页、系统用户(管理员、普通用户、个人账户管理(个人账户列表、个人账户添加)、用户充值管理、菜品类型管理(菜品类型列表 、菜品类型添加)、餐厅信息管理(餐厅信息列表、餐厅信息添加)、坐位预定管理、餐厅菜品管理(餐厅菜品管理列表、餐厅菜品添加)、菜品购买管理、系统管理(轮播图管理)、美食公告管理(美食公告)、资源管理(美食资讯、资讯分类)等功能。
普通用户的功能:首页、我的账户、个人中心(个人首页、个人账户、用户充值、坐位预定、菜品购买、收藏)、美食公告、美食资讯、餐厅信息、餐厅菜品等功能。
酒店在线点餐系统的结构图4-1所示:

图4-1 系统结构
登录系统结构图,如图4-2所示:

图4-2 登录结构图
这些功能可以充分满足酒店在线点餐系统的需求。系统功能结构如图4-3所示。

图4-3系统功能结构图
4.2 系统的流程分析
4.2.1登录流程

图4-4登录流程图
4.2.2添加信息流程
添加信息流程图,如下图所示:

图4-5添加信息流程图
4.2.3删除信息流程
删除信息流程图,如下图所示:

图4-6删除信息流程图
4.3. 数据库设计
4.3.1 数据库实体
对于一个要开发的系统来说,E-R图可以让别人能更快更轻松的了解此系统的事务及它们之间的关系。根据系统分析阶段所得出的结论确定了在酒店在线点餐系统中存在着多个实体分别是用用户、管理员、点餐订单、通知公告、饭店菜单等。
系统总体ER图如下图所示。

图4-7 系统总体ER图
4.3.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 |
用户编号: |
表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: |
表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: |
表individual_account (个人账户)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
individual_account_id |
int |
10 |
0 |
N |
Y |
个人账户ID |
|
|
2 |
regular_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
|
3 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
4 |
recharge_card_number |
varchar |
64 |
0 |
Y |
N |
充值卡号 |
|
|
5 |
card_amount |
varchar |
64 |
0 |
Y |
N |
卡内金额 |
|
|
6 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表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 |
更新时间: |
表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已取消 |
表purchase_of_dishes (菜品购买)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
purchase_of_dishes_id |
int |
10 |
0 |
N |
Y |
菜品购买ID |
|
|
2 |
regular_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
|
3 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
4 |
recharge_card_number |
varchar |
64 |
0 |
Y |
N |
充值卡号 |
|
|
5 |
card_amount |
varchar |
64 |
0 |
Y |
N |
卡内金额 |
|
|
6 |
type_of_dishes |
varchar |
64 |
0 |
Y |
N |
菜品类型 |
|
|
7 |
dish_name |
varchar |
64 |
0 |
Y |
N |
菜品名称 |
|
|
8 |
taste_of_dishes |
varchar |
64 |
0 |
Y |
N |
菜品口味 |
|
|
9 |
price_of_dishes |
varchar |
64 |
0 |
Y |
N |
菜品价格 |
|
|
10 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
11 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表regular_users (普通用户)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
regular_users_id |
int |
10 |
0 |
N |
Y |
普通用户ID |
|
|
2 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
3 |
user_phone_number |
varchar |
16 |
0 |
Y |
N |
用户电话 |
|
|
4 |
user_gender |
varchar |
64 |
0 |
Y |
N |
用户性别 |
|
|
5 |
recharge_card_number |
varchar |
64 |
0 |
N |
N |
充值卡号 |
|
|
6 |
card_amount |
int |
10 |
0 |
Y |
N |
0 |
卡内金额 |
|
7 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
8 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
9 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表restaurant_dishes (餐厅菜品)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
restaurant_dishes_id |
int |
10 |
0 |
N |
Y |
餐厅菜品ID |
|
|
2 |
type_of_dishes |
varchar |
64 |
0 |
Y |
N |
菜品类型 |
|
|
3 |
dish_name |
varchar |
64 |
0 |
Y |
N |
菜品名称 |
|
|
4 |
taste_of_dishes |
varchar |
64 |
0 |
Y |
N |
菜品口味 |
|
|
5 |
price_of_dishes |
varchar |
64 |
0 |
Y |
N |
菜品价格 |
|
|
6 |
dish_pictures |
varchar |
255 |
0 |
Y |
N |
菜品图片 |
|
|
7 |
introduction_to_dishes |
text |
65535 |
0 |
Y |
N |
菜品简介 |
|
|
8 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
|
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 |
更新时间 |
表restaurant_information (餐厅信息)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
restaurant_information_id |
int |
10 |
0 |
N |
Y |
餐厅信息ID |
|
|
2 |
seat_name |
varchar |
64 |
0 |
Y |
N |
坐位名称 |
|
|
3 |
seat_number |
varchar |
64 |
0 |
Y |
N |
坐位号码 |
|
|
4 |
seating_position |
varchar |
64 |
0 |
Y |
N |
坐位位置 |
|
|
5 |
seat_image |
varchar |
255 |
0 |
Y |
N |
坐位图片 |
|
|
6 |
appointment_deposit |
int |
10 |
0 |
Y |
N |
0 |
预约定金 |
|
7 |
suitable_number_of_people |
varchar |
64 |
0 |
Y |
N |
适合人数 |
|
|
8 |
sitting_state |
varchar |
64 |
0 |
Y |
N |
坐位状态 |
|
|
9 |
introduction_to_seating |
text |
65535 |
0 |
Y |
N |
坐位简介 |
|
|
10 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
|
11 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
13 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表seat_reservation (坐位预订)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
seat_reservation_id |
int |
10 |
0 |
N |
Y |
坐位预订ID |
|
|
2 |
regular_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
|
3 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
4 |
recharge_card_number |
varchar |
64 |
0 |
Y |
N |
充值卡号 |
|
|
5 |
card_amount |
varchar |
64 |
0 |
Y |
N |
卡内金额 |
|
|
6 |
seat_name |
varchar |
64 |
0 |
Y |
N |
坐位名称 |
|
|
7 |
seat_number |
varchar |
64 |
0 |
Y |
N |
坐位号码 |
|
|
8 |
seating_position |
varchar |
64 |
0 |
Y |
N |
坐位位置 |
|
|
9 |
appointment_deposit |
varchar |
64 |
0 |
Y |
N |
预约定金 |
|
|
10 |
suitable_number_of_people |
varchar |
64 |
0 |
Y |
N |
适合人数 |
|
|
11 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
12 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表sensitive_vocabulary (敏感词汇)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
sensitive_vocabulary_id |
int |
10 |
0 |
N |
Y |
敏感词汇ID |
|
|
2 |
sensitive_vocabulary |
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 |
更新时间 |
表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 |
更新时间: |
表type_of_dishes (菜品类型)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
type_of_dishes_id |
int |
10 |
0 |
N |
Y |
菜品类型ID |
|
|
2 |
type_of_dishes |
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 |
更新时间 |
表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 |
|
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 |
更新时间: |
表user_recharge (用户充值)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
user_recharge_id |
int |
10 |
0 |
N |
Y |
用户充值ID |
|
|
2 |
regular_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
|
3 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
4 |
recharge_card_number |
varchar |
64 |
0 |
Y |
N |
充值卡号 |
|
|
5 |
card_amount |
int |
10 |
0 |
Y |
N |
0 |
卡内金额 |
|
6 |
recharge_amount |
varchar |
64 |
0 |
Y |
N |
充值金额 |
|
|
7 |
pay_state |
varchar |
16 |
0 |
N |
N |
未支付 |
支付状态 |
|
8 |
pay_type |
varchar |
16 |
0 |
Y |
N |
支付类型: 微信、支付宝、网银 |
|
|
9 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
5.1 普通用户模块
5.1.1 前台首页界面
进入系统首页,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图展示,再往下是通知公告,其主界面展示如下图所示。

图5-1 普通用户首页界面图
注册模块满足用户两部分,当用户想要进行资料相关信息的查询管理的时候,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好账号、密码、昵称、邮箱、身份、用户姓名、用户性别、充值卡号等注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其注册主界面展示如下图所示。

图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.1.3 普通用户登录界面
普通用户在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其登录主界面展示如下图所示。

图5-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, "账号或密码不正确");
}
}
5.1.4密码修改界面
用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败。密码修改界面如下图所示。

图5-4密码修改界面图
密码修改关键代码如下:
/**
* 修改密码
* @param data
* @param request
* @return
*/
@PostMapping("change_password")
public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){
// 根据Token获取UserId
String token = request.getHeader("x-auth-token");
Integer userId = tokenGetUserId(token);
// 根据UserId和旧密码获取用户
Map<String, String> query = new HashMap<>();
String o_password = data.get("o_password");
query.put("user_id" ,String.valueOf(userId));
query.put("password" ,service.encryption(o_password));
int count = service.selectBaseCount(service.count(query, service.readConfig(request)));
if(count > 0){
// 修改密码
Map<String,Object> form = new HashMap<>();
form.put("password",service.encryption(data.get("password")));
service.update(query,service.readConfig(request),form);
return success(1);
}
return error(10000,"密码修改失败!");
}
在右上角点击“我的账户”可以对个人头像、个人昵称、密码进行修改。我的账户界面如下图所示。

图5-5我的账户界面图
用户进行美食公告的阅览,查看管理者发布的网站公告、关于我们、联系方式、网站介绍等信息。美食公告界面图如下图所示。

图5-6美食公告界面图
当用户浏览到心仪的餐厅时,可以查看餐厅信息的详情并可以对餐厅进行收藏、点赞、预订;在预订页面填写相关的资料直接点“提交”即可,酒店统一采用用户充值卡先充值金额再 “提交”预定直接从余额里扣除的方式进行在线预定,当余额不足时系统会自动提醒。餐厅信息详情如5-7图所示;餐厅预定如5-8图所示。

图5-7餐厅信息界面图

图5-8餐厅预定界面图
5.1.8餐厅菜品界面
当用户浏览到喜欢的菜品时,可以查看餐厅菜品信息的详情并可以对餐厅菜品进行收藏、点赞、预订;在预订页面填写相关的资料直接点“提交”即可。酒店统一采用用户充值卡先充值金额再 “提交”预定直接从余额里扣除的方式进行在线预定,当余额不足时系统会自动提醒。餐厅菜品详情如5-9图所示;菜品预定如5-10图所示。

图5-9餐厅菜品界面图

图5-10菜品预定界面图
5.1.9用户个人中心界面
用户的个人中心页面包含:个人首页、个人账户、用户充值、坐位预定、菜品购买、收藏等功能,用户注册成功后在个人中心页面可以对页面的功能进行管控;如图5-11所示。

图5-11用户个人中心界面图
5.1.10用户个人账户界面
用户在酒店进行消费前管理员在后台给开个个人账户号才能进行在线充值,用户在个人账户里可以查看详情信息,点击“充值”按钮,进行需要充值的金额填写并提交;如图5-12所示。

图5-12用户个人账户界面图
5.1.11用户充值界面
当用户充值好金额后,点击“支付”按钮,通过微信、支付宝、网银直接支付进行在线充值金额,而此操作需要管理员添加充值的金额数额后才能正常使用账号进行预定菜品和餐厅的支付功能;同时用户可以通过支付状态、用户姓名进行搜索,并根据需要对账号信息进行重置、添加。删除等操作;用户充值如下图所示。

图5-13用户充值界面图
5.2管理员功能模块
5.2.1管理员功能界面
在管理员功能页面中可以查看首页、系统用户(管理员、普通用户、个人账户管理(个人账户列表、个人账户添加)、用户充值管理、菜品类型管理(菜品类型列表 、菜品类型添加)、餐厅信息管理(餐厅信息列表、餐厅信息添加)、坐位预定管理、餐厅菜品管理(餐厅菜品管理列表、餐厅菜品添加)、菜品购买管理、系统管理(轮播图管理)、美食公告管理(美食公告)、资源管理(美食资讯、资讯分类)等功能,并可进行相应操作,管理员功能界面如下图所示。

图5-14管理员功能界面图
5.2.2系统用户管理界面
在系统用户页面中可以对管理员、普通用户两种角色进行管控,还可以对两种角色进行查询、重置、添加和删除。系统用户界面如下图所示。

图5-15系统用户管理界面图
5.2.3 系统管理界面
管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。系统管理界面如下图所示。

图5-15系统管理界面图
系统管理关键代码如下:
@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-16美食公告管理界面图
点击“资源管理”这个菜单,可以查看美食资讯、资讯分类这两个子菜单、对美食资讯进行详情查看和查看评论,并可以进行查询,重置、添加、删除等操作。资源管理界面如下图所示。

图5-17 资源管理界面图
5.2.6 餐厅菜品管理界面
点击“餐厅菜品管理”这个菜单,可以查看餐厅菜品列表的详情:菜品类型、菜品名称、菜品口味、菜品价格、菜品图片、菜品简介、创建时间、更新时间等信息,并可根据需要进行新的菜品添加信息填写、详情、新增、详情、修改、查看评论或删除等操作。餐厅菜品管理、餐厅菜品的新增界面如下图所示。

图5-18 餐厅菜品管理界面图

图5-19餐厅菜品的新增界面图
6.1系统测试的目的
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,再测试过程中发现问题,并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但对于长期使用而言是非常重要和必要系统的开发。
软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。
酒店在线点餐系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在酒店在线点餐系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
6.2系统测试方法
在对酒店在线点餐系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让酒店在线点餐系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个酒店在线点餐系统开发所牵扯的该问题都必须一一解决,提高酒店在线点餐系统的安全性、稳定性。
白盒测试与黑盒测试是测试中比较常用的两种方法。
①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。
②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。
6.3功能测试
用户登录测试:
|
模块名称 |
测试用例 |
预期结果 |
实际结果 |
是否通过 |
|
登录模块 |
用户名:admin 密码:123 |
弹出错误提示,提示密码错误 |
弹出错误提示,提示密码错误 |
通过 |
|
登录模块 |
用户名:123 密码:admin |
弹出错误提示,提示用户名错误 |
弹出错误提示,提示用户名错误 |
通过 |
|
登录模块 |
用户名:admin 密码:admin |
管理员登录成功 |
管理员登录成功 |
通过 |
删除分类测试:
|
模块名称 |
测试用例 |
预期结果 |
实际结果 |
是否通过 |
|
删除分类模块 |
分类名:最新通知 |
删除成功、页面自动跳转 |
删除成功、页面自动跳转 |
通过 |
修改密码测试:
|
模块名称 |
测试用例 |
预期结果 |
实际结果 |
是否通过 |
|
修改密码模块 |
原密码:666 新密码:123 确认密码:123 |
弹出错误提示,提示原密码错误 |
弹出错误提示,提示原密码错误 |
通过 |
|
修改密码模块 |
原密码:admin 新密码:123 确认密码:333 |
弹出错误提示,提示确认密码不一致 |
弹出错误提示,提示确认密码不一致 |
通过 |
|
修改密码模块 |
原密码:admin 新密码:123 确认密码:123 |
密码修改成功 |
密码修改成功 |
通过 |
通过对功能的测试,酒店在线点餐系统的基本功能都是可行的,不管是系统里面的功能,还是界面的设计都是可值得推广宣传的。
2024年的今天,计算机技术已经相当成熟。它的发展推动了许多行业改头换面,计算机的出现使人类社会有了进一步降低人力物力和资源的方法,提高了人类社会的生产力,转变了社会生产方式。目前各大餐饮店都在积极备战,发展计算机和互联网,结合自身优势进军互联网行业成为各大餐饮店的重点项目。
本文利用JAVA语言、springboot框架和MySQL数据库技术,通过分析现实在餐饮业的点餐业务流程的基础上,并完成了酒店在线点餐系统。经调试结果显示,本系统基本可以满足一个酒店在线点餐系统的业务需要。系统界面简洁而有美感,易操作,做出了自己的特色,然而因为时间仓促再加上缺乏系统开发经验和仅依靠少数问卷调查方式,因此本系统还存在不少缺陷、不足,比如:
1. 数据输入的格式并没有全部检验,所以很难保证数据的准确,可能有一些不符合规则的数据也可以通过检验。
2. 系统功能还不够完善,无法提供丰富多彩的在线功能,只能实现购买、注册和订单管理等一系列功能。
本系统还存在一些漏洞没有解决,在现实应用情境中很难保证完全不出错,但相信通过再次完善,可以调试出真正符合实际的酒店在线点餐系统。
参考文献
[1]Febriyanti M R ,Saefullah K ,Susanti D R , et al. Knowledge, attitude, and utilization of traditional medicine within the plural medical system in West Java, Indonesia. [J]. BMC complementary medicine and therapies, 2024, 24 (1): 64-64.
[2]李康. 基于单片机的无线点餐系统设计 [J]. 电子制作, 2024, 32 (01): 23-26.
[3]沈彦彦,饶抗,陈茵等. 按需点餐不浪费 吃出绿色新“食”尚[N]. 厦门日报, 2023-12-30 (A04).
[4]陈晓东,雷悦. 扫码点餐录入的个人信息无法自行删除[N]. 人民法院报, 2023-12-15 (003).
[5]王馗,吴勇灵. 基于微信小程序的点餐系统设计与实现 [J]. 现代信息科技, 2023, 7 (22): 30-35+39.
[6]周倩. 扫码点餐强制获取个人信息一餐厅被判侵权 [J]. 中国食品工业, 2023, (22): 30-31.
[7]田颖慧. “三闭环POA”教学模式的建构及实践反思——以空乘专业“机上点餐”口语教学为例 [J]. 学园, 2023, 16 (33): 26-28.
[8]赵停停. 基于MySQL数据库技术的Web动态网页设计研究 [J]. 信息与电脑(理论版), 2023, 35 (17): 174-176.
[9]陈蓓蕾,洪年松. 基于SpringBoot的数据库接口设计 [J]. 信息与电脑(理论版), 2023, 35 (16): 181-183.
[10]曾慧群. 基于Android的智慧点餐系统设计与实现 [J]. 现代信息科技, 2023, 7 (14): 15-19.
[11]李志伟. 基于Eclipse+SDK开发平台的无线点餐系统设计 [J]. 信息与电脑(理论版), 2023, 35 (12): 125-128.
[12]尹训银. 酒店诱导消费者超量点餐被查[N]. 中国消费者报, 2023-06-07 (004).
[13]张芮绮. 线上餐厅管理系统的设计 [J]. 科技风, 2023, (06): 4-6. D
[14]Pål M . The Prospective Lynch Syndrome Database: background, design, main results and complete MySQL code [J]. Hereditary Cancer in Clinical Practice, 2022, 20 (1): 37-37.
[15]刘德凤. 酒店点餐系统的设计与实现 [J]. 电子技术与软件工程, 2022, (22): 173-176.
[16]张金凤. 餐饮管理系统的统计模块设计 [J]. 福建电脑, 2022, 38 (09): 90-93.
[17]张红波, 云毅餐饮门店管理系统. 河南省, 三门峡云毅文化传播有限公司, 2021-11-24.
[18]于桂林,张清芳. 传统酒店智能化改造路径研究 [J]. 绿色科技, 2021, 23 (16): 277-280.
[19]时庭庭. 酒店会员点餐系统的设计与实现[D]. 东华大学, 2021. D
[20] Yang Y . Design and Implementation of Student Information Management System Based on Springboot [J]. Advances in Computer, Signals and Systems, 2022, 6 (6):
致 谢
这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设能够完成离不开老师的帮助。我对老师由衷的表示感谢,
其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。
由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。
关注+点赞+收藏+私信博主,免费领取项目源码
更多推荐
所有评论(0)