大数据毕业设计基于spark的酒店管理系统-可视化大屏展示
前言
本系统是选择面向对象的Java语言开发,通过SpringBoot框架进行设计,使用关系型数据库MySQL存储数据,结合spark对酒店系统的各种数据如酒店客房信息、价格信息等进行实时分析。使用B/S开发方式,用户只需要通过浏览器访问系统即可获取酒店客房信息,并可以在线预定客房等,实现了信息的科学管理与查询统计。本文先通过对相关系统的调研,提出开发基于spark的酒店管理系统的意义,然后使用当前主流的技术进行开发,满足基于spark的酒店管理系统的技术要求,分析系统需要实现的功能并进行设计。梳理业务流程,并根据功能设计数据库,最后通过编码实现,介绍实现的关键算法逻辑。在测试阶段通过测试用例来确保系统可以正常运行,并达到前期要求的目的。系统的实施方便了酒店管理,将信息化技术完美的应用在酒店客房管理系统中,使得酒店客房管理变得快捷高效。
关键词:Java;数据库;酒店;客房预定;spark
一、项目介绍
通过管理系统进行全面的线上管理。管理者可以通过基于spark的酒店管理系统,全面掌握酒店客房的各项状态,会员通过系统查询酒店客房信息,在线预定。
酒店作为旅游过程必须的设施,也逐渐需需要进行信息化管理,把酒店类型、客房状态、预定等结合在一起,基于spark的酒店管理系统,可以有效的对这些内容进行整合,提高高校酒店利用率。
二、开发环境
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————
三、功能介绍
基于spark的酒店管理系统包括会员用户和管理员。会员用户登录后具有客房预定、信息查询等功能,而管理员具有客房管理、客房预定管理、预定取消管理、公告管理、系统管理等功能。该系统不仅可以大大提高使用者和管理者的使用效率,也在另一方面提高了信息化水平的发展
3.2.1会员用户
登录:运行系统后,进行登录,可使用本系统。
客房预定:此界面先通过条件查询客房信息,然后进行客房预定。对预定的客房还可以取消和支付操作。
信息查询:可查询所有的公告信息,点击公告名称,查看公告详情。
修改密码:对密码进行修改。
用户用例图如图3-1所示。

图3-1用户用例图
3.2.2 管理员
管理员登录后,管理系统信息。其中管理员用例图如图3-2所示。

图3-2管理员用例图
其中用户登录中,通过浏览器访问该基于spark的酒店管理系统,选择登录界面,进行登录。登录成功进入到系统,登录失败,提示用户不存在,需要重新输入正确的用户名和密码。
用户管理中,先运行基于spark的酒店管理系统,然后录入会员信息,验证信息后,保存信息到数据库,如果保存失败,提示错误信息,并返回到主界面。
酒店客房管理中,启动基于spark的酒店管理系统,进入到酒店客房创建的页面,填写创建酒店客房的基本信息,创建成功后更新酒店客房数据库表的记录。在酒店客房修改或者删除的页面,完成操作后,更新酒店客房数据库表的记录。在酒店客房列表界面,查询所有的酒店客房数据库表的记录,然后绑定数据到酒店客房列表中。
预定管理中,先运行基于spark的酒店管理系统,然后录入会员信息,验证信息后,保存信息到数据库,如果保存失败,提示错误信息,并返回到主界面。
4.2 功能结构设计
本系统可以更好地为需要的会员用户提供酒店客房预定服务,该系统有会员用户和管理员两个角色。会员用户通过浏览器端进行登录,进行客房查询、客房预定、入住登记、退房、公告信息、修改密码等功能。本系统的总体功能图如图4-2所示。

