【開源】基于Vue.js的民宿預定管理系統

在這里插入圖片描述

項目編號: 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.pswp.cn/news/162145.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162145.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162145.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

夢開始的地方——Adobe Premiere Pro

今天&#xff0c;我們來說說一款老生常談的相信也是很多人都經常迫切需要的軟件。Adobe Premiere Pro&#xff0c;簡稱Pr&#xff0c;是由Adobe公司開發的一款視頻編輯軟件。 Premiere Pro是視頻編輯愛好者和專業人士必不可少的視頻編輯工具。它可以提升您的創作能力和創作自由…

httpd(Web服務器)

名詞解釋 1、URL&#xff1a;Uniform Resource Locator&#xff0c;統?資源定位符 2、?址格式&#xff1a;<協議>://<主機或主機名>[:port]/<?錄資源,路徑> 3、主機地址/主機名&#xff1a;主機地址是服務器在因特?所在的IP地址。主機名就需要域名解析…

裝飾器設計模式是什么?什么是 Decorator 裝飾器設計模式?Python 裝飾器設計模式示例代碼

什么是 Decorator 裝飾器設計模式&#xff1f; 裝飾器模式是一種結構型設計模式&#xff0c;它允許向現有對象動態地添加新功能&#xff0c;同時不改變其結構。這種模式實現了對對象的包裝&#xff0c;稱為裝飾器&#xff0c;并且可以在運行時動態地添加、修改或刪除對象的行為…

重磅!這本30w人都在看的Python數據分析暢銷書:更新了!

想學習python進行數據分析&#xff0c;這本《利用python進行數據分析》是繞不開的一本書。目前該書根據Python3.10已經更新到第三版。 Python 語言極具吸引力。自從 1991 年誕生以來&#xff0c;Python 如今已經成為最受歡迎的解釋型編程語言。 pandas 誕生于2008年。它是由韋…

NX二次開發UF_CAM_set_clear_plane_data 函數介紹

文章作者&#xff1a;里海 來源網站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_set_clear_plane_data Defined in: uf_cam_planes.h int UF_CAM_set_clear_plane_data(tag_t object_tag, double origin [ 3 ] , double normal [ 3 ] ) overview 概述 De…

快慢指針判斷環形鏈表

我們在前面文章中寫過用快慢指針判斷鏈表是否帶環&#xff1a; leetcode&#xff1a;環形鏈表-CSDN博客 我們用的是slow指針一次走一步&#xff0c;fast指針一次走兩步&#xff0c;當slow入環后開始了追擊&#xff0c;每走一次距離縮短1&#xff0c;最終就會相遇 思考問題 …

【LeetCode】每日一題 2023_11_23 HTML 實體解析器(調庫/打工)

文章目錄 刷題前嘮嗑題目&#xff1a;HTML 實體解析器題目描述代碼與解題思路 結語 刷題前嘮嗑 題目&#xff1a;HTML 實體解析器 題目鏈接&#xff1a;1410. HTML 實體解析器 題目描述 代碼與解題思路 func entityParser(s string) (ans string) {return strings.NewRepla…

redo log 丟失或者損壞-ORA-01194: 文件 1 需要更多的恢復來保持一致性

#故障場景描述&#xff1a; 1、current redo 損壞或者丟失 2、ORA-01194: 文件 1 需要更多的恢復來保持一致性 C:\Users\ZMI>sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 星期三 11月 22 16:58:07 2023 Version 19.3.0.0.0 Copyright (c) 1982, …

NX二次開發UF_CAM_set_lower_limit_plane_tag 函數介紹

文章作者&#xff1a;里海 來源網站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_set_lower_limit_plane_tag Defined in: uf_cam_planes.h int UF_CAM_set_lower_limit_plane_tag(tag_t object_tag, tag_t target_tag ) overview 概述 Set the tag of a …

使用 PowerShell 創建共享目錄

在 Windows 中&#xff0c;可以使用共享目錄來將文件和文件夾共享給其他用戶或計算機。共享目錄可以通過網絡訪問&#xff0c;這使得它們非常適合用于文件共享、協作和遠程訪問。 要使用 PowerShell 創建共享目錄&#xff0c;可以使用 New-SmbShare cmdlet。New-SmbShare cmdl…

