From 0d420e3a780701b9d03bb00412f2b9d25d0b940a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E5=B0=8F=E5=8C=97?= Date: Wed, 25 Mar 2026 06:30:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BD=9C=E5=BA=9F=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E6=93=8D=E4=BD=9C=E9=94=99=E8=AF=AF=E7=9A=84=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/process/ResetNumberTabService.php | 15 ++++++++++----- app/services/process/StartBetService.php | 8 ++++++-- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/services/process/ResetNumberTabService.php b/app/services/process/ResetNumberTabService.php index 4ef027d..686a01e 100644 --- a/app/services/process/ResetNumberTabService.php +++ b/app/services/process/ResetNumberTabService.php @@ -22,14 +22,15 @@ class ResetNumberTabService */ public static function resetNumberTabService(array $tableInfo){ $ws = app('\think\swoole\WebSocket'); - $numberTabInfo = NumberTab::getByTableIdOrderByIdDesc($tableInfo); + // 使用 InitTableService::initTable 获取当前靴的最新一局,与 onlineLogin 保持一致 + $numberTabInfo = InitTableService::initTable($tableInfo); if (!$numberTabInfo){ $ws->emit('resetNumberTab', ['status' => false, 'msg' => 'not_number_tab_data']); return; } // 调试日志 - \think\facade\Log::write('resetNumberTab debug: bet_status=' . $numberTabInfo['bet_status'] . ', rob_status=' . $numberTabInfo['rob_status'] . ', id=' . $numberTabInfo['id'], 'info'); - if($numberTabInfo['bet_status'] == 1 || $numberTabInfo['bet_status'] == 2 || ($numberTabInfo['bet_status'] == 0 || $numberTabInfo['rob_status'] == 1) || ($numberTabInfo['bet_status'] == 0 || $numberTabInfo['rob_status'] == 2)){ + \think\facade\Log::write('resetNumberTab debug: bet_status=' . $numberTabInfo['bet_status'] . ', rob_status=' . $numberTabInfo['rob_status'] . ', id=' . $numberTabInfo['id'] . ', boot_id=' . $numberTabInfo['boot_id'], 'info'); + if($numberTabInfo['bet_status'] == 1 || $numberTabInfo['bet_status'] == 2 || ($numberTabInfo['bet_status'] == 0 && $numberTabInfo['rob_status'] == 1) || ($numberTabInfo['bet_status'] == 0 && $numberTabInfo['rob_status'] == 2)){ //事务处理 $res = NumberTab::resetNumberTab($numberTabInfo); \think\facade\Log::write('resetNumberTab result: ' . ($res ? 'true' : 'false'), 'info'); @@ -38,7 +39,7 @@ class ResetNumberTabService return; } $numberTabInfo['bet_status'] = 0; - $ws->to(SocketSession::HOUSE_NAME)->emit('resetNumberTab',[ + $responseData = [ 'status' => true, 'table_id' => $tableInfo['id'], 'round' => [ @@ -49,7 +50,11 @@ class ResetNumberTabService 'in_checkout' => $tableInfo['in_checkout'], 'number_tab_status' => InitTableService::numberTabStatus($numberTabInfo) ] - ]); + ]; + // 广播到 house 房间 + $ws->to(SocketSession::HOUSE_NAME)->emit('resetNumberTab', $responseData); + // 同时发送给请求者 + $ws->emit('resetNumberTab', $responseData); }else{ $ws->emit('resetNumberTab', ['status' => false, 'msg' => 'reset_number_fail']); } diff --git a/app/services/process/StartBetService.php b/app/services/process/StartBetService.php index db84dc4..6d8ac17 100644 --- a/app/services/process/StartBetService.php +++ b/app/services/process/StartBetService.php @@ -26,7 +26,7 @@ class StartBetService $modelRes = NumberTab::startBet($numberTabId); if ($modelRes['status'] == true){ $numberTabInfo = $modelRes['data']; - $ws->to(SocketSession::HOUSE_NAME)->emit('startBet',[ + $responseData = [ 'status' => true, 'table_id' => $tableInfo['id'], 'round' => [ @@ -37,7 +37,11 @@ class StartBetService 'in_checkout' => $tableInfo['in_checkout'], 'number_tab_status' => InitTableService::numberTabStatus($numberTabInfo) ] - ]); + ]; + // 广播到 house 房间 + $ws->to(SocketSession::HOUSE_NAME)->emit('startBet', $responseData); + // 同时发送给请求者 + $ws->emit('startBet', $responseData); //启动倒计时(该处以后会废弃掉) CountdownService::countdown($numberTabId,$tableInfo,$modelRes['data']); }else{