Java实现假日旅社管理系统 JAVA+Vue+SpringBoot+MySQL

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 系统介绍
    • 2.2 QA 问答
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询民宿
    • 4.2 新增民宿评论
    • 4.3 查询民宿新闻
    • 4.4 新建民宿预订单
    • 4.5 查询我的民宿预订单
  • 五、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的假日旅社管理系统,包含了民宿管理模块、民宿订单模块、民宿评论模块和民宿新闻模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,假日旅社管理系统基于角色的访问控制,给旅社管理员、旅客使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

2.1 系统介绍

随着国民生活水平的逐渐提高,每逢假期或空闲时节走出家门游山玩水已渐渐成为人们生活的一部分,那么外出住宿是必然要考虑到的问题。互联网的普及给人们带来的便利不需多说。

因此如果把假日旅社与互联网结合起来,利用 spring boot 框架,mysql 技术建设民宿短租系统,实现假日旅社管理的网络化。则对于进一步提高国民经济发展,丰富人们的精神生活定能起到不少的促进作用。

根据本系统的研究现状和发展趋势,系统从需求分析、结构设计、数据库设计,在到系统实现,分别为前端实现和后端实现。

  1. 主界面,主要显示正在热门假日旅社动态、网站导航
  2. 用户登陆注册和用户管理,用户管理包括用户信息、添加时间、手机号等
  3. 民宿详情,为用户提供民宿的基本信息,用户可以进行评论。
  4. 民宿预定,用户进行预定,确认订单信息,生成用户订单等
  5. 角色管理:对后台管理员账号进行修改和增删。

2.2 QA 问答

假日旅社管理系统的使用对象有两个,分别是宿舍管理员和旅客。

  1. 宿舍管理员可以对旅社的宿舍进行管理维护;对旅社的时政新闻进行管理;监控查询旅客的预约、评论信息;系统权限的配置;旅社组织架构的设计;系统用户的管理

  2. 旅客可以查询旅社的宿舍;查询旅社的新闻;在对旅社的宿舍进行预约;对宿舍进行评论

假日旅社管理系统拥有以下六个功能模块。

  1. 承载旅社的宿舍管理功能。也就是宿舍管理员可以对旅社的宿舍进行增删改查操作。
    宿舍是假日旅社系统的基础数据,所以需要这个模块。

  2. 承载旅客档案管理功能。也就是宿舍管理员可以对旅客的档案进行增删改查操作。比如维护手机号、姓名等。
    旅客也是假日旅社系统的基础数据,所以需要这个模块。

  3. 承载宿舍预约的功能,和模拟付款功能。
    旅客可以查询宿舍管理员发布的宿舍,并且进行预定,支持模拟付款功能,模拟整个预定的过程。

  4. 承载旅社的新闻时政功能。
    一家旅社要能够得到旅客的信赖,新闻时政肯定是必不可少的
    所以需要这个模块,由宿舍管理员维护,开放给旅客查询。

  5. 承载旅社宿舍的留言功能。
    旅客可以对宿舍进行评论,可以被给其他旅客看到,给与决策支持。

  6. 承载可能需要的其他功能。
    在设计这个系统的时候,可能会用到其他功能,比如日志、文件管理
    我会把这些功能封装成独立的模块,利用Vue的组件化优势提供给别的模块调用

这个系统前端采用了国内流行的Vue技术,采用View UI作为组件库;后端采用SpringBoot整合MybatisPlus。采用maven构建项目,采用Mysql数据库,使用Redis缓存加密的用户临时数据。


三、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、核心代码

4.1 查询民宿

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询民宿")
public Result<IPage<Dormitory>> getByPage(@ModelAttribute Dormitory dormitory,@ModelAttribute PageVo page){QueryWrapper<Dormitory> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(dormitory.getTitle())) {qw.like("title",dormitory.getTitle());}if(!ZwzNullUtils.isNull(dormitory.getType())) {qw.eq("type",dormitory.getType());}if(!ZwzNullUtils.isNull(dormitory.getBreakfast())) {qw.eq("breakfast",dormitory.getBreakfast());}IPage<Dormitory> data = iDormitoryService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Dormitory>>().setData(data);
}

