Socket/app/services/connect/GetCardService.php
2026-01-28 23:48:20 +08:00

239 lines
12 KiB
PHP

<?php
namespace app\services\connect;
use freedom\utils\CardPosition;
use freedom\utils\CardPositionNn;
use freedom\utils\CardPositionTc;
use freedom\utils\RedisUtil;
/**
* TODO 登录成功卡片获取服务
* Class GetCardService
* @package app\services\connect
*/
class GetCardService
{
/**
* TODO 控制台登录处理
* @param array $tableInfo
* @param array $numberTabInfo
* @return array
*/
public static function getCard(array $tableInfo, array $numberTabInfo): array
{
if ($tableInfo['is_scavenging'] != 1 || $numberTabInfo['bet_status'] != 2) return [];
$showCard = array();
if ($tableInfo['game_id'] == 4){
$cardInfo = RedisUtil::getCard($numberTabInfo['id']);
if (!$cardInfo) return [];
if($cardInfo['card_first'] > 0){
$pushArray = array('card' => $cardInfo['card_first'], 'order_num' => '0');
array_push($showCard,$pushArray);
}
if($cardInfo['player_1_card_1'] > 0){
$pushArray = array('card' => $cardInfo['player_1_card_1'], 'order_num' => '11');
array_push($showCard,$pushArray);
}
if($cardInfo['player_1_card_2'] > 0){
$pushArray = array('card' => $cardInfo['player_1_card_2'], 'order_num' => '12');
array_push($showCard,$pushArray);
}
if($cardInfo['player_1_card_3'] > 0){
$pushArray = array('card' => $cardInfo['player_1_card_3'], 'order_num' => '13');
array_push($showCard,$pushArray);
}
if($cardInfo['player_1_card_4'] > 0){
$pushArray = array('card' => $cardInfo['player_1_card_4'], 'order_num' => '14');
array_push($showCard,$pushArray);
}
if($cardInfo['player_1_card_5'] > 0){
$player1Card[0] = $cardInfo['player_1_card_1'];
$player1Card[1] = $cardInfo['player_1_card_2'];
$player1Card[2] = $cardInfo['player_1_card_3'];
$player1Card[3] = $cardInfo['player_1_card_4'];
$player1Card[4] = $cardInfo['player_1_card_5'];
$player1Result = CardPositionNn::JudgeCowCow($player1Card);
$pushArray = array('card' => $cardInfo['player_1_card_5'], 'order_num' => '15', 'result' => $player1Result['word']);
array_push($showCard,$pushArray);
}
if($cardInfo['player_2_card_1'] > 0){
$pushArray = array('card' => $cardInfo['player_2_card_1'], 'order_num' => '21');
array_push($showCard,$pushArray);
}
if($cardInfo['player_2_card_2'] > 0){
$pushArray = array('card' => $cardInfo['player_2_card_2'], 'order_num' => '22');
array_push($showCard,$pushArray);
}
if($cardInfo['player_2_card_3'] > 0){
$pushArray = array('card' => $cardInfo['player_2_card_3'], 'order_num' => '23');
array_push($showCard,$pushArray);
}
if($cardInfo['player_2_card_4'] > 0){
$pushArray = array('card' => $cardInfo['player_2_card_4'], 'order_num' => '24');
array_push($showCard,$pushArray);
}
if($cardInfo['player_2_card_5'] > 0){
$player2Card[0] = $cardInfo['player_2_card_1'];
$player2Card[1] = $cardInfo['player_2_card_2'];
$player2Card[2] = $cardInfo['player_2_card_3'];
$player2Card[3] = $cardInfo['player_2_card_4'];
$player2Card[4] = $cardInfo['player_2_card_5'];
$player2Result = CardPositionNn::JudgeCowCow($player2Card);
$pushArray = array('card' => $cardInfo['player_2_card_5'], 'order_num' => '25', 'result' => $player2Result['word']);
array_push($showCard,$pushArray);
}
if($cardInfo['player_3_card_1'] > 0){
$pushArray = array('card' => $cardInfo['player_3_card_1'], 'order_num' => '31');
array_push($showCard,$pushArray);
}
if($cardInfo['player_3_card_2'] > 0){
$pushArray = array('card' => $cardInfo['player_3_card_2'], 'order_num' => '32');
array_push($showCard,$pushArray);
}
if($cardInfo['player_3_card_3'] > 0){
$pushArray = array('card' => $cardInfo['player_3_card_3'], 'order_num' => '33');
array_push($showCard,$pushArray);
}
if($cardInfo['player_3_card_4'] > 0){
$pushArray = array('card' => $cardInfo['player_3_card_4'], 'order_num' => '34');
array_push($showCard,$pushArray);
}
if($cardInfo['player_3_card_5'] > 0){
$player3Card[0] = $cardInfo['player_3_card_1'];
$player3Card[1] = $cardInfo['player_3_card_2'];
$player3Card[2] = $cardInfo['player_3_card_3'];
$player3Card[3] = $cardInfo['player_3_card_4'];
$player3Card[4] = $cardInfo['player_3_card_5'];
$player3Result = CardPositionNn::JudgeCowCow($player3Card);
$pushArray = array('card' => $cardInfo['player_3_card_5'], 'order_num' => '35', 'result' => $player3Result['word']);
array_push($showCard,$pushArray);
}
if($cardInfo['banker_card_1'] > 0){
$pushArray = array('card' => $cardInfo['banker_card_1'], 'order_num' => '41');
array_push($showCard,$pushArray);
}
if($cardInfo['banker_card_2'] > 0){
$pushArray = array('card' => $cardInfo['banker_card_2'], 'order_num' => '42');
array_push($showCard,$pushArray);
}
if($cardInfo['banker_card_3'] > 0){
$pushArray = array('card' => $cardInfo['banker_card_3'], 'order_num' => '43');
array_push($showCard,$pushArray);
}
if($cardInfo['banker_card_4'] > 0){
$pushArray = array('card' => $cardInfo['banker_card_4'], 'order_num' => '44');
array_push($showCard,$pushArray);
}
if($cardInfo['banker_card_5'] > 0){
$bankerCard[0] = $cardInfo['banker_card_1'];
$bankerCard[1] = $cardInfo['banker_card_2'];
$bankerCard[2] = $cardInfo['banker_card_3'];
$bankerCard[3] = $cardInfo['banker_card_4'];
$bankerCard[4] = $cardInfo['banker_card_5'];
$bankerResult = CardPositionNn::JudgeCowCow($bankerCard);
$pushArray = array('card' => $cardInfo['banker_card_5'], 'order_num' => '45', 'result' => $bankerResult['word']);
array_push($showCard,$pushArray);
}
}elseif($tableInfo['game_id'] == 5){
$cardInfo = RedisUtil::getCard($numberTabInfo['id']);
if (!$cardInfo) return [];
if($cardInfo['card_first'] > 0){
$pushArray = array('card' => $cardInfo['card_first'], 'order_num' => '0');
array_push($showCard,$pushArray);
}
if($cardInfo['player_1_card_1'] > 0){
$pushArray = array('card' => $cardInfo['player_1_card_1'], 'order_num' => '11');
array_push($showCard,$pushArray);
}
if($cardInfo['player_1_card_2'] > 0){
$pushArray = array('card' => $cardInfo['player_1_card_2'], 'order_num' => '12');
array_push($showCard,$pushArray);
}
if($cardInfo['player_1_card_3'] > 0){
$player1Card[0] = $cardInfo['player_1_card_1'];
$player1Card[1] = $cardInfo['player_1_card_2'];
$player1Card[2] = $cardInfo['player_1_card_3'];
$player1Result = CardPositionTc::ThredCardCowCow($player1Card);
$pushArray = array('card' => $cardInfo['player_1_card_3'], 'order_num' => '13', 'result' => $player1Result['word']);
array_push($showCard,$pushArray);
}
if($cardInfo['player_2_card_1'] > 0){
$pushArray = array('card' => $cardInfo['player_2_card_1'], 'order_num' => '21');
array_push($showCard,$pushArray);
}
if($cardInfo['player_2_card_2'] > 0){
$pushArray = array('card' => $cardInfo['player_2_card_2'], 'order_num' => '22');
array_push($showCard,$pushArray);
}
if($cardInfo['player_2_card_3'] > 0){
$player2Card[0] = $cardInfo['player_2_card_1'];
$player2Card[1] = $cardInfo['player_2_card_2'];
$player2Card[2] = $cardInfo['player_2_card_3'];
$player2Result = CardPositionTc::ThredCardCowCow($player2Card);
$pushArray = array('card' => $cardInfo['player_2_card_3'], 'order_num' => '23', 'result' => $player2Result['word']);
array_push($showCard,$pushArray);
}
if($cardInfo['player_3_card_1'] > 0){
$pushArray = array('card' => $cardInfo['player_3_card_1'], 'order_num' => '31');
array_push($showCard,$pushArray);
}
if($cardInfo['player_3_card_2'] > 0){
$pushArray = array('card' => $cardInfo['player_3_card_2'], 'order_num' => '32');
array_push($showCard,$pushArray);
}
if($cardInfo['player_3_card_3'] > 0){
$player3Card[0] = $cardInfo['player_3_card_1'];
$player3Card[1] = $cardInfo['player_3_card_2'];
$player3Card[2] = $cardInfo['player_3_card_3'];
$player3Result = CardPositionTc::ThredCardCowCow($player3Card);
$pushArray = array('card' => $cardInfo['player_3_card_3'], 'order_num' => '33', 'result' => $player3Result['word']);
array_push($showCard,$pushArray);
}
if($cardInfo['banker_card_1'] > 0){
$pushArray = array('card' => $cardInfo['banker_card_1'], 'order_num' => '41');
array_push($showCard,$pushArray);
}
if($cardInfo['banker_card_2'] > 0){
$pushArray = array('card' => $cardInfo['banker_card_2'], 'order_num' => '42');
array_push($showCard,$pushArray);
}
if($cardInfo['banker_card_3'] > 0){
$bankerCard[0] = $cardInfo['banker_card_1'];
$bankerCard[1] = $cardInfo['banker_card_2'];
$bankerCard[2] = $cardInfo['banker_card_3'];
$bankerResult = CardPositionTc::ThredCardCowCow($bankerCard);
$pushArray = array('card' => $cardInfo['banker_card_3'], 'order_num' => '43', 'result' => $bankerResult['word']);
array_push($showCard,$pushArray);
}
}else{
$cardInfo = RedisUtil::getCardPosition($numberTabInfo['id']);
foreach ($cardInfo AS $k => $v){
switch ($k){
case 'banker_1':
$showCard[] = ['position' => 21, 'card' => intval($v), 'number' => CardPosition::interchangeCard($v)];
break;
case 'banker_2':
$showCard[] = ['position' => 22, 'card' => intval($v), 'number' => CardPosition::interchangeCard($v)];
break;
case 'banker_3':
$showCard[] = ['position' => 23, 'card' => intval($v), 'number' => CardPosition::interchangeCard($v)];
break;
case 'player_1':
$showCard[] = ['position' => 11, 'card' => intval($v), 'number' => CardPosition::interchangeCard($v)];
break;
case 'player_2':
$showCard[] = ['position' => 12, 'card' => intval($v), 'number' => CardPosition::interchangeCard($v)];
break;
case 'player_3':
$showCard[] = ['position' => 13, 'card' => intval($v), 'number' => CardPosition::interchangeCard($v)];
break;
}
}
}
return $showCard;
}
}