TypeScript 項目 Airbnb 語法風格 ESLint 配置

TypeScript 項目 Airbnb 語法風格 ESLint 配置 1. 配置 安裝&#xff1a; npm i -D eslint-config-airbnb-typescript typescript-eslint/eslint-plugin^6.0.0 typescript-eslint/parser^6.0.0配置&#xff1a; .eslintrc.js: module.exports {root: true,env: {node: true…

【Antd】antd的Form表單項用Form.Item包裹后,表單校驗不生效的原因及解決辦法

以下代碼是用<Form></Form>包裹的子組件中的render部分的代碼&#xff1a; 可以看到Input.TextArea被<div>包裹住了&#xff0c;這會導致無法被Form表單識別并抓取&#xff0c;因為Form默認只允許放一個子元素。 <div className{styles.textAreaWrap}&g…

算法的奧秘:常見的六種算法(算法導論筆記2)

算法的奧秘&#xff1a;種類、特性及應用詳解&#xff08;算法導論筆記1&#xff09; 上期總結算法的種類和大致介紹&#xff0c;這一期主要講常見的六種算法詳解以及演示。 排序算法&#xff1a; 排序算法是一類用于對一組數據元素進行排序的算法。根據不同的排序方式和時間復…

postman定義公共函數這樣寫,測試組長直呼牛逼!!!

postman定義公共函數 在postman中&#xff0c;如下面的代碼&#xff1a; 1、返回元素是否與預期值一致 var assertEqual(name,actual,expected)>{tests[${name}&#xff1a;實際結果&#xff1a; ${actual} &#xff0c; 期望結果&#xff1a;${expected}]actualexpected…

2023年危險化學品經營單位主要負責人證模擬考試題庫及危險化學品經營單位主要負責人理論考試試題

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 2023年危險化學品經營單位主要負責人證模擬考試題庫及危險化學品經營單位主要負責人理論考試試題是由安全生產模擬考試一點通提供&#xff0c;危險化學品經營單位主要負責人證模擬考試題庫是根據危險化學品經營單位主…

Exception:Zero date value prohibited

運行了很久的系統&#xff0c;突然不能訪問&#xff0c;報錯如下&#xff1a; Error attempting to get column updated_time from result set. Cause: java.sql.SQLException: Zero date value prohibited; SQL []; Zero date value prohibited; nested exception is java.…

【追求卓越12】算法--堆排序

引導 前面幾節&#xff0c;我們介紹了有關樹的數據結構&#xff0c;我們繼續來介紹一種樹結構——堆。堆的應用場景有很多&#xff0c;比如從大量數據中找出top n的數據&#xff1b;根據優先級處理網絡請求&#xff1b;這些情景都可以使用堆數據結構來實現。 什么是堆&#xf…

【20年揚大真題】編寫程序,功能是計算1~10之間的偶數之和

【20年揚大真題】 編寫程序&#xff0c;功能是計算1~10之間的偶數之和 #include<stdio.h> int main() {int i 1;int sum 0;for (i 1;i < 10;i){if (i % 2 0){sum i;}}printf("%d", sum); }

Java核心知識點整理大全9-筆記

目錄 null文章瀏覽閱讀9w次&#xff0c;點贊7次&#xff0c;收藏7次。Java核心知識點整理大全https://blog.csdn.net/lzy302810/article/details/132202699?spm1001.2014.3001.5501 Java核心知識點整理大全2-筆記_希斯奎的博客-CSDN博客 Java核心知識點整理大全3-筆記_希斯…

FindMy技術用于充電寶

充電寶是一種便捷的充電器&#xff0c;方便個人隨身攜帶&#xff0c;能夠自行儲備電能&#xff0c;為主流電子設備提供充電服務。它廣泛應用于沒有外部電源供應的場所&#xff0c;例如旅行、戶外活動或緊急情況下&#xff0c;為用戶的手持設備提供持續的電力支持&#xff0c;確…