《基于WEB的线上民宿订房系统的设计与实现》

摘要

伴随着国内供给侧改革,旅游经济发展稳中向好,人民出行意愿日益高涨。相对于传统酒店住宿,民宿在国内也迎来了发展的春天。本文主要从需求分析、开发关键技术、系统设计与实现等方面介绍了线上民宿订房系统的开发过程。

本文围绕构建线上民宿订房系统,主要是面向外出度假旅行人群,同时惠及当地居民,享受经济发展红利,方便居民出租空闲房源,解决退休人员再就业问题。出游者通过该系统平台可以提前预定到价格实惠且地理位置便捷的房源。

本论文旨在设计并实现一种基于MVC架构的线上民宿订房系统。使用Vue框架+Springboot框架对系统进行前后端分离用以提升系统性能。整体采用Java语言作为后端开发语言,Springboot框架作为后端开发框架,Vue作为前端开发框架,MySQL作为数据存储,搭建系统的开发环境。细节上更多的使用工具类以及组件封装可复用代码,实现扩展了HTML元素功能进而提高项目运行的性能,并使系统代码简洁化、结构化便于后期维护及更新。 

需求分析 

一、 用户管理

未注册的游客可以通过账号密码成为普通用户,普通用户登录后可以管理自己的基本信息、预定民宿、查看订单、删除历史订单记录。系统管理员可以注销普通用户。

二、 民宿管理

普通用户和游客可以浏览民宿、根据预定日期区间搜索民宿、查看民宿基本信息以及房型。房主可以上架或删除空闲房源,对已录入信息的可以进行民宿基本信息查看、对房型上架、下架、修改民宿信息。

三、 收藏管理

用户希望能够方便地收藏感兴趣的民宿,以便日后查看和预订。提供用户收藏功能,允许用户将喜欢的民宿添加到个人收藏夹中,方便后续查看和管理。普通用户登录后可收藏心仪的民宿并管理收藏夹中的民宿。

四、 订单管理

用户需要能够查看自己的订单情况、管理订单状态以及查看订单详情等功能。管理员需要能够查看所有订单、处理订单状态等操作。普通用户在登录状态下可以选择入住日期与离开日期对民宿进行筛选。在预定后会生成订单。普通用户可提前取消订单,并且可评价已完成的订单,为保护隐私可删除历史订单。管理员可以查看用户预定信息并取消订单。

五、入住管理

普通用户预定民宿成功后到店入住,民宿管理根据用户订单客房类型为用户办理入住,用户可以提前退房。用户需要能够查看自己的入住订单、了解入住民宿的相关信息、提前完成入住登记等功能。民宿业主需要能够管理入住订单、处理客户入住登记信息、提供入住服务等功能。提供用户入住订单查询、入住民宿信息查看、入住登记表单提交等功能,同时提供民宿业主入住订单管理、客户信息管理等功能。

六、 评论管理

用户需要能够查看民宿的评论信息、提交自己的评论、对他人的评论进行回复等功能。管理员需要能够管理用户提交的评论,处理违规评论,以及对评论进行统计分析等功能。提供用户查看评论、提交评论、回复评论等功能,同时提供管理员处理违规评论。

七、 公告管理

用户需要能够查看系统发布的公告,了解最新的系统信息、政策变化、活动通知等内容。民宿业主需要能够查看系统发布的公告,了解系统更新、业务指导、合作机会等内容。 提供管理员发布公告、用户和民宿业主查看公告等功能,同时支持公告内容的动态更新和管理。

