Laravel 12ReverbFilamentLivewireuni-app
项目概述
面向线下牌局场景的多人实时计分工具:发起人建房后生成 6 位房间号与小程序码,牌友扫码即可入局;每一笔记分实时同步到同房所有人的手机上,散场时系统自动算出「谁给谁转多少」的最少转账结算方案,告别口头记账与算账纠纷。平台采用多租户架构,支持多个商家独立运营各自的用户与房间。
核心功能
- 建房与入局:6 位房间号、小程序码扫码入局、断线重新加入
- 实时记分:记分、撤销、批量记分与房主调分,全员实时可见
- 茶水费:按比例抽取、封顶控制,撤销记分时精确回退
- 自动结算:零和校验 + 最少转账匹配,一眼看清「谁给谁转多少」
- 战绩系统:个人历史、对局记录、排行榜与趣味称号
- 多种登录:微信一键登录、手机验证码、账号密码
- 房间管理:踢人、转让房主、解散房间、站内通知
技术架构
后端基于 Laravel 12 与 Sanctum 构建 API,Laravel Reverb 提供自托管 WebSocket 服务:每笔记分在数据库事务内落库(行级锁防并发竞态)后,广播到房间私有频道。小程序端用 uni-app 开发,并实现了完整的 Pusher 协议客户端——私有频道鉴权、30 秒心跳、断线自动重连。管理侧为 Filament 双面板:平台方管理商家、套餐与订阅,商家方管理门店、桌台与用户;多租户通过全局作用域隔离数据,配套订阅状态机与套餐配额限制。
项目亮点
- 实时体验:WebSocket 推送而非轮询,同房成员即时看到每笔记分
- 并发正确性:行级锁 + 事务保证多人同时记分不错账,金额精度受控
- 工程质量:66 个自动化测试文件,覆盖计分、结算、租户隔离与安全加固
- API 工程化:OpenAPI 接口文档、分级限流、操作审计日志