4.2 新增民宿评论

@RequestMapping(value = "/addMyDiscuss", method = RequestMethod.POST)
@ApiOperation(value = "新增民宿评论")
public Result<Object> addMyDiscuss(@RequestParam String id,@RequestParam String reply,@RequestParam String text){Dormitory dormitory = iDormitoryService.getById(id);if(dormitory == null) {return ResultUtil.error("民宿不存在");}User currUser = securityUtil.getCurrUser();DormitoryDiscuss discuss = new DormitoryDiscuss();discuss.setUserId(currUser.getId());discuss.setUserName(currUser.getNickname());discuss.setReply(reply);discuss.setDormitoryId(dormitory.getId());discuss.setDiscussTime(DateUtil.now());discuss.setContent(text);iDormitoryDiscussService.saveOrUpdate(discuss);return ResultUtil.success();
}

4.3 查询民宿新闻

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询民宿新闻")
public Result<IPage<DormitoryNews>> getByPage(@ModelAttribute DormitoryNews dormitoryNews,@ModelAttribute PageVo page){QueryWrapper<DormitoryNews> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(dormitoryNews.getNewTitle())) {qw.like("new_title",dormitoryNews.getNewTitle());}if(!ZwzNullUtils.isNull(dormitoryNews.getNewDescribe())) {qw.like("new_describe",dormitoryNews.getNewDescribe());}if(!ZwzNullUtils.isNull(dormitoryNews.getPeriodTime())) {qw.like("period_time",dormitoryNews.getPeriodTime());}if(!ZwzNullUtils.isNull(dormitoryNews.getIsPublic())) {qw.like("is_public",dormitoryNews.getIsPublic());}if(!ZwzNullUtils.isNull(dormitoryNews.getIsTop())) {qw.like("is_top",dormitoryNews.getIsTop());}IPage<DormitoryNews> data = iDormitoryNewsService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<DormitoryNews>>().setData(data);
}

4.4 新建民宿预订单

@RequestMapping(value = "/addMyOrder", method = RequestMethod.POST)
@ApiOperation(value = "新建民宿预订单")
public Result<Object> addMyOrder(@RequestParam String id,@RequestParam String date){Dormitory dormitory = iDormitoryService.getById(id);if(dormitory == null) {return ResultUtil.error("民宿不存在");}QueryWrapper<DormitoryOrder> qw = new QueryWrapper<>();qw.eq("dormitory_id",id);qw.eq("order_date",date);long count = iDormitoryOrderService.count(qw);if(count > 0) {return ResultUtil.error("民宿当日已被预定");}User currUser = securityUtil.getCurrUser();DormitoryOrder order = new DormitoryOrder();order.setUserId(currUser.getId());order.setUserName(currUser.getNickname());order.setOrderTime(DateUtil.now());order.setPayFlag("否");order.setDormitoryId(dormitory.getId());order.setPrice(dormitory.getPrice());order.setRemark("");order.setDormitoryName(dormitory.getTitle());order.setOrderDate(date);iDormitoryOrderService.saveOrUpdate(order);return ResultUtil.success();
}

4.5 查询我的民宿预订单

