# wise-hostel **Repository Path**: ArashiCode-coder/wise-hostel ## Basic Information - **Project Name**: wise-hostel - **Description**: 基于SpringBoot+Vue框架智慧青旅系统的设计与实现 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-03 - **Last Updated**: 2026-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot3, vue3, elementPlus, MybatisPlus, Redis ## README # 智慧青旅系统 ## 项目介绍 基于 SpringBoot 3 + Vue 3 + MyBatis-Plus 的智慧青旅系统,提供完整的 RBAC 权限管理、房态管理、订单管理、会员积分、活动推荐、智能门禁等功能。 ## 核心功能 - 房态管理:房型管理、房间管理、床位管理、床位日历、价格策略 - 订单流程:订单创建、支付、入住、退房、退款、超时自动取消 - 会员体系:会员等级、积分管理、积分抵扣、自动升级 - 活动管理:活动发布、报名、签到、评价、智能推荐算法 - 智能门禁:电子钥匙生成、验证、刷新、门禁记录 - 用户功能:个人信息、常用入住人、收藏、浏览历史、用户设置 - 权限管理:RBAC 权限体系、JWT 认证、角色管理、菜单管理 - 数据统计:收入分析、入住率分析、用户分析、活动统计 - 消息通知:系统公告、通知模板、WebSocket 实时推送 - 文件管理:MinIO 对象存储、图片上传、文件下载 ## 技术亮点 - 分布式锁:Redisson 防止订单超卖、活动超报 - 乐观锁:MyBatis-Plus 防止并发冲突 - 智能推荐:多维度综合评分算法(兴趣45% + 热度35% + 位置10% + 时间10%) - 定时任务:订单超时自动取消、会员等级自动升级 - 敏感词过滤:DFA 算法高效过滤 - 数据脱敏:手机号、证件号自动脱敏 - 操作日志:AOP 切面自动记录 - Redis 缓存:热门活动、字典数据、Token 管理 ## 技术栈 ### 后端 - SpringBoot 3.2.5 - MyBatis-Plus 3.5.9 - MySQL 8.0+ - Redis 7.x - Spring Security 6.x - Hutool 5.8.38 - Knife4j 4.5.0 - Redisson 4.2.0 - MinIO 8.6.0 - EasyExcel 4.0.3 ### 前端 - Vue 3.5.28 - Vite 7.3.1 - TypeScript 5.9.3 - Element Plus 2.13.2 - Pinia 2.2.8 - Vue Router 4.5.0 - Axios 1.7.9 ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.8+ - MySQL 8.0+ - Redis 7.x - MinIO ### 本地开发 1. 克隆项目 ```bash https: git clone https://gitee.com/ArashiCode-coder/wise-hostel.git SSH: git@gitee.com:ArashiCode-coder/wise-hostel.git cd wise-hostel ``` 2. 初始化数据库 ```bash # 创建数据库和表结构 mysql -u root -p < sql/mysql/01_schema.sql # 导入初始数据 mysql -u root -p < sql/mysql/02_data.sql ``` 3. 修改配置 ```bash # 修改配置文件:src/main/resources/application-dev.yml # 配置数据库、Redis、MinIO 等连接信息 ``` 4. 启动项目 ```bash mvn spring-boot:run ``` 5. 访问系统 - 后端接口:http://localhost:8088/api - 接口文档:http://localhost:8088/api/doc.html - 默认账号:admin / WH2026admin! ### 测试账号 | 角色 | 账号 | 密码 | 说明 | |------|------|------|------| | 系统管理员 | admin | WH2026admin! | 拥有所有权限 | | 管理员 | manager | WH2026admin! | 拥有管理权限 | | 前台人员 | staff | WH2026admin! | 订单、房间管理 | ### 生产部署 详见 [deploy/README.md](deploy/README.md) 1. 打包项目 ```bash mvn clean package -DskipTests ``` 2. 配置环境变量(必须) ```bash # 环境配置见 deploy/生产环境配置.example.txt ``` 3. 启动服务 ```bash java -jar -Dspring.profiles.active=prod target/wisehostel-1.0.0.jar ``` ## 项目结构 ``` wise-hostel/ ├── deploy/ # 部署配置 │ ├── README.md # 部署文档 │ ├── nginx-web.conf # 用户端 Nginx 配置 │ ├── nginx-admin.conf # 管理后台 Nginx 配置 │ └── 生产环境配置.example.txt # 环境变量示例 ├── docs/ # 项目文档 │ ├── 功能模块图.md │ ├── 开发规范.md │ ├── 数据库设计.md │ └── 敏感词管理说明.md ├── sql/ # 数据库脚本 │ └── mysql/ # MySQL 数据库 │ ├── README.md # MySQL 初始化指南 │ ├── 01_schema.sql # 表结构 │ └── 02_data.sql # 初始数据 ├── wise-hostel-web/ # 用户端前端(Vue 3) ├── wise-hostel-admin/ # 管理后台前端(Vue 3) ├── src/main/java/ # 后端代码 │ ├── annotation/ # 自定义注解 │ ├── aspect/ # AOP 切面 │ ├── common/ # 通用类 │ ├── config/ # 配置类 │ ├── constant/ # 常量 │ ├── controller/ # 控制器 │ ├── enums/ # 枚举 │ ├── exception/ # 异常处理 │ ├── mapper/ # MyBatis Mapper │ ├── model/ # 实体类、DTO、VO │ ├── properties/ # 配置属性 │ ├── service/ # 业务逻辑 │ ├── strategy/ # 策略模式 │ ├── task/ # 定时任务 │ └── utils/ # 工具类 └── src/main/resources/ # 资源文件 ├── application.yml # 主配置 ├── application-dev.yml # 开发环境 └── application-prod.yml # 生产环境 ``` ## 常见问题 ### 1. 数据库连接失败 检查 MySQL 是否启动,用户名密码是否正确,数据库是否已创建。 ### 2. Redis 连接失败 检查 Redis 是否启动,如果设置了密码需要配置 REDIS_PASSWORD。 ### 3. MinIO 连接失败 检查 MinIO 是否启动,访问密钥是否正确,存储桶是否已创建。 ### 4. JWT Token 无效 检查 JWT_SECRET 是否配置,生产环境必须设置强密钥。 ### 5. 邮件发送失败 检查邮箱授权码是否正确,QQ 邮箱需要开启 SMTP 服务并获取授权码。 ## 性能优化 - 使用 Redis 缓存热点数据(字典、热门活动) - 使用分布式锁防止超卖 - 使用乐观锁防止并发冲突 - 批量查询避免 N+1 问题 - 异步处理日志记录 - 定时任务使用分布式锁防止重复执行 ## 安全措施 - 密码 BCrypt 加密存储 - JWT Token 认证授权 - 敏感词自动过滤 - 数据脱敏显示 - CORS 跨域限制 - SQL 注入防护 - XSS 攻击防护 - 操作日志记录 ## 贡献指南 1. Fork 本仓库 2. 新建 feature 分支 3. 提交代码 4. 新建 Pull Request ## 开源协议 MIT License ## 联系方式 - 作者:xlongma - 邮箱:xlongma09@163.com