# 酒店管理系统(SAAS) **Repository Path**: yuhf/hotel-management-system-saas ## Basic Information - **Project Name**: 酒店管理系统(SAAS) - **Description**: 酒店管理系统、酒店物业管理系统、酒店前台管理系统、酒店预订管理系统、酒店运营支持系统、酒店收益管理系统、酒店预订系统、酒店内容管理系统、酒店房态管理系统、酒店数据分析系统、酒店服务管理平台、酒店资源管理系统、酒店综合信息平台、酒店订单处理系统、酒店房间分配 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-08-12 - **Last Updated**: 2025-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 酒店管理系统部署说明文档 ## 一、概述(Introduction) ### 文档目的 本文档旨在提供酒店管理系统各组件的详细部署指南,确保系统能够在各环境中正确安装、配置和运行。 ### 部署环境简介 本系统可部署在开发环境、测试环境、UAT环境以及生产环境。当前文档主要面向生产环境部署,其他环境可参考相应配置进行适当调整。 ## 二、部署环境要求 ### 1. 硬件要求 #### 最低配置(单节点部署) - CPU:4核8线程 - 内存:8GB - 磁盘空间:100GB(推荐SSD) - 网络带宽:5Mbps以上 ### 2. 软件依赖 #### 操作系统 - 推荐:CentOS 7.x / 8.x 或 Ubuntu 18.04 LTS / 20.04 LTS - 支持:任何支持现代Web应用的Linux发行版 #### 运行时环境 - Java环境:JDK 1.8(必须) - 前端环境:Node.js 14.x 或以上 #### 数据库 - MySQL 5.7+ (主要数据库) - Redis 5.0+ (缓存及会话存储) #### 中间件 - Nginx 1.18+ (Web服务器与反向代理) ### 3. 网络配置 #### 端口要求 以下端口需要在防火墙/安全组中开放: - 80/443:HTTP/HTTPS - 8080:后端服务 - 3306:MySQL数据库 - 6379:Redis服务 ## 三、项目结构说明 ### 1. 目录结构总览 ``` 酒店管理系统/ ├── codes/ # 源代码目录 │ ├── FWY-JDGL-SAAS-MANAGE/ # 管理端前端项目(Vue) │ ├── FWY-JDGL-SAAS-SERVER/ # 后端服务项目(Java) │ ├── FWY-JDGL-SAAS-H5/ # H5客户端项目(uni-app) ├── dbs/ # 数据库脚本目录 │ └── hotel_saas.sql # 数据库初始化脚本 └── docs/ # 文档目录 └── 酒店管理系统-说明文档-FWY-JDGL-SAAS.docx # 项目说明文档 ``` ### 2. 模块说明 #### 2.1 管理端前端 (FWY-JDGL-SAAS-MANAGE) 基于Vue.js开发的酒店管理系统后台,提供酒店管理员使用的各种功能界面。 ``` FWY-JDGL-SAAS-MANAGE/ ├── src/ # 源代码目录 │ ├── api/ # API接口定义 │ ├── assets/ # 静态资源(图片、样式等) │ ├── components/ # 共用组件 │ ├── router/ # 路由配置 │ ├── store/ # Vuex状态管理 │ ├── utils/ # 工具类 │ └── views/ # 页面视图组件 ├── public/ # 静态资源目录 ├── package.json # 项目依赖配置 └── vue.config.js # Vue项目配置 ``` 主要功能: - 酒店信息管理 - 房间管理 - 预订管理 - 入住管理 - 结算管理 - 系统设置 #### 2.1.1 前端视图目录(src/views)详解 views 目录包含系统所有页面组件,按功能模块进行分类: - **account/** - 账户管理模块,提供用户个人中心、个人设置、安全设置等功能,路由路径为`/account` - **dashboard/** - 系统仪表盘模块,包含数据分析(Analysis)、工作台(Workplace)、监控页(Monitor)等统计展示功能,路由路径为`/dashboard` - **exception/** - 异常页面模块,提供403(无权限)、404(未找到)、500(服务器错误)等错误页面 - **fangwu/** - 房屋信息管理模块,处理基础房屋数据和房屋相关业务,路由路径为`/fangwu/index` - **finance/** - 财务管理模块,处理酒店收付款、账单、统计等财务功能,路由路径为`/finance/index` - **hotel/** - 酒店基础信息管理模块,处理酒店配置和基础数据管理 - **jeecg/** - 框架特有功能模块,提供低代码开发相关组件和功能示例 - **markets/** - 营销管理模块,负责会员、优惠券、营销活动等功能,路由路径为`/markets/marketInfo` - **modules/** - 系统通用功能组件库,为各模块提供公共组件支持 - **orders/** - 订单管理模块,处理房间预订、服务、餐饮等各类订单信息,路由路径为`/orders/orderInfo` - **pos/** - POS销售系统模块,提供前台收银和销售功能,路由路径为`/pos/posInfo` - **report/** - 报表统计模块,提供多种数据报表和分析功能,路由路径为`/report/index` - **result/** - 结果页面模块,展示各类操作结果状态(成功/失败)的标准页面 - **room/** - 房间管理核心模块,包含房态图、预订管理、入住管理等,路由路径为`/room/dynamic/fangtai` - **settings/** - 系统设置模块,提供酒店、房间、营销、POS等各模块的配置功能 - **stock/** - 库存管理模块,处理物品采购、出入库和库存相关功能,路由路径为`/stock/index` - **system/** - 系统管理模块,提供用户、角色、权限、租户等系统核心管理功能,路由路径为`/isystem` - **user/** - 用户授权模块,提供登录(Login)、注册(register)、租户选择(LoginSelectTenant)等认证功能 #### 2.2 后端服务 (FWY-JDGL-SAAS-SERVER) 基于Spring Boot框架开发的后端服务,提供RESTful API接口。 ``` FWY-JDGL-SAAS-SERVER/hotel-saas-backend/ ├── jeecg-boot-base-core/ # 核心模块,提供基础功能 ├── jeecg-module-system/ # 系统模块,提供系统管理功能 │ ├── jeecg-system-api/ # 系统API定义 │ ├── jeecg-system-biz/ # 系统业务逻辑 │ └── jeecg-system-start/ # 系统启动模块 ├── jeecg-module-demo/ # 示例模块 ├── jeecg-mall-api/ # 商城API模块 └── pom.xml # Maven项目配置 ``` #### 2.3 H5客户端 (FWY-JDGL-SAAS-H5) 基于uni-app框架开发的移动端H5应用,为用户提供酒店预订、查询等功能。 ``` FWY-JDGL-SAAS-H5/ ├── pages/ # 页面目录 ├── components/ # 组件目录 ├── static/ # 静态资源 ├── store/ # 状态管理 └── App.vue # 应用入口 ``` ### 3. 技术栈 #### 前端 - Vue.js 2.x:主要开发框架 - Ant Design Vue:UI组件库 - Vuex:状态管理 - Vue Router:路由管理 - Axios:HTTP请求库 - Uni-app:跨平台应用开发框架(H5和小程序) #### 后端 - Spring Boot 2.6.x:主要开发框架 - Spring Cloud:微服务支持 - MyBatis-Plus:ORM框架 - Shiro:权限管理 - Redis:缓存 - MySQL:关系型数据库 #### 开发与部署 - Maven:Java项目构建工具 - NPM:前端项目包管理 - Nginx:Web服务器和反向代理 ### 4. 核心代码模块详解 主要位于 `jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules` 目录下。 ``` modules/ ├── api/ # 外部接口模块,提供对外API服务 ├── business/ # 业务核心模块,处理酒店预订、入住等核心业务 ├── finance/ # 财务管理模块,处理账单、收款等财务业务 ├── fw/ # 房务管理模块,处理房屋维修、保洁等房务工作 ├── kc/ # 库存管理模块,处理物品采购、库存等功能 ├── message/ # 消息通知模块,处理系统消息、通知等功能 ├── order/ # 订单管理模块,处理各类订单数据 ├── pos/ # POS销售模块,处理前台销售和收银业务 ├── rooms/ # 房间管理模块,核心模块,处理房态、房型等功能 ├── system/ # 系统管理模块,处理用户、权限、租户等系统配置 └── monitor/ # 系统监控模块,处理系统运行状态监控 ``` 每个业务模块内部通常按照标准的分层架构组织: ``` 模块名/ ├── controller/ # 控制器层,处理HTTP请求 ├── service/ # 服务层,实现业务逻辑 │ ├── impl/ # 服务实现类 │ └── interfaces/ # 服务接口 ├── entity/ # 实体类,对应数据库表 ├── mapper/ # MyBatis映射层,负责数据访问 │ └── xml/ # MyBatis XML映射文件 ├── vo/ # 值对象,用于数据传输 └── dto/ # 数据传输对象 ``` ## 四、本地开发说明 本节内容介绍如何在本地环境中设置和运行开发环境,以便开发人员能够进行代码修改、调试和测试。 ### 1. 开发环境准备 #### 1.1 基础环境 在开始本地开发前,确保已安装以下基础软件: - JDK 1.8 - Maven 3.6+ - Node.js 14.x 和 npm 6.x+ - MySQL 5.7+ - Redis 5.0+ - 开发工具: IntelliJ IDEA(后端)、VS Code(前端) - Git #### 1.2 数据库配置 ```bash # 创建开发用数据库 mysql -u root -p CREATE DATABASE hotel_saas_dev DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER 'hotel_saas'@'localhost' IDENTIFIED BY 'dev_password'; GRANT ALL PRIVILEGES ON hotel_saas_dev.* TO 'hotel_saas'@'localhost'; FLUSH PRIVILEGES; exit; # 导入开发数据 mysql -u hotel_saas -p hotel_saas_dev < dbs/hotel_saas.sql ``` ### 2. 后端开发 #### 2.1 项目导入 ```bash # 克隆项目(如果尚未克隆) git clone <项目仓库地址> cd 酒店管理系统 # 导入Maven项目 cd codes/FWY-JDGL-SAAS-SERVER/hotel-saas-backend ``` 使用IntelliJ IDEA打开后端项目目录,等待Maven依赖下载完成。 #### 2.2 配置修改 编辑开发环境配置文件: ``` jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml ``` 主要修改以下配置: ```yaml spring: datasource: dynamic: datasource: master: url: jdbc:mysql://localhost:3306/hotel_saas_dev?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai username: hotel_saas password: dev_password redis: host: localhost port: 6379 password: '' # 开发环境可能无密码 ``` #### 2.3 启动后端服务 在IDEA中找到启动类: `jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java` 右键选择"Run JeecgSystemApplication"启动项目,或使用命令行: ```bash cd jeecg-module-system/jeecg-system-start mvn spring-boot:run -Dspring-boot.run.profiles=dev ``` 服务默认启动在 `http://localhost:8080/jeecg-boot` #### 2.4 接口调试 可以使用Swagger UI进行接口测试: `http://localhost:8080/jeecg-boot/doc.html` 默认管理员账号: - 用户名: admin - 密码: 123456 ### 3. 前端开发 #### 3.1 管理端前端开发 ```bash # 进入管理端前端目录 cd codes/FWY-JDGL-SAAS-MANAGE # 安装依赖 npm install # 创建开发环境配置文件 修改 `vue.config.js` 中的服务器配置。 启动开发服务器: ```bash npm run serve ``` 前端应用会在 `http://localhost:3000` 运行,热重载已启用。 #### 3.2 H5 H5和小程序项目基于uni-app开发,建议使用HBuilderX编辑器: 1. 下载安装 [HBuilderX](https://www.dcloud.io/hbuilderx.html) 2. 在HBuilderX中打开项目: - H5项目: `codes/FWY-JDGL-SAAS-H5` 3. 修改接口配置: 编辑 `manifest.js` `utils/request.js` 文件,将接口地址改为本地开发地址。 4. 运行项目: - H5: 点击"运行 > 运行到浏览器 > Chrome" ### 4. 开发规范和工作流 #### 4.1 分支管理 项目使用Git Flow工作流管理代码: - `master`: 生产环境分支,稳定版本 - `develop`: 开发分支,最新开发代码 - `feature/*`: 功能分支,用于开发新功能 - `hotfix/*`: 热修复分支,用于紧急bug修复 开发新功能时,应该从develop分支创建feature分支: ```bash git checkout develop git pull git checkout -b feature/your-feature-name ``` ### 5. 常见开发问题 #### 5.1 后端跨域配置 开发环境已配置跨域支持,如遇跨域问题,请检查后端配置文件中的跨域设置: ```java // JeecgBootApplication.java 或相关配置类中 @Bean public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.addAllowedOrigin("*"); config.setAllowCredentials(true); config.addAllowedMethod("*"); config.addAllowedHeader("*"); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", config); return new CorsFilter(source); } ``` #### 5.2 日志调试 后端日志默认输出到控制台和日志文件: ``` jeecg-module-system/jeecg-system-start/logs/ ``` 可以通过修改 `logback-spring.xml` 配置调整日志级别: ```xml ``` ## 六、线上部署说明 线上部署建议使用宝塔面板。 ### 1. 宝塔面板安装与准备 #### 1.1 安装宝塔面板 在服务器上执行以下命令安装宝塔面板: **Centos安装**: ```bash yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ``` **Ubuntu/Debian安装**: ```bash wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ``` 安装完成后,终端会显示宝塔面板的访问地址、用户名和密码,请妥善保存。 #### 1.2 安装基础环境 通过宝塔面板安装以下软件: 1. 登录到宝塔面板 2. 点击**软件商店** 3. 安装以下软件: - Nginx (推荐1.18+版本) - MySQL (推荐5.7+版本) - Redis (推荐5.0+版本) - Java项目一键部署(插件) #### 1.3 准备部署包 将系统的部署包上传到服务器,主要包括: 1. 后端服务JAR包:`jeecg-system-start-3.4.4.jar` 2. 前端静态文件压缩包:`hotel-manage-dist.zip`,`hotel-h5-dist.zip` 3. 数据库脚本:`hotel_saas.sql` 可以通过宝塔面板的文件管理功能上传这些文件到服务器,或使用SFTP工具上传。 ### 2. 数据库配置 #### 2.1 创建数据库和用户 1. 在宝塔面板中点击**MySQL管理器** 2. 点击**添加数据库**,创建名为`hotel_saas`的数据库 3. 设置数据库用户名和密码 4. 确保勾选"所有权限"选项 #### 2.2 导入数据库 1. 在数据库列表中,点击刚创建的数据库右侧的**导入** 2. 选择上传的`hotel_saas.sql`文件 3. 点击**导入**按钮开始导入数据 ### 3. 后端服务部署 #### 3.1 使用Java项目管理器 1. 在宝塔面板中点击**Java项目管理器** 2. 点击**添加项目** 3. 填写项目信息: - 项目名称:`hotel-saas-backend` - JAR包路径:选择上传的JAR文件 - 运行命令:`java -jar -Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -Dspring.profiles.active=prod $JAR_NAME` - JDK版本:JDK 1.8 - 端口:`8080` #### 3.3 启动后端服务 1. 在Java项目管理器中点击项目右侧的**启动**按钮 2. 查看运行日志,确保服务正常启动 ### 4. 前端部署 #### 4.1 部署管理端前端 1. 在宝塔面板中点击**网站** 2. 点击**添加站点**,填写以下信息: - 域名:填写管理端域名,如`admin.hotel-saas.com`(如没有域名可使用IP) - 端口:80(如需https则选择443) - 网站根目录:选择一个合适的目录,如`/www/wwwroot/hotel-saas-admin` 3. 点击**提交**创建站点 4. 上传并解压前端静态文件: ```bash cd /www/wwwroot/hotel-saas-admin unzip /path/to/hotel-manage-dist.zip -d ./ ``` 5. 配置Nginx反向代理: - 点击站点设置中的**配置文件** - 在`location / {...}`区块下方添加API接口代理: ```nginx location / { if ( !-e $request_filename) { proxy_pass http://127.0.0.1:8081; } } ``` - 保存配置并重启Nginx #### 4.2 部署H5客户端 1. 参考4.1步骤,创建H5站点,域名设置为`h5.hotel-saas.com` 2. 解压H5前端文件: ```bash cd /www/wwwroot/hotel-saas-h5 unzip /path/to/hotel-h5-dist.zip -d ./ ``` 3. 配置Nginx反向代理 ``` nginx location ^~ /api { rewrite ^/api(/.*)$ $1 break; # 重写URL,去掉/api前缀 proxy_pass http://192.168.1.99:8081/; proxy_set_header Host 192.168.1.99; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Current_user_token $http_current_user_token; proxy_http_version 1.1; # proxy_hide_header Upgrade; add_header X-Cache $upstream_cache_status; #Set Nginx Cache set $static_fileE6YuASz8 0; if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" ) { set $static_fileE6YuASz8 1; expires 1m; } if ( $static_fileE6YuASz8 = 0 ) { add_header Cache-Control no-cache; } } ``` #### 4.3 配置HTTPS(推荐) 1. 在站点设置中点击**SSL** 2. 可以选择以下方式之一: - 宝塔免费证书 - Let's Encrypt免费证书 - 自己上传证书 3. 按照向导完成证书配置 4. 开启强制HTTPS,以确保安全访问 # 七、系统账号 ## 1. 管理端账号 - 账号:admin - 密码:123456 ## 2. 酒店管理员账号 账号1: - 账号:chjdgl - 密码:Changhe@2025 账号2: - 账号:zlzcs001 - 密码:111111 ## 3. 酒店员工账号 - 账号:chjdgl01 - 密码:Changhe@2025 # 系统界面展示 ## 酒店管理系统功能界面展示 ### 主要功能模块界面
![登录界面](./images/image1.png) ![主控制台](./images/image2.png) ![房态管理](./images/image3.png) ![预订管理](./images/image4.png) ![入住管理](./images/image5.png) ![客户管理](./images/image6.png) ![财务管理](./images/image7.png) ![报表统计](./images/image8.png) ![系统设置](./images/image9.png) ![移动端界面](./images/image10.png)
### 更多功能界面
![功能界面11](./images/image11.png) ![功能界面12](./images/image12.png) ![功能界面13](./images/image13.png) ![功能界面14](./images/image14.png) ![功能界面15](./images/image15.png) ![功能界面16](./images/image16.png) ![功能界面17](./images/image17.png) ![功能界面18](./images/image18.png) ![功能界面19](./images/image19.png)
--- # 使用须知 1. 本项目商用必须获得版权所有者的授权。 2. 未经允许本项目代码不允许二次出售。