摘 要
随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,酒店管理系统当然也不能排除在外。酒店管理系统是以实际运用为开发背景,运用软件工程开发方法,采用SSM技术构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统总体结构设计、系统数据结构设计、系统功能设计和系统安全设计等;详细设计主要包括模块实现的关键代码,系统数据库访问和主要功能模块的具体实现等。最后对系统进行功能测试,并对测试结果进行分析总结,及时改进系统中存在的不足,为以后的系统维护提供了方便,也为今后开发类似系统提供了借鉴和帮助。
本酒店管理系统采用的数据库是Mysql,使用SSM技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
关键词:酒店管理系统,SSM框架,Mysql 数据库
With the rapid development of science and technology, all aspects of society and industries are striving to integrate with modern advanced technology and improve their advantages through technological means. Of course, hotel management systems cannot be excluded. The hotel management system is a management system developed based on practical application, using software engineering development methods, and using SSM technology. The entire development process starts with a requirement analysis of the software system to determine its main functions. Then proceed with the overall and detailed design of the system. The overall design mainly includes system overall structure design, system data structure design, system functional design, and system security design; The detailed design mainly includes the key code for module implementation, system database access, and the specific implementation of the main functional modules. Finally, functional testing was conducted on the system, and the test results were analyzed and summarized to timely improve the shortcomings of the system, providing convenience for future system maintenance and reference and assistance for the development of similar systems in the future.
The database used in this hotel management system is MySQL, developed using SSM technology. During the design process, the system code was fully guaranteed to have good readability, practicality, scalability, universality, ease of later maintenance, easy operation, and concise pages.
Key words: Hotel management system, SSM framework, MySQL database
目录
第1章 绪论
1.1背景及意义
随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,人们对酒店管理系统方面的要求也在不断提高。智能公寓的数量更是不断增加,使得酒店管理系统的开发成为必需而且紧迫的事情。酒店管理系统主要是借助计算机,通过对酒店管理系统所需的信息管理,增加客户的选择,同时也方便对广大客户信息的及时查询、修改以及对客户信息的及时了解。酒店管理系统对客户带来了更多的便利,该系统通过和数据库管理系统软件协作来满足客户的需求。 计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。
1.2 国内外研究概况
随着国内经济形势的不断发展,中国互联网进入了一个难得的高峰发展时期,这使得中外资本家纷纷转向互联网市场。 然而,许多管理领域的不合理结构,人员不足以及管理需求的增加使得更多的人具备了互联网管理的意识。
在当今高度发达的信息中,信息管理改革已成为一种更加广泛和全面的趋势。 酒店管理系统是基于Mysql数据库,在SSM程序设计的基础上实现的。为确保中国经济的持续发展,信息时代日益更新,蓬勃发展。同时,随着信息社会的快速发展,酒店管理系统面临着越来越多的信息,因此很难获得他们对高效信息的需求,如何使用方便快捷的方式使查询者在广阔的海洋信息中查询,存储,管理和共享信息方面有效,对我们的工作和生活具有重要的现实意义。因此,国内外学术界对此进行了深入而广泛的研究,一个新的研究领域——酒店管理系统诞生了。
1.3 研究的内容
目前许多人仍将传统的纸质工具作为信息管理的主要工具,而网络技术的应用只是起到辅助作用。在对网络工具的认知程度上,较为传统的office软件等仍是人们使用的主要工具,而相对全面且专业的酒店管理系统的信息管理软件仍没有得到大多数人的了解或认可。本选题则旨在通过标签分类管理等方式,首页、个人资料(个人信息、修改密码)、公共管理(轮播图、通知公告)、用户管理(管理员、会员用户、操作员用户)、信息管理(酒店资讯、资讯分类)、权限管理(权限列表)、酒店简介、客房信息、房间类型、预定记录、入住记录、退房结账、餐饮美食、餐饮预定等信息管理功能,从而达到对酒店管理系统信息的高效管理。
第2章 相关技术
2.1 开发技术说明
本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的ssm框架进行开发。
前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库和Lay UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。
后端部分:采用ssm作为开发框架,同时集成MyBatis、Redis等相关技术。
2.1 SSM框架
当今流行的“SSM组合框架”是Spring + SpringMVC + MyBatis的缩写,受到很多的追捧,“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架,通常更简单的数据源。Spring属于一个轻量级的反转控制框架(IoC),但它也是一个面向表面的容器(AOP)。SpringMVC常常用于控制器的分类工作模式,与模型对象分开,程序对象的作用与自动取款机进行处理。这种解耦治疗使整个系统的个性化变得更加容易。MyBatis是一个良好的可持续性框架,支持普通SQL查询,同时允许对存储过程的高级映射进行数据的优化处理。大型Java Web应用程序的由于开发成本太高,开发后难以维护和开发过程中一些难以解决的问题,而采用“SSM组合框架”,它允许建立业务层次结构,并为这个问题提供良好的解决方案。
Java语言是目前使用率最高的一个语言类程序,并且他的代码还是开源的,任何的软件开发者都可以进行使用,目前已经在人类计算机编程语言发展史上产生了深远影响。所以Java语言是很成熟的,将他应用到我们的系统的开发中是不错的选择,而且由于常见所以绝大多数的人们都可以操作。
Java语言具有非常多种的特性,他的代码编写非常的简单,并且有多种编写方式,他有很好的面向对象性,而且他对使用的系统没有任何的要求,所有的系统都可以进行操作,他的安全性能也很高,因此他非常适合该系统的开发。
Java可以对系统没有任何的要求限制,可以在任何的系统上进行运行,不需要借助其他的语言编辑器来对代码进行编辑就可以开始运行了,这一点是非常好的,不仅我们在使用的时候更加的方便而且由于不需要借助其他的程序就能实现,所以可以节约我们的开发成本,而且经过Java编辑过的程序代码,可以直接进行使用,不需要重新编译,因此它是非常便利的,而且程序的运用不需要有专业的技术就可以运行了,为软件开发提供了很大的可行性。
mysql数据库具有很多的优点,他操作起来非常的简单,只需要编写一小段代码就可以实现相应的功能,而且编写出的代码可以在任何的系统下进行使用,对使用系统没有任何的要求,因此任何的软件开发人员都可以利用mysql数据库来进行系统的开发设计,同时他也可以为软件开发节省了很多的开销,mysql数据库由于存储量大、操作简单。功能强大因此将他最为该系统的数据存储是完全可以的。
mysq数据库是一个开放的架构,任何软件开发员都可以进行使用,随着计算机网络的不断发展,MySQL数据库也在功能方面不断的进行提升,也更加适应所有的系统的开发,我们在对数据库进行操作的时候,是非常简单易上手的,我们只需要编写一小段的代码就可以实现相应的功能,而且编辑出的代码可以在任何的系统上使用,不需要在进行二次的编译。由于MySQL数据库具有以上非常多的优点,我们将它最为数据库的首选应用到系统的开发中,由于他的体积非常小,开发的成本也非常的低,所有受到很多软件开发者的喜欢,被更多的运用到系统的开放中,所以本系统也是利用MySQL数据库来对所有的数据进行存储和编辑。
B/S(浏览器/服务器)结构是目前使用最多的结构模式,它可以使得系统的开发更加的简单,好操作,而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库,和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接,可以实现很多的功能,B/S结构是可以直接进行使用的,而且B/S结构在使用中极大的减少了工作的维护。基于B/S的软件,所有的数据库之间都是相互独立的,因此是非常安全的。因为基于B/S结构可以清楚的看到系统正在处理的业务,并且能够及时的让管理人员作出决策,这样就可以避免企业的损失。B/S结构的基本特点是集中式的管理模式,用户使用系统生成数据后,这些数据就可以存储到系统的数据库中,方便日后能够用到,这样就可以满足人们的所有的需求。
![](https://i-blog.csdnimg.cn/direct/193ac7bed85f400eb6c730da2d2d3999.png)
图2-1 B/S模式三层结构图
3.1 需求分析
酒店管理系统主要是为了提高工作人员的工作效率和更方便快捷的满足客户,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑客户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。
任何一个项目在开发研究前,都需要对研发系统本身的需求做一个认真的分析,市场的调研是不可忽视的,从实际场景中确定使用客户的功能需求,从而明确目标,对整个系统的开发有一个更加准确的定位。在这个章节,需要对系统的性能分析,业务流程分析,和数据等进行分析,酒店管理系统的整体界面简单,功能完善。
需求的可行性是分析和讨论发达的系统能达到什么样的要求。开发的系统或网站是否符合之前的要求。只有在预先评估系统的开发中,才能在系统开发和实施之前完成需求。系统在开发和运用过程中,在技术可行性、操作可行性、经济可行性和法律可行性这几点展开的详细说明,证明了这几点是可行的。
系统所要实现的功能分析,对于现在网络方便的管理,系统要实现客户可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除或修改酒店管理系统信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足客户的各种需求。所以酒店管理系统的开发不仅能满足客户的需求,还能减少原有不必要的工作量,大大提高了管理员的工作效率。
3.2 系统可行性分析
3.2.1技术可行性:技术背景
本企业网站在Windows操作系统中进行开发,并且目前PC机的性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。
系统的开发环境和配置都是可以自行安装的,系统使用SSM开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得网站运行更具有稳定性和安全性,从而完成实现网站的开发。
(1)硬件可行性分析
系统管理及信息分析的设计对于所使用的计算机没有什么硬性的要求,计算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有一定的要求的,服务器必须选择安全性比较高的,然后就是在打开网站必须顺畅,不能停顿太长时间;性价比高;安全性高。
(2)软件可行性分析
开发整个系统使用的是云计算,流量的可扩展性和基于流量的智能调整云计算的优点就是流量的可扩展性和基于流量的智能调整,保障系统的安全和数据信息的及时备份。
因此,我们从两个方面进行了可行性研究,可以看出系统的开发没有问题。
3.2.2经济可行性
在酒店管理系统开发之前所做的市场调研及其他相关的管理系统,都是没有任何费用的,都是通过开发者自己的努力,所有工作都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于酒店管理系统的开发在经济上是完全可行的,没有任何费用支出的。
使用比较成熟的技术,系统是基于SSM的开发,采用Mysql数据库。所以系统在开发人力、财力要求不高,具有经济可行性。
3.2.3操作可行性:
可操作性主要是对酒店管理系统设计完成后,客户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、顾客、员工、三个用户角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便客户信息的操作需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作过程使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。
3.3 项目设计目标与原则
(1)功能要求:可以管理系统首页、个人资料(个人信息、修改密码)、公共管理(轮播图、通知公告)、用户管理(管理员、会员用户、操作员用户)、信息管理(酒店资讯、资讯分类)、权限管理(权限列表)、酒店简介、客房信息、房间类型、预定记录、入住记录、退房结账、餐饮美食、餐饮预定等功能模块。
(2)性能:在不同操作系统上均能无差错实现在不同类型的客户登入相应界面后能不出差错、方便地进行预期操作。
(3)安全与保密要求:客户都必须通过管理员审核才能进入系统。
(4)环境要求:支持Windows系列、Vista系统等多种操作系统使用。
酒店管理系统的主要开发目标如下:
(1)实现管理系统信息关系的系统化、规范化和自动化;
(2)减少维护人员的工作量以及实现客户对信息的控制和管理;
(3)方便查询信息及管理信息等;
(4)通过网络操作,提高改善处理问题和操作人员工作的效率;
(5)考虑到客户多样性特点,要求界面和操作简便易懂。
本酒店管理系统采用SSM技术,Mysql数据库开发,充分保证了系统稳定性、完整性。
酒店管理系统的设计与实现的设计思想如下:
- 操作简单方便、系统界面安全良、简单明了的页面布局、方便查询智能公寓管理相关信息。
2、即时可见:对酒店管理系统信息的处理将立马在对应地点可以查询到,从而实现“即时发布、即时见效”的系统功能。
3、功能的完善性:可以管理系统个人资料、公共管理、用户管理、信息管理、权限管理、酒店简介、客房信息、房间类型、预定记录、入住记录、退房结账、餐饮美食、餐饮预定模块的修改维护操作。
3.4系统流程分析
3.4.1操作流程
![](https://i-blog.csdnimg.cn/direct/7abde2672dfa457c89e96d1cb70888fe.png)
图3-1登录流程图
3.4.2添加信息流程
添加信息流程图,如图所示:
![](https://i-blog.csdnimg.cn/direct/a1238ad1fa4644af8af4fecb8cdc5ba8.png)
图3-2添加信息流程图
3.4.3删除信息流程
删除信息流程图,如图所示:
![](https://i-blog.csdnimg.cn/direct/bb36f2fc683d4fd291744139c671a2fa.png)
图3-3删除信息流程图
第4章 系统设计
4.1 系统体系结构
酒店管理系统的结构图4-1所示:
![](https://i-blog.csdnimg.cn/direct/7e4602efab3741e3b137dcdaab3aed31.png)
图4-1 系统结构
登录系统结构图,如图4-2所示:
![](https://i-blog.csdnimg.cn/direct/b30a742e3b9b40f3be02e4d925265c4d.png)
图4-2 登录结构图
系统结构图,如图4-3所示。
![](https://i-blog.csdnimg.cn/direct/89d36a1f151f4b27bc773a68977ed52a.png)
图4-3 系统结构图
4.2开发流程设计
系统流程的分析是通过调查系统所涉及问题的识别、可行性、可操作性、系统分析处理能力等具体环节来调节、整理系统的设计方案以确保系统能达到理想的状态。这些操作都要从注册、登录处着眼进行一系列的流程测试保证数据库的完整,从而把控系统所涉及信息管理的安全、保证信息输入、输出正常转换。然后,通过实际操作完成流程图的绘制工作。
酒店管理系统的开发对管理模块和系统使用的数据库进行分析,编写代码,系统测试,如图4-4所示。
![](https://i-blog.csdnimg.cn/direct/d6fd03d4dedb48c8afde284f86411a9a.png)
图4-4开发系统流程图
4.3 数据库设计原则
学习编程,我们都知道数据库设计是基于需要设计的系统功能,我们需要建立一个数据库关系模型,用于存储数据信息,这样当我们在程序中时,就没有必要为程序页面添加数据,从而提高系统的效率。数据库存储了很多信息,可以说是信息管理系统的核心和基础,数据库还为系统提供了添加、删除、修改和检查等操作模块,使系统能够快速找到自己想要的信息,而不是在程序代码中找到。数据库中信息表的每个部分根据一定的关系精确地组合,排列和组合成数据表。
通过酒店管理系统的功能进行规划分成几个实体信息,实体信息将通过ER图进行说明,本系统的主要实体图如下:
管理员信息属性图如图4-5所示。
![](https://i-blog.csdnimg.cn/direct/5422ff9e4a3c48889668ffcd089a133a.png)
图4-5 管理员信息实体属性图
预定记录信息实体属性图如图4-6所示。
![](https://i-blog.csdnimg.cn/direct/c3a5a720c386423ebe094ccba5c248ca.png)
图4-6预定记录实体属性图
用户注册实体属性图如图4-7所示。
图4-7用户注册实体属性图
4.4 数据表
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | catering_reservations_id | int | 10 | 0 | N | Y | 餐饮预定ID | |
2 | name_of_food | varchar | 64 | 0 | Y | N | 餐品名称 | |
3 | food_taste | varchar | 64 | 0 | Y | N | 餐品口味 | |
4 | food_preparation | varchar | 64 | 0 | Y | N | 配饭 | |
5 | price | varchar | 64 | 0 | Y | N | 价格 | |
6 | member_users | int | 10 | 0 | Y | N | 0 | 会员用户 |
7 | member_phone | varchar | 64 | 0 | Y | N | 会员电话 | |
8 | housing_number | varchar | 64 | 0 | Y | N | 入住房号 | |
9 | order_number | varchar | 64 | 0 | Y | N | 订单号 | |
10 | reservation_remarks | text | 65535 | 0 | Y | N | 预定备注 | |
11 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
12 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
13 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | check_in_record_id | int | 10 | 0 | N | Y | 入住记录ID | |
2 | reservation_number | varchar | 64 | 0 | Y | N | 预定编号 | |
3 | room_type | varchar | 64 | 0 | Y | N | 房间类型 | |
4 | price | varchar | 64 | 0 | Y | N | 价格 | |
5 | number_of_reservations | varchar | 64 | 0 | Y | N | 预定数 | |
6 | member_users | int | 10 | 0 | Y | N | 0 | 会员用户 |
7 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
8 | member_phone | varchar | 64 | 0 | Y | N | 会员电话 | |
9 | check_in_time | date | 10 | 0 | Y | N | 入住时间 | |
10 | housing_number | varchar | 64 | 0 | Y | N | 入住房号 | |
11 | recommend | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | check_out_id | int | 10 | 0 | N | Y | 退房结账ID | |
2 | reservation_number | varchar | 64 | 0 | Y | N | 预定编号 | |
3 | room_type | varchar | 64 | 0 | Y | N | 房间类型 | |
4 | price | varchar | 64 | 0 | Y | N | 价格 | |
5 | number_of_reservations | varchar | 64 | 0 | Y | N | 预定数 | |
6 | member_users | int | 10 | 0 | Y | N | 0 | 会员用户 |
7 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
8 | check_in_time | date | 10 | 0 | Y | N | 入住时间 | |
9 | check_out | date | 10 | 0 | Y | N | 退房日期 | |
10 | housing_number | varchar | 64 | 0 | Y | N | 入住房号 | |
11 | number_of_check_in_days | int | 10 | 0 | Y | N | 0 | 入住天数 |
12 | check_in_amount | varchar | 64 | 0 | Y | N | 入住金额 | |
13 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
14 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
15 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | food_and_beverage_id | int | 10 | 0 | N | Y | 餐饮美食ID | |
2 | picture_of_food | varchar | 255 | 0 | Y | N | 餐品图片 | |
3 | name_of_food | varchar | 64 | 0 | Y | N | 餐品名称 | |
4 | food_taste | varchar | 64 | 0 | Y | N | 餐品口味 | |
5 | food_preparation | varchar | 64 | 0 | Y | N | 配饭 | |
6 | price | int | 10 | 0 | Y | N | 0 | 价格 |
7 | introduction_to_food_products | longtext | 2147483647 | 0 | Y | N | 餐品介绍 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | recommend | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hotel_introduction_id | int | 10 | 0 | N | Y | 酒店简介ID | |
2 | hotel_image | varchar | 255 | 0 | Y | N | 酒店图片 | |
3 | hotel_name | varchar | 64 | 0 | Y | N | 酒店名称 | |
4 | area_covered | varchar | 64 | 0 | Y | N | 占地面积 | |
5 | number_of_rooms | int | 10 | 0 | Y | N | 0 | 房间数量 |
6 | hotel_star | varchar | 64 | 0 | Y | N | 酒店星级 | |
7 | hotels_address | varchar | 64 | 0 | Y | N | 酒店地址 | |
8 | hotel_facilities | text | 65535 | 0 | Y | N | 酒店设施 | |
9 | hotel_profile | longtext | 2147483647 | 0 | Y | N | 酒店简介 | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
11 | recommend | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | member_users_id | int | 10 | 0 | N | Y | 会员用户ID | |
2 | member_name | varchar | 64 | 0 | N | N | 会员姓名 | |
3 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
4 | gender | varchar | 64 | 0 | Y | N | 性别 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | operator_user_id | int | 10 | 0 | N | Y | 操作员用户ID | |
2 | operator_name | varchar | 64 | 0 | N | N | 操作员姓名 | |
3 | department_name | varchar | 64 | 0 | Y | N | 部门名称 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | reservation_record_id | int | 10 | 0 | N | Y | 预定记录ID | |
2 | guest_room_picture | varchar | 255 | 0 | Y | N | 客房图片 | |
3 | reservation_number | varchar | 64 | 0 | Y | N | 预定编号 | |
4 | room_type | varchar | 64 | 0 | Y | N | 房间类型 | |
5 | price | varchar | 64 | 0 | Y | N | 价格 | |
6 | scheduled_date | date | 10 | 0 | Y | N | 预定日期 | |
7 | number_of_reservations | int | 10 | 0 | Y | N | 0 | 预定数 |
8 | member_users | int | 10 | 0 | Y | N | 0 | 会员用户 |
9 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
10 | member_phone | varchar | 64 | 0 | Y | N | 会员电话 | |
11 | reservation_message | text | 65535 | 0 | Y | N | 预定留言 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | room_information_id | int | 10 | 0 | N | Y | 客房信息ID | |
2 | guest_room_picture | varchar | 255 | 0 | Y | N | 客房图片 | |
3 | room_type | varchar | 64 | 0 | N | N | 房间类型 | |
4 | remaining_quantity | int | 10 | 0 | Y | N | 0 | 剩余数量 |
5 | price | int | 10 | 0 | Y | N | 0 | 价格 |
6 | facilities | text | 65535 | 0 | Y | N | 设施 | |
7 | room_introduction | longtext | 2147483647 | 0 | Y | N | 客房介绍 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | recommend | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | room_type_id | int | 10 | 0 | N | Y | 房间类型ID | |
2 | layout_of_a_house_or_an_apartment | varchar | 64 | 0 | Y | N | 房型 | |
3 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
5.1系统界面模块
酒店管理系统首页功能界面图,功能分为:首页、通知公告、酒店资讯、个人账户、个人收藏、酒店简介、客房信息、餐饮美食、个人中心等;如下图所示:5-1所示。
![](https://i-blog.csdnimg.cn/direct/f1f92f87d2694f8d91c7195603b108f5.png)
用户注册,在用户注册页面通过填写用户账号、用户姓名、密码、年龄、手机号、邮箱、身份等信息完成用户注册,如图5-2所示。
![](https://i-blog.csdnimg.cn/direct/3a3610d735584d74bf01b2c6f5f8d95a.png)
图5-2用户注册界面图
用注册代码如下:
/**
* 注册
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = service.readBody(request.getReader());
query.put("username",String.valueOf(map.get("username")));
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);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.insert(entity);
log.info("[{}] - 插入操作:{}",entity);
}
登录,在登录面通过填写用户账号、密码、滑动滑块进行验证等信息进行点击登录,;如图5-3所示。
![](https://i-blog.csdnimg.cn/direct/da2adcf15bb54bfc96eb17d4ccd3bba8.png)
图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;
QueryWrapper wrapper = new QueryWrapper<User>();
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());
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, "账号或密码不正确");
}
}
public String select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
5.2管理员功能模块
管理员登录,通过填写用户名、密码、权限、验证码等信息,输入完成后选择登录即可进入酒店管理系统,如图5-4所示。
![](https://i-blog.csdnimg.cn/direct/ddf0d78cebdb4b1cb175a860fcee976f.png)
图5-4管理员登录界面图
管理员登录进入首页管理可以查看首页、个人资料(个人信息、修改密码)、公共管理(轮播图、通知公告)、用户管理(管理员、会员用户、操作员用户)、信息管理(酒店资讯、资讯分类)、权限管理(权限列表)、酒店简介、客房信息、房间类型、预定记录、入住记录、退房结账、餐饮美食、餐饮预定等内容,如图5-5所示。
![](https://i-blog.csdnimg.cn/direct/23d43d4e34f2404ca0ef832c1d3a2716.png)
图5-5管理员功能界面图
酒店简介管理,在酒店简介管理添加页面可以查看到酒店名称、占地面积、房间数量、酒店星级、酒店地址、酒店设施等信息,并可根据需要进行查看评价、查询、取消、删除或查看详细内容等操作,如图5-6所示。
![](https://i-blog.csdnimg.cn/direct/404246bc094f4d4d8a20dd7b197df6e6.png)
![](https://i-blog.csdnimg.cn/direct/eb7002afd54948bf98d699e827e92803.png)
图5-6酒店简介管理界面图
轮播图管理,在轮播图管理页面可以查看标题、轮播图等内容,并可根据需要进行查询或者删除等操作,如图5-7所示。
![](https://i-blog.csdnimg.cn/direct/2d1a766c385b4512a4503d7ad0c394bf.png)
![](https://i-blog.csdnimg.cn/direct/cc2e02220ba24c4bbba8c643d2a42083.png)
图5-7轮播图管理界面图
酒店资讯管理,在酒店资讯管理页面可以查看封面图、标签、标题、分类、描述等信息,并可根据需要进行评论、删除、添加详细内容等操作,如图5-8所示。
![](https://i-blog.csdnimg.cn/direct/096125ba39e345bba0279f6e5483795f.png)
![](https://i-blog.csdnimg.cn/direct/977865a2457148af9125a750c1e15d04.png)
图5-8酒店资讯管理界面图
5.3操作员用户功能模块
操作员登录进入首页管理可以查看后台首页、个人资料(个人信息、修改密码)、客房信息、房间类型、预定记录、入住记录、退房结账、餐饮美食、餐饮预定等内容,如图5-9所示。
![](https://i-blog.csdnimg.cn/direct/56e1dc258ef242dd86172823a7041011.png)
图5-9操作员功能界面图
个人信息,个人信息页面依次填写信息用户名、昵称、用户组、邮箱、状态等信息,如图5-10所示。
![](https://i-blog.csdnimg.cn/direct/2e7dee2dd8b642c08eff9a72b5e10363.png)
图5-10个人信息界面图
客房信息,在该页面可查看登记入住信息:客房图片、房间类型、剩余数量、价格、设施等内容,并可根据需要进行评论、删除、添加详细内容等操作如图5-11所示。
![](https://i-blog.csdnimg.cn/direct/7663ed35d4c24eb681df7d039acefa50.png)
图5-11 客房信息界面图
餐饮美食,在餐饮美食页面查看餐品图片、餐品名称、餐品口味、配饭、价格等信息,还可根据需要在对该页面进行查看评论、添加、删除操作 图5-12所示。
![](https://i-blog.csdnimg.cn/direct/af53c8e098b14f92863a24a00bd5a923.png)
图5-12餐饮美食界面图
5.4会员用户功能模块
会员用户登录进入首页管理可以查看后台首页、个人资料(个人信息、修改密码)、预定记录、入住记录、退房结账、餐饮预定等内容,如图5-13所示。
![](https://i-blog.csdnimg.cn/direct/a7c35087338746bfbef3b7e2eefb42e3.png)
图5-13会员用户功能界面图
入住记录管理,在入住记录管理页面可以预定编号、房间类型、价格、预定数、会员用户、身份证号等信息,还可在该页面进行退房结账查询、编辑删除详情等操作,如图5-14所示:
![](https://i-blog.csdnimg.cn/direct/b245da2970ee445ab183f1dae97835f2.png)
图5-14 入住记录管理界面图
餐饮预定管理,在餐饮预定管理页面可以查看餐品名称、餐品口味、配饭、价格、会员用户、会员电话等信息,还可在该页面进行查询、编辑删除详情等操作,如图5-15所示。
![](https://i-blog.csdnimg.cn/direct/b4218849ac7c40c9a3fb39b9152ba277.png)
6.1系统测试的目的
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,再测试过程中发现问题,并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但对于长期使用而言是非常重要和必要系统的开发。
软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。
酒店管理系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在酒店管理系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给客户使用。
6.2系统测试方法
在对酒店管理系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让酒店管理系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个酒店管理系统开发所牵扯的该问题都必须一一解决,提高酒店管理系统平台的安全性、稳定性。
白盒测试与黑盒测试是测试中比较常用的两种方法。
①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。
②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。
6.3功能测试
客户登录测试:
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
登录模块 | 客户名:admin 密码:123 | 弹出错误提示,提示密码错误 | 弹出错误提示,提示密码错误 | 通过 |
登录模块 | 客户名:123 密码:admin | 弹出错误提示,提示客户名错误 | 弹出错误提示,提示客户名错误 | 通过 |
登录模块 | 客户名:admin 密码:admin | 管理员登录成功 | 管理员登录成功 | 通过 |
删除分类测试:
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
删除分类模块 | 分类名:最新通知 | 删除成功、页面自动跳转 | 删除成功、页面自动跳转 | 通过 |
修改密码测试:
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
修改密码模块 | 原密码:666 新密码:123 确认密码:123 | 弹出错误提示,提示原密码错误 | 弹出错误提示,提示原密码错误 | 通过 |
修改密码模块 | 原密码:admin 新密码:123 确认密码:333 | 弹出错误提示,提示确认密码不一致 | 弹出错误提示,提示确认密码不一致 | 通过 |
修改密码模块 | 原密码:admin 新密码:123 确认密码:123 | 密码修改成功 | 密码修改成功 | 通过 |
通过对功能的测试,酒店管理系统的基本功能都是可行的,不管是系统里面的功能,还是界面的设计都是可值得推广宣传的。
此时项目已经完成,即使实施的时间不是很长,但是这个过程中需要准备很长的一段时间去对系统设计开发所实际到的技术进行学习。在学习的过程中,我逐渐认识得到了我自身存在的一些不足。对于一些控制是必要的应用技能,能够理解,整个过程中仅仅是一个掌握了常用的性能和控制方法,我觉得挺容易的。从该系统中,系统的分析和设计的调查数据,并且已经经历了几个月,并努力几个月,该系统已经完成。很显然,该系统仍有很多不成熟,在系统设计过程中有许多技术缺陷存在。在设计的过程中也涉及到了很多自己无法解决的问题,主要通过找专业的网站和论坛来解决这些问题,对于圆满完成我的毕业设计,他们也贡献了很大一部分力量。系统的开发环境和配置都是可以自行安装的,系统使用SSM开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。
在以后的学习及工作中,我将继续努力学习计算机方面的技术,以期在平台开发中可以更好更快的实现需求功能。
酒店管理系统的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。
首先要感谢我的指导老师,谢谢您在设计和论文中给我的指导。在您的细心指导下我才能快速的掌握系统的相关功能,在您的大力帮助下我才能将课本上的知识与自己的项目结合,真正的做到学以致用。感谢您经常牺牲自己的休息时间,利用其丰富的教学和项目经验对我进行指导。
感谢所有教过我的老师,为我倾注了大量的心血,正是你们的谆谆教诲、严谨教学才使我能顺利的完成学业,再此向你们表示深深的感谢。
感谢我的同学们,对我的大力支持及帮助,正是你们不断的帮助、鼓励,给我带来了极大的动力,最终系统可以顺利的运行。我们在交流、谈论的这段时间,将是我未来的财富,我要深深地感谢你们!
毕业在即,在今后的工作和生活中,我会铭记师长们的教诲、同学们的帮助,继续不懈努力和追求,来报答所有支持和帮助过我的人!
[1]董袁泉,贾苏,钱梦颖.基于SSM的自动化车座安排系统[J].电脑知识与技术,2023,19(02):47-49.DOI:10.14004/j.cnki.ckt.2023.0058.
[2]郭建卫.基于SSM+Mybatis+Vue的学生德育量化考核系统设计与实现[J].现代信息科技,2023,7(01):18-22.DOI:10.19850/j.cnki.2096-4706.2023.01.004.
[3]银莉,杜啸楠.基于SSM和Vue的社区服务平台设计与实现[J].电子技术,2022,51(12):182-183.
[4]郭志英.基于Web的酒店管理系统的设计与实现[J].长江信息通信,2022,35(12):120-123.
[5]Yu Yang. Design and Implementation of Student Information Management System Based on SSM[J]. Advances in Computer, Signals and Systems,2022,6(6).
[6]鄢靖丰,王佳乐.基于SSM的微电子平台设计与实现[J].许昌学院学报,2022,41(05):94-98.
[7]周文哲,孔璐.基于大数据的酒店运营信息管理系统设计[J].信息与电脑(理论版),2022,34(18):118-120.
[8]Tang Li. CRM Hotel Management System and Intelligent Information Push Based on Bp Neural Network[J]. Advances in Computer, Signals and Systems,2022,6(4).
[9]于盛洋.智慧酒店管理系统设计与实现——基于RFID模块[J].产业科技创新,2022,4(02):37-40.
[10]Anukul Tripathi,Bittu Kumar. Design of Hotel Management System[J]. Journal of Global Economy, Business and Finance,2021,3(11).
[11]商利华.基于C#的酒店客房管理系统的设计与实现[J].信息与电脑(理论版),2021,33(21):216-218.
[12]岳颖颖.基于Web酒店管理系统设计分析[J].电子技术与软件工程,2021(17):196-197.
[13]Priyadharshini.S,Catherine Joy.R. Design and Implementation of an Automated Hotel Management System[J]. International Journal of Engineering and Advanced Technology (IJEAT),2021,10(5).
[14]王维,刘峻杰,李洪亮.中小型酒店住宿管理系统的设计与实现[J].内江科技,2021,42(05):42+19.
[15]Fuyuan Cheng. Talent Recruitment Management System for Small and Micro Enterprises Based on SSM Framework[J]. Advances in Educational Technology and Psychology,2021,5(2).
点赞+收藏+关注 → 私信领取本源代码、数据库