# hotel-intelligence-system **Repository Path**: aibyte/hotel-intelligence-system ## Basic Information - **Project Name**: hotel-intelligence-system - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-18 - **Last Updated**: 2026-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Hotel-Intelligence-System 2.0 > Hotel 2.0 来了,如果这个对你的学习有帮助的话,可以给个免费的watch,star,fork三连支持下噢。或者可以[打赏](#打赏)一杯咖啡给作者噢。 ### 开源声明 > 该源码已有软件著作专利,现开源仅供学习、毕设参考、交流使用, **不得用于商业用途** ### 介绍 > 智慧酒店系统,于2022完成。 > > a hotel-intelligence-system , finish on 2022 项目以Springboot集SpringSecurity、redis等多个中间件为载体,做出一个有app端、web端的酒店管理系统 + 类携程的酒店下单门户 其中 1. **SpringSecurity**使用**token**写入过期时间进行有效期管理(SpringSecurity结合Redis进行token有效期管理请移步我的另一个项目——[小区智能管理系统](https://gitee.com/tomato-simon/community-management-system)) 2. 可以通过角色权限或者指定人员授予菜单权限来实现**动态菜单** 3. 引用第三方对象存储库(**七牛云**)来进行音图存储产生外链 4. 实现**二维码登录**功能(包括app端的扫码和登录页的二维码生成) 5. 利用Easy Excel进行**excel表格的读写操作**,实现数据导入导出处理(使用Apache Poi的案例可以移步我的另一个项目——[小区智能管理系统](https://gitee.com/tomato-simon/community-management-system)) 6. 拥有完整的用户网上下单到入住、用户前台直接入住的流程 7. 拥有可改进的房间分配流程 8. 拥有可改进的订单优惠计费功能 9. 后台管理端拥有基于**e-chart**的订单大屏可视化,其中有以地图形式的订单来源地统计、有条形图+折线图混合的订单量和营业额统计、有各房型订单统计的玫瑰图等 10. 把日志分门别类嵌入与各个模块中,形成一个可供管理员筛查的日志管理系统 11. 引进**支付宝支付**接口,实现与支付宝对接 ------ ### 主要贡献者(咨询请通过邮件,不接受邮件外的其他渠道联系) #### **后端(服务端):** - **tomato-simon (1499602163@qq.com)(main)** - static_move (2562748196@qq.com) #### **前端(客户端):** - **fuxiao_lee (19898313250@163.com)(main)** - tomato-simon (1499602163@qq.com)(Secondary main) #### **APP端(客户端):** - **houttuynia([327849132@qq.com](mailto:327849132@qq.com))(main)** - tomato-simon ([1499602163@qq.com](mailto:1499602163@qq.com))(part of Scan-code-login) ------ ### 软件架构 ![系统架构图](https://gitee.com/tomato-simon/hotel-intelligence-system/raw/dev/temp_image/xtjg.png) ------ ### 酒店2.0更新详情 1. 增加了APP端 2. 门户端增加国际化,实现汉英转换 3. 门户端增加页面自适应(兼容手机、平板等设备) 4. 门户端酒店详情页完善 5. 增加了订单评价功能 6. 增加了收藏功能 7. 增加了酒店列表定位功能,现在可以搜索某个范围内的酒店了 8. 增加了钱包模块 9. 增加了优惠券模块 10. 增加了日志管理模块 11. 增加了防疫相关模块 12. 增加了支付宝支付功能 13. 更多更新自行摸索... ------ ### 安装必看 #### 1. 数据库 创建完数据库后,把根目录下的 **hotel-plus.sql** 导入即可 注:开发环境数据库版本为 Ver 8.0.24 #### 2. hotel-rear-end: 1. 将 **.\hotel-plus\hotel-rear-end\src\main\resources** 下的application-base.yml改名为application.yml,并将里面 “####” 替换成描述的对应信息 1. 其中,邮箱相关请进入邮箱开通POP3 / IMAP / SMTP服务,并获取授权码,有更多邮箱可以按格式增加 2. 七牛云账号需要自行申请,现在存储方式为先调用 **upload/img** 接口,然后获取url再存进数据库,若需要存储本地,修改前端对应逻辑即可 3. 支付宝相关沙箱配置,请在[https://open.alipay.com/develop/sandbox/app](https://open.alipay.com/develop/sandbox/app)下获取,注意需要查看文档下载对应的沙箱支付宝App配合使用 #### 3. hotel-front-end & hotel-portal: 1. hotel(front-end)项目安装依赖可能会报错,目前有一种解决方法:删除掉该目录下的package.json文件第15行代码,"vue-qr": "^3.2.4",然后终端键入命令:npm install,成功安装之后,在终端输入命令:npm install vue-qr,安装完成,完成该项目依赖的安装。 2. 由于Websocket是使用get请求去握手的,所以单独需要在“hotel(front-end)/src/components/RoomManage.vue”文件下的initWebsocket()方法下修改服务端ip地址。其他ip地址到对应的request.js中或者application.yaml中修改即可 ------ ### 使用说明 1. 系统内可用的账号密码(账号/密码) 1. **管理员:** admin/123456 2. **酒店管理员:** 1. OneOneTwo国际度假酒店: hotel_admin/123456 2. SixOneFour国际度假酒店: sof_hotel_admin/123456 3. **防疫人员:** fangyi1/123456 4. **普通成员:** 1. 普通成员1: jing/123 2. 普通成员2: lee/123 2. 数据库相关 - dept表: - role列的值用作鉴权,系统设计为admin(管理员)、hotel_admin(酒店管理员)、hotel_member(酒店员工)和anti-epidemic(防疫人员)。若要自定义,需同步修改后端代码。 3. 二维码登录相关 - 使用轮询方式访问redis(可改为websocket推送),使用UUID的方式生成码作为redis的key,对应的value为0时为未扫描,1为已扫描,2为确认登录 4. 支付宝相关 - 因不明原因,开发的支付宝支付功能在服务器部署时无法部署成功(错误日志见`issue/alipay_issue_out_log.log`),所以支付宝相关以及配置项已注释。(知道解决方案希望大大们能告知我,谢谢啦) - **本地执行时可完美使用支付宝相关功能**,需要使用的话可以全局搜索“**暂时注释支付宝相关代码**”关键字进行取消注释。 ------ ### 项目预览 ![首页](https://gitee.com/tomato-simon/hotel-intelligence-system/raw/dev/temp_image/index-chart.png) ![首页](https://gitee.com/tomato-simon/hotel-intelligence-system/raw/dev/temp_image/menu.png) ![首页](https://gitee.com/tomato-simon/hotel-intelligence-system/raw/dev/temp_image/room.png) ![首页](https://gitee.com/tomato-simon/hotel-intelligence-system/raw/dev/temp_image/order.png) ![首页](https://gitee.com/tomato-simon/hotel-intelligence-system/raw/dev/temp_image/dept.png) ![首页](https://gitee.com/tomato-simon/hotel-intelligence-system/raw/dev/temp_image/detail-1.png) ![首页](https://gitee.com/tomato-simon/hotel-intelligence-system/raw/dev/temp_image/detail-2.png) ![首页](https://gitee.com/tomato-simon/hotel-intelligence-system/raw/dev/temp_image/wallet.png) ------ ### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ------ ### 打赏 > 如果你觉得这个项目对你学习有帮助,可以donate一杯coffee来支持一下我们噢! 微信
微信扫码
支付宝
支付宝扫码
继续修复编译错误并完成构建验证。 BillingServiceImpl 缺少 `RoomPO` import: **BUILD SUCCESS**。编译通过。现在做最终验证 — 确认所有新建模块的关键文件都存在: 全部 8 个模块的 Controller 和 Mapper XML 都已就位,编译成功。以下是完整交付总结: --- ## 交付完成 ✅ ### 构建状态 **BUILD SUCCESS** — 零编译错误,仅有既有代码的 deprecation 警告(无关新增代码)。 ### 新增文件清单(8 个 PMS 核心模块 + 基础设施) | 模块 | API 路径前缀 | 主要功能 | |------|------------|---------| | **reservation** 预订 | `POST api/reservation/{create,page,cancel,restore}` | 散客预订 CRUD、取消/恢复、角色隔离 | | **checkin** 在住 | `POST api/checkin/{create,page,changeRoom,link,extend}` | 在住查询、换房事务、联房、续住 | | **billing** 收银 | `POST api/billing/{charge,adjust,split,transfer,checkout,hangAr}` | 入账、冲账、分账、转账、结账、挂AR | | **nightAudit** 夜审 | `POST api/nightAudit/{execute,page,shift}` `GET api/nightAudit/currentDate` | 幂等夜审、自动入账房费、日期推进 | | **housekeeping** 客房中心 | `POST api/housekeeping/{room/changeStatus,lostFound/*,lease/*}` | 房态修改+日志、拾到物品、物品租赁 | | **ar** 财务应收 | `POST api/ar/{create,page,review/*,writeOff,writeOff/cancel,writeOff/page}` | AR账户、单批审核、核销/撤销 | | **product** 商品 | `POST api/product/{create,update,inbound/create,stock/page}` | 商品管理、入库事务(库存累加) | | **member** 会员储值 | `POST api/member/{page,changeStatus,points/*,wallet/*}` | 会员查询、积分、储值充值/冻结 | ### 数据库迁移 `hotel-rear-end/sql/pms_modules_migration.sql` — 包含 16 张新表 DDL + `ALTER TABLE room/wallet` + 初始化数据 ### 其他关键基础设施 - `MetaObjectHandlerConfig` — 审计字段(create_by/time、update_by/time)自动填充 - `RoomPO.pmsStatus` — 新增 PMS 房态字段(不影响原有 status 整型字段) - `pom.xml` — 新增 `spring-boot-starter-test` + `jqwik:1.7.4` 测试依赖 --- ## PMS 商务版后端模块(2026 新增) > 基于 PMS.md 需求说明,新增 8 个 PMS 核心业务模块,实现前后端完整对接,替换所有前端演示数据。 ### 新增模块一览 | 模块 | API 前缀 | 核心功能 | |------|---------|---------| | 预订 reservation | `api/reservation` | 散客预订 CRUD、取消/恢复、角色数据隔离 | | 在住 checkin | `api/checkin` | 在住查询、换房事务、联房、续住 | | 收银 billing | `api/billing` | 入账、冲账、分账、转账、结账退房、挂AR | | 夜审 nightAudit | `api/nightAudit` | 幂等夜审、自动入账房费、系统日期推进、交班 | | 客房中心 housekeeping | `api/housekeeping` | 房态修改(带日志)、拾到物品、物品租赁 | | 财务应收 ar | `api/ar` | AR账户创建/审核/批量审核、核销/撤销 | | 商品管理 product | `api/product` | 商品管理、入库事务(库存累加)、库存预警 | | 会员储值 member | `api/member` | 会员查询、状态变更、积分调整/兑换、储值充值/冻结 | ### 数据库迁移 执行 `hotel-rear-end/sql/pms_modules_migration.sql`(在现有 hotel-plus 数据库上追加执行)。 包含:`pms_reservation`、`pms_check_in`、`pms_billing_item`、`pms_checkout_record`、`pms_night_audit_record`、`pms_shift_record`、`pms_system_config`、`pms_room_status_log`、`pms_lost_found_item`、`pms_item_lease`、`pms_ar_account`、`pms_ar_write_off_record`、`pms_product`、`pms_inbound_order`、`pms_inbound_order_item`、`pms_wallet_recharge_record` 共 16 张表,以及 `ALTER TABLE room ADD COLUMN pms_status`、`ALTER TABLE wallet ADD COLUMN wallet_status, freeze_reason`。 ### 前端对接说明 以下组件已从演示数据切换为真实 API 调用: - `ReservationManage.vue` → 预订管理全流程 - `NightAuditManage.vue` → 夜审执行与记录查询 - `HousekeepingCenter.vue` → 拾到物品与物品租赁 - `ArAccountManage.vue` → AR账户与核销管理 - `MemberManage.vue` → 会员查询与积分/储值操作 - `ProductManage.vue` → 商品管理与库存查看 ### 技术要点 - 所有写操作标注 `@Transactional(rollbackFor = RuntimeException.class)` - 使用 MyBatis-Plus 逻辑删除(`@TableLogic`),业务查询自动过滤 - 审计字段(create_by/time、update_by/time)通过 `MetaObjectHandlerConfig` 自动填充 - `hotel_admin` 角色自动附加 hotelId 过滤,实现多租户数据隔离 - 夜审模块通过 `pms_system_config` 表驱动系统营业日,保证幂等性 这个项目要按“后端先启动,前端再启动”的顺序跑。 **1. 准备依赖** 需要本机有: ```bash Java 8 或 17 Maven 或使用项目自带 ./mvnw Node.js + npm MySQL 8 Redis ``` 当前机器里我看到有 Java 和 Node,但没检测到 `mysql`、`redis-server` 命令,可能还需要安装或启动服务。 **2. 初始化数据库** 创建数据库: ```sql CREATE DATABASE `hotel-plus` DEFAULT CHARACTER SET utf8mb4; ``` 导入根目录 SQL: ```bash mysql -uroot -p hotel-plus < /home/wr/work/hotel-intelligence-system-dev/hotel-plus.sql ``` 如果要用新增 PMS 模块,再导入: ```bash mysql -uroot -p hotel-plus < /home/wr/work/hotel-intelligence-system-dev/hotel-rear-end/sql/pms_modules_migration.sql ``` 后端配置在 [/home/wr/work/hotel-intelligence-system-dev/hotel-rear-end/src/main/resources/application.yml](/home/wr/work/hotel-intelligence-system-dev/hotel-rear-end/src/main/resources/application.yml),默认是: ```yaml MySQL: 127.0.0.1:3306/hotel-plus 账号: root 密码: 123456 Redis: 127.0.0.1:6379 后端端口: 8081 ``` 按你的本机密码修改这里。 **3. 启动后端** ```bash cd /home/wr/work/hotel-intelligence-system-dev/hotel-rear-end ./mvnw spring-boot:run ``` 后端启动成功后访问: ```text http://127.0.0.1:8081 ``` **4. 启动后台管理端** ```bash cd "/home/wr/work/hotel-intelligence-system-dev/hotel(front-end)" npm install npm run serve ``` 一般会跑在: ```text http://localhost:8080 ``` 管理端本地代理已经指向 `http://127.0.0.1:8081`,通常不用额外改。 默认账号: ```text admin / 123456 hotel_admin / 123456 sof_hotel_admin / 123456 fangyi1 / 123456 ``` **5. 启动门户端** ```bash cd "/home/wr/work/hotel-intelligence-system-dev/hotel(portal)" npm install npm run serve ``` 注意:门户端 [/home/wr/work/hotel-intelligence-system-dev/hotel(portal)/src/utils/request.js](/home/wr/work/hotel-intelligence-system-dev/hotel(portal)/src/utils/request.js) 现在写的是线上接口: ```js baseURL: "http://106.52.219.171:8188" ``` 本地运行要改成: ```js baseURL: "http://127.0.0.1:8081" ``` **6. APP 端** `hotel-app` 是 uni-app 项目,建议用 HBuilderX 打开运行。接口地址在: [/home/wr/work/hotel-intelligence-system-dev/hotel-app/util/api.js](/home/wr/work/hotel-intelligence-system-dev/hotel-app/util/api.js) 把: ```js const BASE_URL = "http://106.52.219.171:8100" ``` 改成: ```js const BASE_URL = "http://127.0.0.1:8081" ``` 最小运行路径就是:启动 MySQL/Redis → 导入 SQL → 启动 `hotel-rear-end` → 启动 `hotel(front-end)`。