参考文献

  1. 陈长松. 个性化推荐民宿在线预定平台的设计与实现[D]. 南昌大学, 2021.2-3
  2. 陆丽君.乡村振兴视域下民宿产业发展现状与问题研究——以扬州市为例[J].产业创新研究,2023(14):87-89.
  3. 李欢欢;李伟康;.共享经济背景下民宿特色化发展研究[J].合作经济与科技,2021(06).
  4. 芦季苇;.浅析共享经济“互联网+”时代的经济模式——以专车、Uber、Airbnb为实例分析[J].中国商论,2016(25).
  5. 李立威;.分享经济中多层信任的构建机制研究——基于Airbnb和小猪短租的案例分析[J].电子政务,2019(02).
  6. 童敏,张黎娜,梁伍七.基于JWT的分布式系统认证授权机制设计和实现[J].合肥师范学院学报,2022,40(03):7-10.
  7.  项武铭,鲍亮,俞少华. 基于JWT的RESTful API角色权限验证方案设计 [J]. 现代计算机(专业版), 2018, (34): 82-85.
  8.  金妍池.基于MVC模式的科技管理信息系统设计研究[J].电子技术与软件工程,2022(16):192-195.
  9.  雷帅,李晓松,陈敬一.系统动力学视角下国防科技信息工作体系建设研究[J].情报理论与实践,2021,44(02):103-108+49.
  10.  赵美玲,邵金花,张凯妹,等. 基于IPA分析法的三亚体验性民宿吸引力探究 [J]. 商展经济, 2024, (05): 125-129. DOI:10.19995/j.cnki.CN10-1617/F7.2024.05.125. 

系统环境 

数据库:MySQL 8: 流行的开源关系型数据库管理系统,用于存储和检索数据。

开发工具

  1. IntelliJ IDEA: 一先进的IDE,用于Java开发,提供了丰富的工具和功能。

运行环境和构建工具

  1. Tomcat 7.0: 开源的Java Servlet容器和Web服务器。
  2. JDK 1.8: Java开发工具包,用于开发Java应用程序。
  3. Maven 3.3.9: 用于项目构建和依赖管理的工具。

开发技术:

前端技术

  1. Vue.js: 一种渐进式JavaScript框架,用于构建用户界面和单页应用程序。

后端技术

  1. Java: 广泛使用的编程语言,适用于构建跨平台应用。
  2. SpringBoot: 开源的Java平台,提供了全面的编程和配置模型。
  3. MyBatis-plus: Java持久层框架,支持定制化SQL、存储过程以及高级映射。
  4. Maven: 项目管理和构建自动化工具,用于Java项目。

核心模块

民宿展示模块

在首页顶部输入目的地与预定区间。从数据库中获取民宿的相关数据:

首先,从 hotel 表中选择酒店的ID、名称、图片、城市和价格。

使用 JOIN 连接 type 表,确保我们能够访问每种类型的房间。

使用 LEFT JOIN 连接子查询,该子查询计算在指定日期范围内预订了多少房间。这个子查询根据入住和退房日期过滤订单,并将结果按酒店ID和房间类型ID分组。

在 GROUP BY 子句中,按照酒店的ID、名称和城市分组。

在 HAVING 子句中,筛选出有可用房间的酒店。这是通过检查每种房间类型的可用数量来完成的,即总数量减去已预订的数量,确保结果大于0。

这些数据将用于展示在用户界面上。

民宿详情模块 

民宿详情页需要多表查询民宿以及民宿房型,从数据库中获取民宿的相关数据:

首先,从 type 表中选择房间类型的ID、名称、价格和图片。使用 LEFT JOIN 连接子查询,该子查询计算在指定日期范围内预订了多少特定类型的房间。这个子查询根据指定的酒店ID和日期范围过滤订单,并将结果按房间类型ID分组。在子查询中,COALESCE(booked.booked_rooms, 0) 用于处理可能的空值情况,确保即使没有预订的房间也能够正确计算可用数量。在 WHERE 子句中,筛选出特定酒店的房间类型。这里的 rt.hotel_id = #{hotelId} 确保只选择与给定酒店ID相关的记录。用于为特定酒店的每种房间类型计算在给定日期范围内的可用数量,并返回相关信息,例如房间ID、名称、价格、图片以及可用数量。

订单管理模块

提供订单列表,显示用户提交的订单信息,包括订单编号、预订民宿信息、入住日期、退房日期、总金额、订单状态等。管理员管理订单的状态,包括确认订单、取消订单、完成订单等操作。管理订单数据的安全性,包括数据加密、权限控制、防止重复提交等,以确保订单信息的保密性和完整性。系统可以根据订单状态的变化,自动发送通知给用户或民宿经营者。在确认预定后,系统会将对应的用户信息与民宿信息传入后端接口。

程序运行效果图

首页

输入目的地与预定日期搜索 

 展示页面

 预定页面

源码获取: vx:yecokie

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值