@RequestMapping(value = "/getMyPage", method = RequestMethod.GET)
@ApiOperation(value = "查询我的民宿预订单")
public Result<IPage<DormitoryOrder>> getMyPage(@ModelAttribute DormitoryOrder order,@ModelAttribute PageVo page){User currUser = securityUtil.getCurrUser();QueryWrapper<DormitoryOrder> qw = new QueryWrapper<>();qw.eq("user_id",currUser.getId());if(!ZwzNullUtils.isNull(order.getDormitoryId())) {qw.eq("dormitory_id",order.getDormitoryId());}if(!ZwzNullUtils.isNull(order.getUserName())) {qw.eq("user_name",order.getUserName());}IPage<DormitoryOrder> data = iDormitoryOrderService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<DormitoryOrder>>().setData(data);
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/694501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十七届“挑战杯”广东大学生课外学术科技作品比赛感想

博主曾在2023年参加了第十七届“挑战杯”广东大学生课外学术科技作品比赛&#xff0c;也就是人们俗称的大挑&#xff0c;在团队赛里面含金量应该是排在第一档的了&#xff0c;当初我们有幸作为学校唯一一支科技创新B类进入到线下答辩&#xff0c;线下答辩就是区分银奖和金奖和特…

恩智浦MCX A系列:开启工程师的无限创造潜力 | 百能云芯

恩智浦半导体&#xff08;NXP&#xff09;最近宣布推出旗下MCX产品组合中的全新成员——通用A系列的首批产品MCX A14x和MCX A15x&#xff0c;现已正式上市。这一系列的微控制器&#xff08;MCU&#xff09;不仅性价比高、使用便捷、体积小巧&#xff0c;而且还旨在为工程师们打…

分布式版本控制系统 Git

目录 一、Git简介 二、Git历史 三、安装git 1.准备环境 2.Yum安装Git 四、初次运行 Git 前的配置 命令集 实例&#xff1a; 五、Git命令常规操作 六、获取 Git 仓库&#xff08;初始化仓库&#xff09; 创建裸库 实例 &#xff1a; 创建本地库 一、Git简介 官网&…

opencv-python安装失败问题解决

用pip install opencv-python命令终端中出现如下报错&#xff1a; 解决方法&#xff0c;换一个源&#xff0c;输入&#xff1a; pip install opencv-python -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com运行之后即可安装成功&#xff1a;

浅谈加密算法(对称加密、非对称加密、混合加密、数字签名、哈希函数)

1、对称加密 对称加密只有一个密钥&#xff0c;直接使用这一个密钥对信息进行加密或解密。这样子就使得对称加密解密十分高效&#xff0c;计算量也相较于非对称加密小很多&#xff0c;适合有大量数据的场合。 密钥只有一个且他一定不能泄漏。由此分发密钥&#xff0c;讲这个密钥…

SQL 练习题目(入门级)

今天发现了一个练习SQL的网站--牛客网。里面题目挺多的&#xff0c;按照入门、简单、中等、困难进行了分类&#xff0c;可以直接在线输入SQL语句验证是否正确&#xff0c;并且提供了测试表的创建语句&#xff0c;也可以方便自己拓展练习&#xff0c;感觉还是很不错的一个网站&a…

ChromeDriver | 谷歌浏览器驱动下载地址 及 浏览器版本禁止更新

在使用selenoum时&#xff0c;需要chrome浏览器的版本和chrome浏览器驱动的版本一致匹配&#xff0c;才能进行自动化测试 一、ChromeDriver驱动镜像网址 国内可以搜到的谷歌浏览器下载地址里面最新的驱动器只有114版本的CNPM Binaries Mirror 在其他博主那找到了最新版本12X的…

【PX4SimulinkGazebo联合仿真】在Simulink中使用ROS2控制无人机沿自定义圆形轨迹飞行并在Gazebo中可视化

在Simulink中使用ROS2控制无人机沿自定义圆形轨迹飞行并在Gazebo中可视化 系统架构Matlab官方例程Control a Simulated UAV Using ROS 2 and PX4 Bridge运行所需的环境配置PX4&Simulink&Gazebo联合仿真实现方法建立Simulink模型并完成基本配置整体框架各子系统实现原理…

识别图片字符-PaddleOCR

PaddleOCR 是由百度开发的一个开源光学字符识别&#xff08;OCR&#xff09;工具&#xff0c;它可以识别图片中的文本信息。然而&#xff0c;PaddleOCR 本身主要专注于文本的检测与识别 安装PaddleOCR框架 pip install paddlepaddle paddleocr 使用PaddleOCR识别图片代码 fro…

STL - hash

1、unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到O()&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好 的查询是&#xff0c;进…

第四十一回 还道村受三卷天书 宋公明遇九天玄女-python创建临时文件和文件夹

宋江想回家请老父亲上山&#xff0c;晁盖说过几天带领山寨人马一起去。宋江还是坚持一个人去。 宋江到了宋家村&#xff0c;被两个都头和捕快们追捕&#xff0c;慌不择路&#xff0c;躲进了一所古庙。一会儿&#xff0c;听见有人说&#xff1a;小童奉娘娘法旨&#xff0c;请星主…

SpringBoot2整合支付宝进行沙箱支付

目录 1. 进入支付宝的开放平台 2. 导入Maven依赖 3. 配置application.yml文件 NATAPP.cn(内网穿透工具) 注册登录 下载 4. 后端配置 5. 测试 1. 进入支付宝的开放平台 开发平台: 支付宝开放平台 登录后,点击控制台 点击最下面的沙箱 2. 导入Maven依赖 <dependency…

Git 客户端可视化工具tortoisegit

Git 使用教程 git一点通 (kdocs.cn) 二、Git 客户端可视化工具-推荐 1.常用工具 tortoisegit 官网 https://tortoisegit.org/ 推荐 sourcetree 官网 https://www.sourcetreeapp.com/ 2.tortoisegit安装 2.1 下载安装包 2.2 下载语言包 2.3 安装 2.4 安装语言包 5.使用 5.1 新建…

Spring学习笔记(三)--Spring中的Bean的管理

一、什么是Bean Bean是注册到Spring容器中的Java类&#xff0c;控制反转和依赖注入都是通过Bean实现的&#xff0c;任何一个Java类都可以是一个Bean。Bean由Spring进行管理&#xff0c;可以通过xml文件对bean进行配置和管理。 二、BeanFactory接口和ApplicationContext接口&a…

利用Python实现科学式占卜

一直以来&#xff0c;中式占卜都是基于算命先生手工实现&#xff0c;程序繁琐&#xff08;往往需要沐浴、计算天时、静心等等流程&#xff09;。准备工作复杂&#xff08;通常需要铜钱等道具&#xff09;&#xff0c;计算方法复杂&#xff0c;需要纯手工计算二进制并转换为最终…

2023年12月 Python(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,共50分) 第1题 运行以下程序,输出的结果是?( ) class A():def __init__(self,x):self.x=x

手机连接电脑后资源管理器无法识别(识别设备但无法访问文件)

问题描述 小米8刷了pixel experience系统,今天用电脑连接后无法访问手机文件,但是手机选择了usb传输模式为文件传输 解决办法 在设备和打印机页面中右键选择属性 点击改变设置 卸载驱动,注意勾选删除设备的驱动程序软件 卸载后重新连接手机,电脑弹出希望对设备进行什么操作时…

Code-Audit(代码审计)习题记录4-5

4、习题4 题目内容如下&#xff1a; <?php error_reporting(0); show_source(__FILE__); $a $_REQUEST[hello]; eval("var_dump($a);"); 函数解释 $REQUEST — HTTP Request 变量&#xff0c;默认情况下包含了 [$GET]&#xff0c;[$POST] 和 [$COOKIE]的数…

HTML知识点

HTML 【一】HTML简介 【1】什么是HTML HTML是一种用于创建网页结构和内容的超文本标记语言&#xff0c;它是构建网页的基础。为了让浏览器正确渲染页面&#xff0c;我们必须遵循HTML的语法规则。浏览器在解析网页时会将HTML代码转换为可视化的页面&#xff0c;所以我们在浏览…

python接口测试实践:参数化测试、数据驱动测试和断言的使用

在Python接口测试实践中&#xff0c;参数化测试、数据驱动测试和断言是常用的技术手段。 参数化测试 参数化测试是指将测试用例中的某些部分&#xff08;如输入数据或配置&#xff09;作为参数传递给测试函数&#xff0c;以便于复用和减少代码重复。 例如&#xff0c;使用uni…