1、立项背景和目标:
针对传统棋牌室门店过度依赖前台人工值守、夜间经营人力成本高、高峰期顾客排队等待时间长、包厢内酒水点单及服务响应不及时等运营痛点。本系统的立项目标是研发一套“无人值守”或“少人值守”的棋牌室自助系统。通过智能软硬件结合,将前台的人工操作全面线上化、自助化,实现从顾客预订、自助开台、智能计费、自助点餐到自动结账的全链路闭环。最终目标在于降低40%以上的门店人力支出,提升顾客体验与包厢翻台率,赋能小型门店实现数字化智能管理。
2、软件功能、核心功能模块:
系统构建为三大终端协同运作:移动端(微信小程序) 作为顾客入口,管理端(Web管理后台) 作为门店经营工具,硬件端(自助机/包厢房控Pad) 作为物联网交互枢纽。
核心功能模块包括:① 智能预约与选房:支持按包厢类型、时段、实时空闲状态在线预约并自动锁房;② 自助开台与人脸/扫码门禁:顾客到店后自助扫码或人脸识别验证,联动智能门锁自动开门,同时自动开启空调和灯光;③ 智能计时与动态计费:按分钟或小时段计费,支持阶梯价格,自动计算超时费用,并实时向小程序推送倒计时提醒;④ 自助点餐与饮品:包厢内扫码(或房控Pad)点单,系统自动流转至后厨/吧台,出餐语音呼叫通知;⑤ 一键结算与离店:支持微信/支付宝/会员余额支付,多订单合并结算,支付成功后自动下发指令关闭包厢内所有电气设备并释放房态。
3、业务流程、功能路径描述:
顾客到店后,打开微信小程序查看当前空闲包厢,选择时长并发起预订(支付押金)➡️ 系统下发开锁指令,包厢门自动开启,房内灯光、空调同步联动开启 ➡️ 顾客进入包厢,通过桌面二维码或房控Pad查看剩余时长,随时进行“加时”或点击“酒水点单” ➡️ 吧台接单并制作,通过语音播报通知顾客取餐 ➡️ 顾客结束娱乐,点击“一键结账”,系统汇总包厢计时费与餐饮费,顾客确认支付 ➡️ 支付成功后,系统锁闭门禁,关闭包厢电源与空调,释放包厢资源,服务流程结束。
1、整体架构和设计思路,不同模块使用的技术栈:
整体采用“云+边+端”的微服务分布式架构。设计思路以“高并发控制”和“IOT设备交互”为核心,将核心业务模块进行独立拆分,确保系统的高可用性。
技术栈及模块划分:
前端: 微信小程序端采用 Uni-app 开发(支持跨端快速迭代),后台管理面板采用 Vue3 + Element Plus。
后端: 核心业务基于 Spring Boot + MyBatis-Plus,利用 Spring Cloud 做微服务治理。计费与订单模块独立微服务。
数据层: 使用 MySQL 存储业务数据,Redis 用于缓存高频数据(包厢状态、用户Token、正在进行的订单时间戳)。
IOT通信: 搭建 Netty 服务网关,通过 WebSocket 与包厢内的房控Pad、门禁锁、智能电表保持长连接。
支付与消息: 对接 微信/支付宝 V3 支付接口,使用 RabbitMQ 处理订单超时未支付取消、计费到期提醒等异步任务。
部署: 使用 Docker + Nginx 容器化部署。
2、“我”的负责模块和结果(尽可能量化):
我主要负责后端整体架构搭建、智能计时计费模块、支付网关集成以及硬件设备通信接口的设计与编码实现。
量化结果: 成功攻克高并发下单和支付问题,系统稳定支持 500+ TPS 的并发访问量;全链路计时精度误差控制在 ±1秒 以内;支付网关整体成功率达到 99.7% 以上。目前已成功对接上线了 200余台 智能门禁锁、60余台 空调控制器以及 30余台 自动水吧设备。系统上线后,门店人力成本降低约 45%,顾客平均等待时间缩短了 80%,门店月度营收通过精准计费提升了约 12%。
3、“我”遇到的难点、坑,和解决方案:
难点一:包厢状态并发锁死问题。 两个顾客在同一毫秒发起同一个包厢的预订请求,导致库存超卖(房态错乱)。解决方案: 采用 Redis 分布式锁(Redisson) 对包厢ID进行加锁,确保同时刻只有一个线程能修改该包厢状态。同时引入 数据库乐观锁(Version控制) 做双重兜底,确保原子性。
难点二:设备通讯保活与断网重连。 初期试验时,Wi-Fi信号波动导致门禁发送“已开门”消息丢失,顾客在门口干等,且计费一直未开始。解决方案: 在设备端增加 心跳包 机制(每5秒一次),服务端建立 “短时降级 + 重试” 策略。若丢失心跳,系统不立即判定为断联,而是触发3次重试探测;若5分钟内彻底断联,自动强制释放该包厢房态并短信通知管理员人工介入,有效规避了设备硬件的不稳定性。
难点三:计费死锁与事务问题。 计费扣款和订单状态更新在分布式环境下容易出现数据不一致。解决方案: 将计费逻辑封装为独立的事务脚本,并引入 TCC 分布式事务方案(Try-Confirm-Cancel) 来保证计费结束时