Files
chatroom/GAMES_TODO.md
lkddi b62a9f6240 功能:后台游戏历史记录查询中心 + 游戏管理页实时统计
- 新增 GameHistoryController,提供各游戏历史记录查询接口
  - 百家乐:局次列表 + 单局下注明细(含结果分布统计)
  - 老虎机:转动记录含图案分布,支持结果类型/玩家名筛选
  - 赛马:场次列表 + 单场下注明细(含马匹信息展示)
  - 神秘箱子:投放/领取历史,支持箱子类型/领取状态筛选
  - 神秘占卜:签文等级分布统计 + 历史记录,支持等级/玩家名筛选
- 新增 /admin/game-history/ 路由组(stats + 各游戏历史 + 单局详情共9条路由)
- 游戏管理页(/admin/game-configs)优化:
  - 每个游戏卡片新增「📋 历史记录」直达按钮
  - 新增「📊 加载实时统计」按钮,AJAX 异步拉取并展示各游戏汇总卡片
- 更新 GAMES_TODO.md,标记通用待办已完成
2026-03-03 23:40:31 +08:00

6.2 KiB
Raw Blame History

🎮 聊天室游戏开发进度

更新时间2026-03-04


已完成

🎲 百家乐Baccarat

  • 类型:定时自动开局(调度器每分钟检查,间隔可配置)
  • 数据库baccarat_rounds + baccarat_bets
  • 模型BaccaratRound / BaccaratBet
  • 队列 JobOpenBaccaratRoundJob (开局) + CloseBaccaratRoundJob (摇骰结算)
  • 事件BaccaratRoundOpened / BaccaratRoundSettledPresenceChannel 广播)
  • 控制器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
  • 模型SlotMachineLog8种带权重图案、判奖逻辑
  • 控制器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
  • 队列 JobDropMysteryBoxJob(投放 + 公屏广播暗号 + 派发 ExpireJob/ ExpireMysteryBoxJob(到期处理)
  • 控制器MysteryBoxController/mystery-box/status 状态查询 / /mystery-box/claim 领取)
  • 前端chat/partials/mystery-box.blade.php5秒轮询检测 + 可拖动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
  • 队列 JobOpenHorseRaceJob(开赛广播)+ RunHorseRaceJob(每秒播报马匹进度 + 确定胜者)+ CloseHorseRaceJob(结算)
  • 事件HorseRaceOpened / HorseRaceProgress / HorseRaceSettledPresenceChannel 广播)
  • 控制器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
  • 模型FortuneLog55+ 条签文内嵌在模型中)
  • 控制器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

  1. 百家乐广播频道ChannelPresenceChannel,解决前端收不到 WebSocket 事件
  2. 百家乐余额检查$user->gold$user->jjb(字段名错误)
  3. 老虎机积分日志:普通中奖/诅咒发私信通知三7全服广播
  4. 老虎机FAB:支持拖动 + localStorage 位置持久化
  5. 星海小博士随机事件:改走 UserCurrencyService.change(),补写流水日志
  6. 百家乐结算UI:骰子改数字方块(跨平台);中奖/未中奖卡片重设计
  7. 全部 FAB 拖动统一:百家乐 FAB 改为 Alpine.js baccaratFab() 组件,与老虎机 slotFab() 完全一致,位置持久化存 localStorage
  8. Alpine.js 初始化顺序frame.blade.php 中 Alpine CDN 补加 defer,解决所有组件 is not defined 错误
  9. 神秘箱子暗号领取改为主动尝试模式不依赖5秒轮询聊天框输入暗号即可触发领取claim() 暗号统一转大写
  10. 神秘箱子流水记录change() 调用补上 room_id 参数,确保积分统计页面可按房间筛选
  11. 后台弹窗:游戏管理页所有 alert/confirm 替换为全局 window.adminDialog(毛玻璃弹窗)