图4-2总体功能图
管理员通过服务器管理端进行登录,对会员用户进行管理,添加酒店客房信息,对客房预定、公告信息进行管理。
具体功能如下。
登录管理模块:用来进行用户信息的登录和身份验证,用户可以进入系统内部查看客房信息和预订情况。
客房选择模块:可以进行查看所有的客房信息,该模块满足了人们按照自己的喜好来选择预订客房的需求。
预订房间模块:用户在浏览客房时,选择自己心仪的客房来第一时间预订。
支付模块:用户可以用来支付预订客房的订单。
个人订单管理模块:用户可以查看自己支付后的客房订单管理。
个人资料管理模块:用户可以查看及编辑个人信息资料。
留言评论模块:该模块是用户可以在评论区发表自己的感触。
管理员登录模块:管理员通过后台登录进入对订单进行管理。
订单管理模块:管理员对客户的订单进度进行查询。
评论管理:管理员可以在留言区域进行操作。
用户管理模块:在酒店预订系统中,用户可以在模块中查看个人的基本信息以及支付后的订单管理,除此之外还可以对用户升级为会员。
完成系统的统计,使用spark进行数据统计,使用可视化大屏分析出,酒店客房信息、价格趋势、人数统计等。
四、核心代码
部分代码:
package com.example.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {
@Resource
private CaiwuService caiwuService;
@PostMapping
public Result add(@RequestBody CaiwuVo caiwu) {
caiwuService.add(caiwu);
return Result.success(caiwu);
}
@PostMapping("/deleteList")
public Result deleteList(@RequestBody CaiwuVo caiwu) {
caiwuService.deleteList(caiwu.getList());
return Result.success();
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
caiwuService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody CaiwuVo caiwu) {
caiwuService.update(caiwu);
return Result.success();
}
@GetMapping("/{id}")
public Result detail(@PathVariable Integer id) {
Caiwu caiwu = caiwuService.findById(id);
return Result.success(caiwu);
}
@GetMapping
public Result<List> all() {
return Result.success(caiwuService.list());
}
@PostMapping("/page")
public Result page(@RequestBody CaiwuVo caiwuVo) {
return Result.success(caiwuService.findPage(caiwuVo));
}
@PostMapping("/login")
public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
}
Caiwu login = caiwuService.login(caiwu);
// if(!login.getStatus()){
// return Result.error("1001","状态限制,无法登录系统");
// }
if(login != null) {
HashMap hashMap = new HashMap();
hashMap.put("user", login);
Map map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
String token = JwtUtil.creatToken(map);
hashMap.put("token", token);
return Result.success(hashMap);
}else {
return Result.error();
}
}
@PutMapping("/updatePassword")
public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
Caiwu caiwu = caiwuService.findById(info.getId());
String oldPassword = SecureUtil.md5(info.getMima());
if (!oldPassword.equals(caiwu.getMima())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setMima(SecureUtil.md5(info.getNewPassword()));
Caiwu caiwu1 = new Caiwu();
BeanUtils.copyProperties(info, caiwu1);
caiwuService.update(caiwu1);
return Result.success();
}
}
五、效果图






六、文章目录
目 录
摘 要 III
Summary IV
1 绪论 1
1.1 研究背景及意义 1
1.2 国内外研究现状 1
1.3 本文结构 2
2 技术介绍 3
2.1 开发工具和开发语言 3
2.2 springboot框架简介 3
2.2.1 Mybatis 3
2.2.2 Spring 3
2.2.3 Spring MVC 3
2.3 MYSQL数据库 3
2.4 spark技术 4
3 系统分析 5
3.1 可行性分析 5
3.1.1 经济可行性 5
3.1.2 技术可行性 5
3.1.3 操作可行性 5
3.1.4 时间可行性 5
3.2 需求分析 5
3.2.1会员用户 6
3.2.2 管理员 6
4 系统设计 8
4.1 体系结构设计 8
4.2 功能结构设计 9
4.3 数据库设计 10
5 系统实现 16
5.1 前台功能实现 16
5.1.1 登录 16
5.1.2 网站首页 16
5.1.3 客房预定 17
5.1.4 预定支付实现 18
5.1.5 个人中心 18
5.2 后台管理端实现 18
5.2.1 登录 19
5.2.2 酒店客房管理 19
5.2.3 会员管理 19
5.2.4 客房预定管理 20
5.2.5 可视化大屏分析 20
5.2.6修改密码 21
6 系统测试 22
6.1 概述 22
6.2 测试目的 22
6.3 系统功能测试 23
6.3.1登录测试 23
6.3.2 修改密码模块测试 23
6.3.3 删除会员模块测试 24
6.3.4 客房预定模块测试 25
6.4 测试结果 25
7 结论与展望 26
致 谢 27
参考文献 29
):
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/3e03df579b.html
