很多朋友发现后期找不到文章,收藏关注不迷路
项目介绍
信息化的迅速发展,对人们的衣食住行产生了很大影响。越来越多的人习惯并依赖于通过信息技术和智能化的形式来处理日常各类事物。为了满足住店用户预定酒店的需要,以及适应现代化酒店管理的需求,决定开发基于spark的酒店管理系统。帮助会员快速的在线预定,提高了预定效率。
本系统是选择面向对象的Java语言开发,通过SpringBoot框架进行设计,使用关系型数据库MySQL存储数据,结合spark对酒店系统的各种数据如酒店客房信息、价格信息等进行实时分析。使用B/S开发方式,用户只需要通过浏览器访问系统即可获取酒店客房信息,并可以在线预定客房等,实现了信息的科学管理与查询统计。本文先通过对相关系统的调研,提出开发基于spark的酒店管理系统的意义,然后使用当前主流的技术进行开发,满足基于spark的酒店管理系统的技术要求,分析系统需要实现的功能并进行设计。梳理业务流程,并根据功能设计数据库,最后通过编码实现,介绍实现的关键算法逻辑。在测试阶段通过测试用例来确保系统可以正常运行,并达到前期要求的目的。系统的实施方便了酒店管理,将信息化技术完美的应用在酒店客房管理系统中,使得酒店客房管理变得快捷高效。
研究背景及意义
在信息技术带动下,也影响着酒店的管理方式。在这个信息爆炸,飞速发展的时代,谁都不缺梦想,但需要一个耕耘梦想的空间。因此,各种旅游的人们越来越多,对酒店的需求越来越大,酒店客房也逐渐需要进行信息化管理,把酒店客房类型、客房状态、预定等结合在一起,基于spark的酒店管理系统,可以有效的对这些内容进行整合,提高酒店客房利用率。
另外,随着通讯技术的飞速发展以及各类新媒体的不断涌出,Java己经成为大众关注的新焦点。Java成熟稳定,时候开发web的管理系统,而且还拥有广泛的用户基础。无论是酒店管理者还是客房会员,都希望通过有效的技术手段改变效率低下的预定手段,通过管理系统进行全面的线上管理。管理者可以通过基于spark的酒店管理系统,全面掌握酒店客房的各项状态,会员通过系统查询酒店客房信息,在线预定。
酒店作为旅游过程必须的设施,也逐渐需需要进行信息化管理,把酒店类型、客房状态、预定等结合在一起,基于spark的酒店管理系统,可以有效的对这些内容进行整合,提高高校酒店利用率。
国内外研究现状
在国内,各种与酒店管理有关的系统发展迅速,从最初的单片机处理时代发展到数据综合处理时期,到目前的数据系统处理时期。信息技术的快速发展带来了管理系统的质的变化,在单片机处理时期,数据存储有限,系统效率较低。在第二时期的数据综合处理时期中,因为计算机软硬件水平较低而且价格昂贵,虽然酒店客房管理系统得到了一定的发展,但是受限于昂贵的设备,不能全面普及开来。目前的综合数据系统时代,分布式开发技术、微服务技术,数据库技术逐渐完善,软件设备价格低廉,带动了全面的发展,为酒店客房管理系统的普及提供了基础。相比单片机管理系统和客户端服务器模式的系统,目前的轻客户端模式大大降低了开发成本,提高了数据管理的效率。每一台客户端不需要单独安装,通过浏览器即可访问。
尽管目前陆续有酒店管理员开发出基于移动平台的酒店客房管理系统,但基本上是从网页到手机客户端的一种简单的功能迁移,仅仅能满足单纯的查询需求,并没有考虑到一些细化的需求。例如酒店客房只能预定,无法在线交流。如果能实时了解到各个酒店客房的位置和状态,无疑将方便会员寻找酒店客房信息,实现酒店客房资源的合理利用。
在国外,管理系统发展较早,各种技术比较成熟,对于酒店客房管理系统也具有更好的兼容性和安全性。在信息化标准规范基础上,各种管理系统也可以满足客户要求,而且对于发达的欧美国家,他们通过利用技术手段,结合先进的教务管理模式,开发出符合高校发展的管理系统。同时,他们经过多年的摸索,形成了规范成熟的酒店客房管理系统,在美国有着超过85%的会员通过在线查看酒店客房状态,并积极的参与到管理系统中。
技术介绍
1、管理员账号:abo 密码:abo
2、开发环境为Eclipse/idea,数据库为mysql 使用java语言开发。
3.配置好Tomcat并点击启动按钮即可运行
4.数据库连接src\main\resources\application.yml中修改
5.maven包版本apache-maven-3.3.9.
开发语言:Java
框架:SSM
前端框架:vue.js
JDK版本:JDK1.8+
服务器:tomcat8+
数据库工具:Navicat
开发软件:idea 支持eclipse
Springboot是当前最流向的一个框架,它的配置更加的简单,使开发变得更加的简单迅速。
Springboot的基础结构共三个文件,具体如下:
src/main/java:程序开发以及主程序入口;
src/main/resources:配置文件;
src/test/java:测试程序。
ssm的数据库配置默认支持两种格式的配置文件
1,application.properties
2,application.yaml
项目界面
登录:运行系统后,进行登录,可使用本系统。
客房预定:此界面先通过条件查询客房信息,然后进行客房预定。对预定的客房还可以取消和支付操作。
信息查询:可查询所有的公告信息,点击公告名称,查看公告详情。
修改密码:对密码进行修改。
管理员通过服务器管理端进行登录,对会员用户进行管理,添加酒店客房信息,对客房预定、公告信息进行管理。
具体功能如下。
登录管理模块:用来进行用户信息的登录和身份验证,用户可以进入系统内部查看客房信息和预订情况。
客房选择模块:可以进行查看所有的客房信息,该模块满足了人们按照自己的喜好来选择预订客房的需求。
预订房间模块:用户在浏览客房时,选择自己心仪的客房来第一时间预订。
支付模块:用户可以用来支付预订客房的订单。
个人订单管理模块:用户可以查看自己支付后的客房订单管理。
个人资料管理模块:用户可以查看及编辑个人信息资料。
留言评论模块:该模块是用户可以在评论区发表自己的感触。
管理员登录模块:管理员通过后台登录进入对订单进行管理。
订单管理模块:管理员对客户的订单进度进行查询。
评论管理:管理员可以在留言区域进行操作。
用户管理模块:在酒店预订系统中,用户可以在模块中查看个人的基本信息以及支付后的订单管理,除此之外还可以对用户升级为会员。
完成系统的统计,使用spark进行数据统计,使用可视化大屏分析出,酒店客房信息、价格趋势、人数统计等。
其中用户登录中,通过浏览器访问该基于spark的酒店管理系统,选择登录界面,进行登录。登录成功进入到系统,登录失败,提示用户不存在,需要重新输入正确的用户名和密码。
用户管理中,先运行基于spark的酒店管理系统,然后录入会员信息,验证信息后,保存信息到数据库,如果保存失败,提示错误信息,并返回到主界面。
酒店客房管理中,启动基于spark的酒店管理系统,进入到酒店客房创建的页面,填写创建酒店客房的基本信息,创建成功后更新酒店客房数据库表的记录。在酒店客房修改或者删除的页面,完成操作后,更新酒店客房数据库表的记录。在酒店客房列表界面,查询所有的酒店客房数据库表的记录,然后绑定数据到酒店客房列表中。
预定管理中,先运行基于spark的酒店管理系统,然后录入会员信息,验证信息后,保存信息到数据库,如果保存失败,提示错误信息,并返回到主界面。
关键代码
package com.controller;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
目录
目 录
目 录 III
1 绪论 1
1.1 研究背景 1
1.2 目的和意义 1
1.3 论文结构安排 2
2 相关技术 3
2.1 Springboot框架介绍 3
2.2 B/S结构介绍 3
2.3 Mysql数据库介绍 4
3 系统分析 6
3.1 系统可行性分析 6
3.1.1 技术可行性分析 6
3.1.2 经济可行性分析 6
3.1.3 运行可行性分析 6
3.2 系统性能分析 7
3.2.1 易用性指标 7
3.2.2 可扩展性指标 7
3.2.3 健壮性指标 7
3.2.4 安全性指标 8
3.3 系统流程分析 8
3.3.1 操作流程分析 8
3.3.2 登录流程分析 9
3.3.3 信息添加流程分析 10
3.3.4 信息删除流程分析 11
4 系统设计 12
4.1 系统概要设计 12
4.2 系统功能结构设计 12
4.3 数据库设计 13
4.3.1 数据库E-R图设计 13
4.3.2 数据库表结构设计 14
5 系统实现 17
5.1用户部分功能17
5.2 管理员部分功能展示
6 系统测试
6.1 系统测试的特点
6.2 系统功能测试
6.2.1 登录功能测试
6.2.2 添加类别功能测试
6.3 测试结果分析
结 论
致 谢
参考文献