当前位置: 首页 > news >正文

【开源】基于Vue和SpringBoot的民宿预定管理系统

在这里插入图片描述

项目编号: S 058 ,文末获取源码。 \color{red}{项目编号:S058,文末获取源码。} 项目编号:S058,文末获取源码。


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 用例设计
    • 2.2 功能设计
      • 2.2.1 租客角色
      • 2.2.2 房主角色
      • 2.2.3 系统管理员角色
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询民宿
    • 4.2 新增民宿
    • 4.3 新增民宿评价
    • 4.4 查询留言
    • 4.5 新增民宿订单
  • 五、免责说明


一、摘要

1.1 项目介绍

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

1.2 项目录屏

源码下载


二、功能模块

2.1 用例设计

民宿预订管理系统,使用Spring Boot、Vue.js 框架进行开发,后台服务器使用了Tomcat,数据库使用MySQL。

该系统实现了登录注册、上传房源、预订民宿、我的留言、评价功能、订单生成等模块功能。

本系统分为以下三种用户类型。

租客:指那些在平台上注册的想要租民宿的消费者。

房主:指上传房源的当前民宿经营者。

系统管理员:指管理房源、用户与评论,帮助租客和房主解决问题的系统管理者。

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

在这里插入图片描述

2.2 功能设计

民宿预订管理系统本系统分为使用用户类型分为租客、房主、系统管理员三种,具体功能结构如下。

2.2.1 租客角色

  1. 注册、登录功能
  2. 搜索功能:根据某些特定项模糊匹配民宿。
  3. 预订功能:在线预订民宿房间。
  4. 留言和评论功能:可以跟其他角色留言、评论民宿房间。
  5. 订单功能:查看生成的订单详情,进行退订操作。

2.2.2 房主角色

  1. 注册、登录功能
  2. 搜索功能:根据某些特定项模糊匹配民宿。
  3. 民宿房源管理功能:修改房源状态与信息、上传房源照片、新增房源、搜索房源。
  4. 留言和评论功能:可以跟其他角色留言、评论民宿房间。
  5. 订单功能:可以查看生成的订单信息。

2.2.3 系统管理员角色

  1. 注册、登录功能
  2. 搜索功能:根据某些特定项模糊匹配民宿。
  3. 用户管理:按条件查询所有类型的用户,删除用户,修改自己的信息。
  4. 房源管理:修改房源上下线状态。
  5. 留言和评论管理:可以回复租客和房主的问题且可以删除评论。

三、系统展示

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


四、核心代码

4.1 查询民宿

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询民宿")
public Result<IPage<Homestay>> getByPage(@ModelAttribute Homestay homestay ,@ModelAttribute PageVo page){QueryWrapper<Homestay> qw = new QueryWrapper<>();User currUser = securityUtil.getCurrUser();// 如果是房主,自己看自己QueryWrapper<User> userQw = new QueryWrapper<>();userQw.eq("id",currUser.getId());userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 and role_id = '1635922262441988096'");if(iUserService.count(userQw) > 0L) {qw.eq("user_id",currUser.getId());}if(!ZwzNullUtils.isNull(homestay.getTitle())) {qw.like("title",homestay.getTitle());}if(!ZwzNullUtils.isNull(homestay.getStatus())) {qw.eq("status",homestay.getStatus());}IPage<Homestay> data = iHomestayService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Homestay>>().setData(data);
}

4.2 新增民宿

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增民宿")
public Result<Homestay> insert(Homestay homestay){User currUser = securityUtil.getCurrUser();homestay.setUserId(currUser.getId());iHomestayService.saveOrUpdate(homestay);return new ResultUtil<Homestay>().setData(homestay);
}

4.3 新增民宿评价

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增评价")
public Result<Appraise> insert(Appraise appraise){Homestay h = iHomestayService.getById(appraise.getDormId());if(h == null) {return ResultUtil.error("民宿不存在");}appraise.setDormName(h.getTitle());User currUser = securityUtil.getCurrUser();appraise.setUserId(currUser.getId());appraise.setUserName(currUser.getNickname());iAppraiseService.saveOrUpdate(appraise);return new ResultUtil<Appraise>().setData(appraise);
}

4.4 查询留言

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询留言")
public Result<IPage<Message>> getByPage(@ModelAttribute Message message ,@ModelAttribute PageVo page){QueryWrapper<Message> qw = new QueryWrapper<>();User currUser = securityUtil.getCurrUser();// 如果是租客,自己看自己QueryWrapper<User> userQw = new QueryWrapper<>();userQw.eq("id",currUser.getId());userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 and role_id = '1536606659751841795'");if(iUserService.count(userQw) > 0L) {qw.eq("user_id",currUser.getId());}if(!ZwzNullUtils.isNull(message.getContent())) {qw.like("content",message.getContent());}if(!ZwzNullUtils.isNull(message.getUserName())) {qw.like("user_name",message.getUserName());}IPage<Message> data = iMessageService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Message>>().setData(data);
}

4.5 新增民宿订单

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增订单")
public Result<Order> insert(Order order){Homestay h = iHomestayService.getById(order.getDormId());if(h == null) {return ResultUtil.error("民宿不存在");}order.setDormName(h.getTitle());User currUser = securityUtil.getCurrUser();order.setUserId(currUser.getId());order.setUserName(currUser.getNickname());order.setUserMobile(currUser.getMobile());order.setDate(DateUtil.today());iOrderService.saveOrUpdate(order);return new ResultUtil<Order>().setData(order);
}

五、免责说明

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

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

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

相关文章:

  • nacos集群部署
  • 9、传统计算机视觉 —— 边缘检测
  • Linux tc 使用
  • 从0开始学习JavaScript--JavaScript 数字与日期
  • 从关键新闻和最新技术看AI行业发展(2023.11.6-11.19第十期) |【WeThinkIn老实人报】
  • 计算机硬件的基本组成
  • 【算法-哈希表3】四数相加2 和 赎金信
  • wpf devexpress自定义编辑器
  • 文档向量化工具(一):Apache Tika介绍
  • 学习c#的第二十一天
  • Michael Jordan最新报告:去中心化机器学习中的契约、不确定性和激励
  • 3ds Max渲染用专业显卡还是游戏显卡?
  • airlearning-ue4安装的踩坑记录
  • uniapp优化h5项目-摇树优化,gzip压缩和删除console.log
  • Pycharm之配置python虚拟环境
  • 如何使用MybatisPlus进行数据分页显示
  • 代码随想录 Day49 单调栈01 LeetCode LeetCodeT739每日温度 T496 下一个最大元素I
  • 高可用--限流熔断降级
  • win10电脑无法联网,设置IPv4,点击属性无法打开,闪退
  • 【数据结构】邻接表与邻接矩阵的转换
  • VR智慧景区:VR赋能文旅产业,激活消费潜能
  • Spring Boot EasyPOI 使用指定模板导出Excel
  • postgresql:记录表膨胀引起的io问题的处理
  • Windows下安装RabbitMQ
  • 广州华锐互动VRAR:利用VR开展刑事案件公安取证培训,沉浸式体验提升实战能力
  • 消息消费过程
  • 使用Lychee搭建个人图片存储系统并进行远程访问设置实现公网访问本地私人图床
  • 12-2- DCGAN -简单网络-卷积网络
  • Redis持久化策略之RDB与AOF
  • Python学习笔记--初识 Python 正则表达式