# 新版酒店管理系统
**Repository Path**: Chenfangyijie_code/Hotel-System
## Basic Information
- **Project Name**: 新版酒店管理系统
- **Description**: 一套基于 ThinkPHP 5.1 开发的酒店管理系统,支持房态总览、房间管理、渠道设置、入住登记以及语音播报(入住/退房等场景自动播报语音,让前台更省心)。
房态首页:一屏看清所有房间的空闲 / 在住 / 预订状态,点一下就能办理入住。
房间管理:添加房间、查看房间列表、维护房价。
渠道设置:维护订单来源渠道(自来、飞猪、去哪儿等)。
语音播报:一键生成语音文件,支持调节发音人、语速、音调、音量
- **Primary Language**: PHP
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 200
- **Forks**: 99
- **Created**: 2019-07-03
- **Last Updated**: 2026-09-14
## Categories & Tags
**Categories**: erp
**Tags**: None
## README
# 布尔酒店管理系统
一套基于 **ThinkPHP 5.1** 开发的酒店管理系统,支持房态总览、房间管理、渠道设置、入住登记以及**语音播报**(入住/退房等场景自动播报语音,让前台更省心)。
> 不需要懂编程也能跑起来:跟着下面的“快速部署”一步步做即可。
---
## 一、项目介绍
| 项目 | 说明 |
| --- | --- |
| 项目名称 | 布尔酒店管理系统 |
| 技术框架 | ThinkPHP 5.1.x(PHP 框架) |
| 运行环境 | PHP 5.6 及以上(推荐 PHP 7.2 ~ 7.4) |
| 数据库 | MySQL 5.5 及以上 |
| 前端技术 | Layui + ZUI + jQuery(已全部放在本地,**不需要联网**) |
| 语音服务 | 百度智能云“语音合成”,用于自动播报语音 |
### 功能一览
- **房态首页**:一屏看清所有房间的空闲 / 在住 / 预订状态,点一下就能办理入住。
- **房间管理**:添加房间、查看房间列表、维护房价。
- **渠道设置**:维护订单来源渠道(自来、飞猪、去哪儿等)。
- **入住管理**:弹窗登记客户信息,操作简单、看得明白。
- **语音播报**:一键生成语音文件,支持调节发音人、语速、音调、音量。
- **启动自检**:程序启动时会自动检查配置是否写对,写错会直接用中文告诉你哪里错了、怎么改。
### 界面预览
---
## 二、快速部署(小白版)
### 第 1 步:准备运行环境
需要的软件(推荐使用集成环境,省去逐个安装的麻烦):
| 软件 | 说明 |
| --- | --- |
| PHP 7.2 ~ 7.4 | 需要开启 `pdo_mysql`、`curl`、`mbstring`、`openssl` 扩展 |
| MySQL 5.5+ | 用于存放数据 |
| Web 服务器 | Apache 或 Nginx(集成环境如 phpstudy、宝塔、XAMPP 自带) |
> 推荐工具:Windows 用户可用 **phpstudy** 或 **宝塔面板**;一键安装即可,无需手工配置。
### 第 2 步:放置程序文件
把整个项目文件夹放到网站的根目录下。以 phpstudy 为例:
```
网站根目录/www/Hotel-System/ ← 整个项目放在这里
```
然后**把网站的运行目录(网站根目录)指向项目里的 `public` 文件夹**:
```
www/Hotel-System/public/ ← 网站实际访问的就是这个目录
```
> 为什么是 `public`?因为入口文件 `index.php` 在这里,指向它更安全、更规范。
### 第 3 步:创建数据库并导入数据
1. 打开数据库管理工具(如 phpMyAdmin、Navicat),新建一个数据库,例如 `hotel`,编码选择 `utf8`。
2. 选中该数据库,执行下面的 SQL(一次性复制粘贴执行即可):
```sql
-- 房间信息表
CREATE TABLE `hotel_house` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '房间ID',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '房间名称',
`room_number` varchar(50) NOT NULL DEFAULT '' COMMENT '房间号码',
`price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '房间价格(元/晚)',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:1 空闲,2 在住,其它 预订',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='房间信息表';
-- 渠道表
CREATE TABLE `hotel_channel` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '渠道ID',
`name` varchar(30) NOT NULL DEFAULT '' COMMENT '渠道名称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='渠道表';
-- 语音条目表
CREATE TABLE `hotel_voice` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '语音ID',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '语音名称',
`card` varchar(30) NOT NULL DEFAULT '' COMMENT '语音文件标识(英文/数字)',
`text` varchar(300) NOT NULL DEFAULT '' COMMENT '播报内容',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='语音条目表';
-- 初始数据(可自行修改)
INSERT INTO `hotel_house` (`name`, `room_number`, `price`, `status`) VALUES
('标准间', '101', 288.00, 1),
('标准间', '102', 288.00, 1),
('大床房', '201', 388.00, 1),
('豪华套房', '301', 688.00, 2);
INSERT INTO `hotel_voice` (`name`, `card`, `text`) VALUES
('欢迎语', 'bool', '欢迎使用布尔酒店管理系统'),
('退房成功', 'tui', '退房成功');
```
### 第 4 步:修改数据库连接信息
打开 `config/database.php`,把下面几项改成你自己的数据库信息:
```php
'hostname' => '127.0.0.1', // 数据库地址,本机一般不用改
'database' => 'hotel', // 第 3 步创建的数据库名
'username' => 'root', // 数据库账号
'password' => 'root', // 数据库密码
'hostport' => '3306', // 数据库端口,默认 3306
'prefix' => 'hotel_', // 数据表前缀,与建表 SQL 保持一致即可
```
### 第 5 步:给目录授予写入权限(Linux / 宝塔必看)
以下目录需要**读写权限**(Windows 一般无需操作):
```
runtime/ 程序运行缓存目录
public/config/ 语音配置文件存放目录
public/voice/ 语音文件存放目录
```
Linux 命令示例:
```bash
chmod -R 755 runtime public/config public/voice
chown -R www:www runtime public/config public/voice # www 换成你服务器上的运行用户
```
### 第 6 步:访问系统
浏览器打开:
```
http://你的域名/admin/index/index
```
例如本机测试:`http://localhost/admin/index/index`
看到房态首页,说明部署成功。
---
## 三、使用教程
### 1. 房态首页
进入后台默认显示房态首页,每个方块代表一间房:
- **蓝色**=空闲,**绿色**=在住,**浅绿**=预订;
- 点一下房间方块,会弹出操作菜单(入住 / 预订 / 退房);
- 点击“入住”即可打开入住登记窗口。
### 2. 房间管理
左侧菜单进入「系统设置 → 房间管理」:
1. 点击左上角「添加房间」;
2. 填写房间名称、房间号码、房间价格;
3. 点击「添加房间」按钮即可,列表会自动刷新。
> 房间名称、号码必填,价格必须是数字。
### 3. 渠道设置
左侧菜单进入「系统设置 → 渠道设置」:
1. 在输入框填写渠道名称(如“携程”);
2. 点击右侧加号添加;
3. 点击渠道后面的「×」可删除,删除前会二次确认。
### 4. 语音播报设置
左侧菜单进入「系统设置 → 语音播报」:
| 选项卡 | 作用 |
| --- | --- |
| 语音设置 | 选择发音人、语速、音调、音量,保存后自动生成欢迎语语音 |
| 账号配置 | 填写百度语音的 apiKey 和 secretKey(见下一节) |
| 信息修改 | 修改每条播报语音的“标识”和“内容”,并重新生成语音 |
点击列表中的「更新配置」,系统会按照该条内容重新合成语音文件,保存在 `public/voice/` 目录。
### 5. 配置百度语音(语音播报必看)
1. 打开 [百度智能云](https://cloud.baidu.com/),注册并登录;
2. 搜索进入「语音技术」,创建一个应用;
3. 在应用详情中复制 **API Key** 和 **Secret Key**;
4. 回到本系统「语音播报 → 账号配置」,粘贴后点击「保存账号」;
5. 页面会自动生成欢迎语语音,看到“语音更新成功”即配置完成。
---
## 四、配置说明
| 配置文件 | 作用 |
| --- | --- |
| `config/app.php` | 应用设置:调试开关、时区、默认模块、启动配置校验开关等 |
| `config/database.php` | 数据库连接信息 |
| `config/session.php` | 登录会话设置 |
| `config/cache.php` | 缓存设置 |
| `public/config/voice_config.txt` | 语音播报参数(由后台自动生成,一般不用手动改) |
### 上线前的安全建议
在 `config/app.php` 中把调试开关关掉,避免把内部信息暴露给访客:
```php
'app_debug' => env('app_debug', false),
'app_trace' => env('app_trace', false),
```
> 也可以不改代码,直接在项目根目录新建 `.env` 文件(没有就创建),写入:
> ```
> app_debug = false
> app_trace = false
> ```
---
## 五、常见问题 FAQ
**Q1:打开页面提示“系统配置需要修正”?**
这是启动自检在提醒你配置写错了。请按页面上的中文提示修改 `config` 目录下对应的配置文件,保存后刷新即可。
**Q2:页面报“数据库连接失败”或一片空白?**
1. 检查 `config/database.php` 里的地址、账号、密码、端口、库名是否正确;
2. 确认 MySQL 服务已启动;
3. 确认数据库已经按第 3 步创建好,并导入了表结构。
**Q3:点击“更新配置”后提示语音失败?**
常见原因和解决办法:
- **apiKey / secretKey 填错**:到百度智能云重新复制,注意不要多复制空格;
- **没开通语音合成权限**:在百度语音控制台确认应用已开通“语音合成”;
- **服务器不能访问外网**:语音需要访问百度接口,请确认服务器网络正常;
- **详细错误看这里**:`public/voice/result.txt` 中会记录失败原因。
**Q4:提示“语音保存目录没有写入权限”?**
给 `public/voice` 和 `public/config` 目录设置读写权限(Linux 参考第 5 步)。
**Q5:页面样式错乱、弹窗打不开?**
本项目的样式和脚本全部放在 `public/static` 目录下,无需联网。若仍异常,请检查 `public/static` 目录是否完整上传。
**Q6:房态首页看不到房间?**
说明 `hotel_house` 表还没有数据,请到「房间管理」添加房间,或使用第 3 步的初始数据。
**Q7:修改了数据表前缀导致报错?**
建表 SQL 使用的前缀必须与 `config/database.php` 中的 `prefix` 一致(默认 `hotel_`)。
**Q8:为什么没有登录页面?**
当前版本为开发演示版本,尚未内置登录鉴权。若需对外网开放,请务必自行增加登录验证,避免后台被随意访问。
---
## 六、目录结构说明
```
Hotel-System/
├── application/ 应用代码
│ ├── admin/ 后台模块(控制器 / 视图 / 模型 / 验证器)
│ ├── api/ 接口模块
│ ├── index/ 前台模块
│ ├── common/ 公共工具(语音配置、配置自检等)
│ ├── common.php 公共函数
│ └── tags.php 应用行为(启动自检在此注册)
├── config/ 全局配置文件
├── route/ 路由定义
├── public/ 网站根目录
│ ├── index.php 入口文件
│ ├── api/tts.php 语音合成脚本
│ ├── config/ 语音配置存放目录
│ ├── voice/ 生成的语音文件
│ └── static/ 样式、脚本、图片等静态资源
├── demo/ 界面演示图片
├── runtime/ 运行时缓存(需可写)
├── thinkphp/ 框架核心
└── vendor/ 第三方依赖
```
---
## 七、参与贡献
1. Fork 本仓库
2. 新建 `Feat_xxx` 分支
3. 提交代码
4. 新建 Pull Request
## 八、开源协议
本项目遵循 [Apache-2.0](./LICENSE.txt) 开源协议。