# 新版酒店管理系统 **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) 开源协议。