- 新增 GameHistoryController,提供各游戏历史记录查询接口 - 百家乐:局次列表 + 单局下注明细(含结果分布统计) - 老虎机:转动记录含图案分布,支持结果类型/玩家名筛选 - 赛马:场次列表 + 单场下注明细(含马匹信息展示) - 神秘箱子:投放/领取历史,支持箱子类型/领取状态筛选 - 神秘占卜:签文等级分布统计 + 历史记录,支持等级/玩家名筛选 - 新增 /admin/game-history/ 路由组(stats + 各游戏历史 + 单局详情共9条路由) - 游戏管理页(/admin/game-configs)优化: - 每个游戏卡片新增「📋 历史记录」直达按钮 - 新增「📊 加载实时统计」按钮,AJAX 异步拉取并展示各游戏汇总卡片 - 更新 GAMES_TODO.md,标记通用待办已完成
6.2 KiB
6.2 KiB
🎮 聊天室游戏开发进度
更新时间:2026-03-04
✅ 已完成
🎲 百家乐(Baccarat)
- 类型:定时自动开局(调度器每分钟检查,间隔可配置)
- 数据库:
baccarat_rounds+baccarat_bets - 模型:
BaccaratRound/BaccaratBet - 队列 Job:
OpenBaccaratRoundJob(开局) +CloseBaccaratRoundJob(摇骰结算) - 事件:
BaccaratRoundOpened/BaccaratRoundSettled(PresenceChannel 广播) - 控制器:
BaccaratController(/baccarat/current//baccarat/bet//baccarat/history) - 前端:
chat/partials/baccarat-panel.blade.php(倒计时/押注/骰子动画/趋势) - 货币来源:
CurrencySource::BACCARAT_BET/BACCARAT_WIN - 后台配置:
game_configs表,管理员可配置开关/间隔/赔率/押注范围
🎰 老虎机(Slot Machine)
- 类型:玩家随时主动触发(即时游戏)
- 数据库:
slot_machine_logs - 模型:
SlotMachineLog(8种带权重图案、判奖逻辑) - 控制器:
SlotMachineController(/slot/info//slot/spin//slot/history) - 赔率:三7×100(全服广播)/ 三钻×50 / 三同×10 / 两同×2 / 三骷髅诅咒(扣双倍)
- 聊天通知:中奖发私信通知;三7全服公屏广播
- 前端:
chat/partials/slot-machine.blade.php(三列滚轮动画/逐列停止/可拖动FAB) - 货币来源:
CurrencySource::SLOT_SPIN/SLOT_WIN/SLOT_CURSE - 后台配置:
game_configs表,可配置每次消耗/每日次数上限/各赔率
📦 神秘箱子(Mystery Box)
- 类型:系统定时自动投放 + 管理员手动投放(即时广播暗号,先到先得)
- 数据库:
mystery_boxes(箱子记录)+mystery_box_claims(领取日志) - 模型:
MysteryBox/MysteryBoxClaim - 队列 Job:
DropMysteryBoxJob(投放 + 公屏广播暗号 + 派发 ExpireJob)/ExpireMysteryBoxJob(到期处理) - 控制器:
MysteryBoxController(/mystery-box/status状态查询 //mystery-box/claim领取) - 前端:
chat/partials/mystery-box.blade.php(5秒轮询检测 + 可拖动FAB + 快捷输入面板) - 领取方式:① 聊天框直接输入暗号发送(前端拦截,不发普通消息)② 点击悬浮FAB打开面板输入
- 箱子类型:普通箱(500~2000金)/ 稀有箱(5000~20000金)/ 黑化箱(陷阱,倒扣200~1000金)
- 货币来源:
CurrencySource::MYSTERY_BOX/MYSTERY_BOX_TRAP(含room_id流水记录) - 后台配置:
game_configs表,可配置开关/自动投放间隔/各奖励范围/陷阱概率;支持手动投放三种类型
🐎 赛马竞猜(Horse Racing)
- 类型:定时自动开局(调度器每分钟检查,间隔可配置)
- 数据库:
horse_races+horse_bets - 模型:
HorseRace/HorseBet - 队列 Job:
OpenHorseRaceJob(开赛广播)+RunHorseRaceJob(每秒播报马匹进度 + 确定胜者)+CloseHorseRaceJob(结算) - 事件:
HorseRaceOpened/HorseRaceProgress/HorseRaceSettled(PresenceChannel 广播) - 控制器:
HorseRaceController(/horse-race/current//horse-race/bet//horse-race/history) - 广播:
horse.opened/horse.progress/horse.settled - 前端:
chat/partials/horse-race-panel.blade.php(倒计时/赛马道动画/实时赔率/可拖动FAB) - 货币来源:
CurrencySource::HORSE_BET/HORSE_WIN - 后台配置:
game_configs表,马匹数量/押注窗口/跨马时长/庄家抓水比例均可配置
🔮 神秘占卜(Fortune Telling)
- 类型:玩家主动使用(每日免费 N 次,额外次数消耗金币)
- 数据库:
fortune_logs - 模型:
FortuneLog(55+ 条签文内嵌在模型中) - 控制器:
FortuneTellingController(/fortune/today查今日 //fortune/tell占卜 //fortune/history历史) - 前端:
chat/partials/fortune-panel.blade.php(卦象摇动动画/签文卡片/当日加成状态/可拖动FAB) - 每日限制:免费 N 次(可配置),额外次数消耗金币
- 广播:暂无实时广播(占卜结果仅展示给本人)
- 货币来源:
CurrencySource::FORTUNE_COST - 后台配置:
game_configs表,免费次数/额外消耗/各签概率均可配置
🕐 待开发
📌 通用待办(所有游戏共用)
- 后台游戏管理页面(
/admin/game-configs)显示各游戏实时统计数据(点击"加载实时统计"异步加载各游戏汇总卡片) - 各游戏历史记录在后台可查(管理员视角,新增
/admin/game-history/路由组,支持百家乐/老虎机/赛马/神秘箱子/占卜各自的历史记录列表及详情页,含筛选分页) - 生产环境部署:
php artisan db:seed --class=GameConfigSeeder(初始化游戏配置) 已经完成了 - 百家乐/老虎机 全面测试(多用户并发下注)
🔧 已修复的 Bug
- 百家乐广播频道:
Channel→PresenceChannel,解决前端收不到 WebSocket 事件 - 百家乐余额检查:
$user->gold→$user->jjb(字段名错误) - 老虎机积分日志:普通中奖/诅咒发私信通知;三7全服广播
- 老虎机FAB:支持拖动 + localStorage 位置持久化
- 星海小博士随机事件:改走
UserCurrencyService.change(),补写流水日志 - 百家乐结算UI:骰子改数字方块(跨平台);中奖/未中奖卡片重设计
- 全部 FAB 拖动统一:百家乐 FAB 改为 Alpine.js
baccaratFab()组件,与老虎机slotFab()完全一致,位置持久化存 localStorage - Alpine.js 初始化顺序:
frame.blade.php中 Alpine CDN 补加defer,解决所有组件is not defined错误 - 神秘箱子暗号领取:改为主动尝试模式(不依赖5秒轮询),聊天框输入暗号即可触发领取;
claim()暗号统一转大写 - 神秘箱子流水记录:
change()调用补上room_id参数,确保积分统计页面可按房间筛选 - 后台弹窗:游戏管理页所有
alert/confirm替换为全局window.adminDialog(毛玻璃弹窗)