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

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


目录

  • 一、摘要
    • [1.1 项目介绍](#1.1 项目介绍)
    • [1.2 项目录屏](#1.2 项目录屏)
  • 二、功能模块
    • [2.1 用例设计](#2.1 用例设计)
    • [2.2 功能设计](#2.2 功能设计)
      • [2.2.1 租客角色](#2.2.1 租客角色)
      • [2.2.2 房主角色](#2.2.2 房主角色)
      • [2.2.3 系统管理员角色](#2.2.3 系统管理员角色)
  • 三、系统展示
  • 四、核心代码
    • [4.1 查询民宿](#4.1 查询民宿)
    • [4.2 新增民宿](#4.2 新增民宿)
    • [4.3 新增民宿评价](#4.3 新增民宿评价)
    • [4.4 查询留言](#4.4 查询留言)
    • [4.5 新增民宿订单](#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 查询民宿

java 复制代码
@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 新增民宿

java 复制代码
@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 新增民宿评价

java 复制代码
@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 查询留言

java 复制代码
@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 新增民宿订单

java 复制代码
@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. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
相关推荐
AH_HH17 分钟前
Spring Boot 3 集成 Spring Security(1)认证
spring boot·spring security
雨中奔跑的小孩17 分钟前
electron打包部署vue项目
javascript·vue.js·electron
paterWang18 分钟前
小程序-基于java+SpringBoot+Vue的美食推荐系统设计与实现
java·spring boot·小程序
《源码好优多》18 分钟前
基于Java Springboot餐饮美食分享平台
java·spring boot·美食
说书客啊22 分钟前
计算机毕业设计 | SpringBoot+vue美食推荐商城 食品零食购物平台(附源码+论文)
java·spring boot·node.js·vue·毕业设计·课程设计·美食
小学鸡!31 分钟前
Bean的生命周期详解保姆级教程,结合spring boot和spring.xml两种方式讲解,5/7/10大小阶段详细分析
xml·spring boot·spring
贝克街的天才1 小时前
据说在代码里拼接查询条件不够优雅?Magic-1.0.2 发布
java·后端·开源
Moment1 小时前
毕业半年,终于拥有了两个近 500 star 的开源项目了 🤭🤭🤭
前端·后端·开源
计算机毕设指导61 小时前
基于SpringBoot共享汽车管理系统【附源码】
java·spring boot·后端·mysql·spring·汽车·intellij idea
光影少年2 小时前
react和vue图片懒加载及实现原理
前端·vue.js·react.js