項目編號: 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 租客角色
- 注冊、登錄功能
- 搜索功能:根據某些特定項模糊匹配民宿。
- 預訂功能:在線預訂民宿房間。
- 留言和評論功能:可以跟其他角色留言、評論民宿房間。
- 訂單功能:查看生成的訂單詳情,進行退訂操作。
2.2.2 房主角色
- 注冊、登錄功能
- 搜索功能:根據某些特定項模糊匹配民宿。
- 民宿房源管理功能:修改房源狀態與信息、上傳房源照片、新增房源、搜索房源。
- 留言和評論功能:可以跟其他角色留言、評論民宿房間。
- 訂單功能:可以查看生成的訂單信息。
2.2.3 系統管理員角色
- 注冊、登錄功能
- 搜索功能:根據某些特定項模糊匹配民宿。
- 用戶管理:按條件查詢所有類型的用戶,刪除用戶,修改自己的信息。
- 房源管理:修改房源上下線狀態。
- 留言和評論管理:可以回復租客和房主的問題且可以刪除評論。
三、系統展示
四、核心代碼
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 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。
下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!
- 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
- 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
- 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
- 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。