# hotel-system **Repository Path**: Marsfactory/hotel-system ## Basic Information - **Project Name**: hotel-system - **Description**: 酒店管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 3 - **Created**: 2025-11-12 - **Last Updated**: 2025-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 酒店管理系统 ## 🌐 项目简介 一个基于 **Spring Boot 3 + MyBatis-Plus + Sa-Token + Redis** 的现代化酒店管理系统,前端使用 **Vue 3 + Vite + Naive UI**,图标采用 **vicons/ionicons5**。 系统支持 **用户管理、客房管理、订单预定、入住登记、财务统计、权限控制、数据可视化** 等功能。 整体采用 **前后端分离架构**,主题色为 **#18A058**,界面简洁优雅,交互流畅。 --- ## 🧩 技术栈 ### 后端 - **Spring Boot 3.2.0** - **MyBatis-Plus 3.5.5**(ORM框架) - **Sa-Token 1.37.0**(权限认证) - **Redis**(缓存与登录会话) - **MySQL**(数据存储) - **Lombok、Validation、Swagger-UI**(开发增强) ### 前端 - **Vue 3.4.0** - **Vite 5.0.0** - **Naive UI 2.36.0** - **Pinia 2.1.7**(状态管理) - **Vue Router 4.2.5** - **Axios 1.6.2**(网络请求) - **vicons/ionicons5**(图标库) --- ## 🎯 核心功能模块 ### 🧑‍💼 系统管理模块 - 用户管理:增删改查、角色绑定、状态启用禁用 - 登录认证:基于Sa-Token的会话管理 ### 🏨 酒店业务模块 - **客房管理**:房型、价格、设施、状态(空闲/已预订/已入住/打扫中) - **预订管理**:房间预订、退订、订单生成、状态流转 - **客户管理**:客户档案、会员等级、消费记录 - **数据可视化**:房态统计、订单统计 --- ## 📁 项目结构 ``` hotel-system/ ├── src/main/java/com/hotel/ # 后端源码 │ ├── common/ # 公共类 │ │ └── Result.java # 统一返回结果 │ ├── config/ # 配置类 │ │ ├── CorsConfig.java # 跨域配置 │ │ └── SaTokenConfig.java # Sa-Token配置 │ ├── controller/ # 控制器层 │ │ ├── AuthController.java # 认证控制器 │ │ ├── UserController.java # 用户管理 │ │ ├── RoomController.java # 客房管理 │ │ ├── OrderController.java # 订单管理 │ │ └── CustomerController.java # 客户管理 │ ├── entity/ # 实体类 │ │ ├── User.java # 用户实体 │ │ ├── Room.java # 客房实体 │ │ ├── Order.java # 订单实体 │ │ └── Customer.java # 客户实体 │ ├── mapper/ # Mapper接口 │ ├── service/ # 服务层接口 │ └── service/impl/ # 服务层实现 ├── frontend/ # 前端源码 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ │ ├── Login.vue # 登录页面(左右布局) │ │ │ ├── Layout.vue # 主布局 │ │ │ ├── Dashboard.vue # 工作台 │ │ │ ├── Users.vue # 用户管理 │ │ │ ├── Rooms.vue # 客房管理 │ │ │ ├── Orders.vue # 订单管理 │ │ │ └── Customers.vue # 客户管理 │ │ ├── stores/ # Pinia状态管理 │ │ ├── router/ # 路由配置 │ │ ├── utils/ # 工具类 │ │ └── App.vue # 根组件 │ ├── package.json │ └── vite.config.js ├── pom.xml # Maven配置 └── hotel_system.sql # 数据库初始化脚本 ``` --- ## 🚀 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 8.0+ - Redis 5.0+ - Node.js 16+ ### 后端启动 1. **创建数据库并导入数据** ```bash mysql -u root -p < hotel_system.sql ``` 2. **修改配置文件** 编辑 `src/main/resources/application.yml`,配置数据库和Redis连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/hotel_system?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false username: root password: 你的密码 data: redis: host: localhost port: 6379 ``` 3. **启动后端服务** ```bash mvn spring-boot:run ``` 后端服务将在 `http://localhost:8080` 启动 **Swagger文档地址**: `http://localhost:8080/swagger-ui.html` ### 前端启动 1. **进入前端目录** ```bash cd frontend ``` 2. **安装依赖** ```bash npm install ``` 3. **启动开发服务器** ```bash npm run dev ``` 前端服务将在 `http://localhost:3000` 启动 --- ## 🔐 默认账号 - 用户名:`admin` - 密码:`admin123` --- ## 🎨 界面预览 ### 登录页面 - 采用左右布局设计 - 左侧:品牌展示区,包含Logo、系统名称和特性介绍 - 右侧:登录表单区,简洁优雅 - 主题色:#18A058 ### 主界面 - 顶部:面包屑导航 + 用户信息 - 左侧:深色侧边栏菜单 - 右侧:内容区域,卡片式布局 --- ## 📊 主要页面功能 ### 工作台(Dashboard) - 统计卡片:总客房数、空闲房间、今日订单、客户总数 - 最近订单列表 - 房间状态分布图 ### 客房管理 - 房间列表展示(分页) - 新增/编辑/删除房间 - 按房型和状态筛选 - 房间状态:空闲、已预订、已入住、打扫中 ### 订单管理 - 订单列表展示(分页) - 创建订单:选择客户、房间、入住时间等 - 订单状态:已预订、已入住、已退房、已取消 - 自动生成订单号 ### 客户管理 - 客户信息管理 - 会员等级:普通、银卡、金卡、钻石 - 搜索功能 ### 用户管理 - 系统用户管理 - 启用/禁用用户 - 密码加密存储 --- ## 🔧 核心技术说明 ### 后端 - **Sa-Token**:实现登录认证和会话管理 - **MyBatis-Plus**:简化CRUD操作,提供分页、逻辑删除等功能 - **Redis**:存储用户登录会话 - **Swagger**:自动生成API文档 ### 前端 - **Naive UI**:提供丰富的UI组件 - **Pinia**:轻量级状态管理 - **Vue Router**:路由管理,支持路由守卫 - **Axios**:HTTP请求封装,统一拦截处理 --- ## 📝 开发说明 ### API接口规范 所有接口返回统一格式: ```json { "code": 200, "message": "操作成功", "data": {} } ``` ### 数据库字段说明 - `deleted`:逻辑删除标记(0-未删除,1-已删除) - `create_time`:创建时间,自动填充 - `update_time`:更新时间,自动更新 --- ## 📦 打包部署 ### 后端打包 ```bash mvn clean package ``` 生成的jar包位于 `target/hotel-system-1.0.0.jar` ### 前端打包 ```bash cd frontend npm run build ``` 生成的静态文件位于 `frontend/dist` --- ## 🤝 贡献指南 欢迎提交 Issue 或 Pull Request! --- ## 📄 许可证 MIT License --- ## 📮 联系方式 如有问题,请提交 Issue 或联系开发者。 --- **祝您使用愉快!** 🎉