# hostelry **Repository Path**: sadcandy/hostelry ## Basic Information - **Project Name**: hostelry - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-10 - **Last Updated**: 2025-11-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 线上酒店预订系统(有家客栈) ### 一、项目简介 > “有家客栈”是一款为用户提供酒店浏览、搜索、预订、支付、评价等全流程服务的在线酒店预订系统。系统包含前台用户端与后台服务端,覆盖从酒店信息查询、下单、支付、退款到订单处理的完整闭环,同时提供高性能的库存服务和可靠的异步任务处理机制,保证酒店预订业务的稳定性与一致性。 ### 二、项目功能思维导图 ![有家客栈酒店预定 ](images/有家客栈酒店预定.png) ### 三、技术架构 #### 后端核心的技术栈 - **JDK17** - **Spring** **Boot** 3.5.6 - **MyBatis** **Plus** 3.5.5 - **MySQL** 8.0 - **Redis** 3.0.2(库存缓存、热点数据) - **RabbitMQ** 3.0.2(异步订单取消、退款) - **Elasticsearch**(酒店全文检索、距离排序) - **MongoDB**(盖楼式评论) - **MinIO**(酒店图片文件存储) - **Canal** 1.1.3(MySQL → Redis / ES 实时同步) - **JWT**(鉴权) - **XXL-Job** 3.2.0(刷新库存、清理过期订单) - **WebSocket**(实时推送订单状态) - 支付宝沙箱(支付 / 退款) #### 前端技术栈 - **Vue 3** - Element Plus - **Axios** - Route - HTML / CSS / JS ### 项目功能介绍 1.**登录模块**使用 **JBcrypt 加密密码**,并通过 **JWT + Redis** 管理用户会话。用户登录后生成 JWT,同时将登录态写入 Redis(30 分钟有效),拦截器在每次请求中校验 JWT 与 Redis 登录状态,实现分布式统一鉴权。系统支持 **Token 自动续签** 与 **主动退出立即失效**,比传统纯 JWT 更安全、可控。 ![](images/登录页面.png) ![](images/数据库密码展示.png) ![](images/个人中心展示.png) 2.平台首页的酒店推荐应用了Redis的热数据推荐,根据评分的高低实时进行更换 ![热数据推荐](images/热数据推荐.png) 3.酒店搜索基于 **Elasticsearch + IK 分词器** 实现精准中文检索,支持关键字高亮、多条件筛选与评分/价格/距离排序,最终实现高效、准确的酒店搜索体验。 ![](images/搜索词高亮.png) 4.**订单创建**采用 **Redis + 分布式锁**实现订单创建的**幂等**处理。防止用户快速多次点击导致**重复下单**,订单创建流程包含库存校验、预扣库存、订单落库、超时未支付自动取消(RabbitMQ 延迟队列实现) ![下订单](images/下订单.png) 5.点击下订单支付后跳转到支付页面,系统集成支付宝沙箱支付,订单在支付前会校验状态与金额。支付成功后异步通知更新订单状态,并释放 Redis 中的锁定库存 ![支付接口二维码](images/支付接口二维码.png) ![支付接口二维码](images/支付成功.png) ![订单下单成功](images/订单下单成功.png) 6.系统使用 **WebSocket** 实现消息通知,如订单状态变化推送、提示用户订单支付成功等 ![消息推送展示](images/消息推送展示.png) 7.支持用户主动取消、超时自动取消、退房退款全流程,取消与退款均通过 **RabbitMQ 异步处理**,保证高解耦与高可靠性 退款调用支付宝沙箱退款接口,成功后更新订单状态并记录退款流水 ![取消页面](images/取消页面.png) ![取消成功](images/取消成功.png) 8.系统支持用户申请 **延迟退房**,后台会根据酒店设置的延迟规则计算时长费用并更新订单的离店时间。延迟退房会同时触发 **Redis 实时库存校验与更新**,确保不会影响后续预订 ![延迟退房](images/延迟退房.png) ![延迟订单结果](images/延迟订单结果.png) 9.提前退房,后台根据酒店设置的提前退房规则计算应退金额和是否产生违约费用,并对订单进行金额调整。提前退房会触发 **Redis 库存实时释放**,保证空房可立即重新售卖;同时记录退房流水与金额变动日志,并通过消息通知或页面刷新反馈给用户,实现安全、可追踪的提前退房流程 ![提前退房](images/提前退房.png) 10.系统使用 **MongoDB** 实现酒店评价的盖楼式多级评论结构,支持**父子回复**、图文评价与增量加载,并通过聚合查询高效返回完整**评论树**,适合**高并发**场景。 ![评论](images/评论.png) 11.订单完成后可以对酒店进行评价,评分,并且能够上传图片,系统使用 MinIO 存储用户上传的评价图片,实现分布式对象存储、断点续传与高可用访问,数据库只保存文件 URL,提升访问性能与扩展性。 ![已完成订单](images/已完成订单.png) ![评价页面](images/我的评价.png)