'to_bet_fail_6', 'detail' => 'zero_amount']); return ['status' => false, 'msg' => 'to_bet_fail_6']; } $numberTabId = isset($event['number_tab_id']) && intval($event['number_tab_id']) > 0 ? intval($event['number_tab_id']) : 0; $userId = isset($event['user_id']) && intval($event['user_id']) > 0 ? intval($event['user_id']) : 0; $userInfo = User::get(['id' => $userId, 'status' => 1, 'is_delete' => 0]); if (!$userInfo) { Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_2', 'detail' => 'user_not_found']); return ['status' => false, 'msg' => 'to_bet_fail_2']; } if($userInfo['bet_type'] == 2){ $session_id = $userInfo['api_token']; $sessionInfo = Session::get(['session_id' => $session_id]); if(!$sessionInfo){ Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_9', 'detail' => 'session_not_found']); return ['status' => false, 'msg' => 'to_bet_fail_9']; } if(!$sessionInfo['server_status']){ Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_10', 'detail' => 'server_status_off']); return ['status' => false, 'msg' => 'to_bet_fail_10']; } } // 使用 InitTableService::initTable 获取当前靴的最新一局,与其他服务保持一致 $numberTabInfo = InitTableService::initTable($tableInfo); if ($numberTabInfo['id'] != $numberTabId){ Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_5', 'detail' => 'number_tab_mismatch']); return ['status' => false, 'msg' => 'to_bet_fail_5']; } if ($numberTabInfo['bet_status'] != 1 || time() > ($numberTabInfo['bet_start_time'] + $tableInfo['wait_time'])){ Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_4', 'detail' => 'bet_closed_or_timeout']); return ['status' => false, 'msg' => 'to_bet_fail_4']; } // 超过50局幸运6禁止下注 if ($numberTabInfo['number'] > 50 && isset($event['luck_six_amount']) && $event['luck_six_amount'] > 0){ Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_7', 'detail' => 'luck_six_over_50_rounds']); return ['status' => false, 'msg' => 'to_bet_fail_7']; } // 超过30局大小禁止下注 if ($numberTabInfo['number'] > 30 && isset($event['big_amount']) && $event['big_amount'] > 0){ Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_8', 'detail' => 'big_over_30_rounds']); return ['status' => false, 'msg' => 'to_bet_fail_8']; } if ($numberTabInfo['number'] > 30 && isset($event['small_amount']) && $event['small_amount'] > 0){ Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_8', 'detail' => 'small_over_30_rounds']); return ['status' => false, 'msg' => 'to_bet_fail_8']; } if($userInfo['win_limit'] > 0){ $winTotalToday = Bet::getWinTotalToday($userInfo['id']); if($winTotalToday >= $userInfo['win_limit']){ Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'win_limit_tip', 'detail' => 'daily_win_limit_reached']); return ['status' => false, 'msg' => 'win_limit_tip']; } } if ($userInfo['money'] < $amount){ Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_1', 'detail' => 'insufficient_balance']); return ['status' => false, 'msg' => 'to_bet_fail_1']; } return ['status' => true, 'numberTabInfo' => $numberTabInfo, 'userInfo' => $userInfo]; /** 通用检验重复部分结束 */ } }