diff --git a/app/Model/Dlt.php b/app/Model/Dlt.php index a319a154..06cd3b23 100755 --- a/app/Model/Dlt.php +++ b/app/Model/Dlt.php @@ -31,4 +31,14 @@ class Dlt extends BaseModel $time = strtotime($this->close_time); return date('Y-m-d H:i:s', $time - $earlySecond); } + + function getPrizePool() { + // 匹配"亿"单位的数字,支持"7.99亿"格式 + $pattern = '/(\d+(?:\.\d+)?)亿/'; + $matches = []; + if (preg_match($pattern, $this->prize, $matches)) { + return floatval($matches[1]); + } + return 0; + } } diff --git a/app/Service/DltService.php b/app/Service/DltService.php index e05eb218..5bc19bb9 100755 --- a/app/Service/DltService.php +++ b/app/Service/DltService.php @@ -685,9 +685,105 @@ class DltService implements IJingcai } return $piaos; } - - public function danshiWinPrize(Dlt $dlt, $oddData, $enableAdd = 0) + { + $prizePool = $dlt->getPrizePool(); + + $resultQian = $dlt->qian; + $resultHou = $dlt->hou; + $qian = $oddData['qian']; + $hou = $oddData['hou']; + $qianInters = array_intersect($resultQian, $qian); + $houInters = array_intersect($resultHou, $hou); + + $qianIntersCount = count($qianInters); + $houIntersCount = count($houInters); + if ($qianIntersCount == 5 && $houIntersCount == 2) { + $endPrize = $dlt->base1_prize; + if ($enableAdd) { + $endPrize += $dlt->add1_prize; + } + return [ + 'rank' => 1, + 'prize' => $endPrize, + 'prize_after_tax' => Config::getAfterTaxPrize($endPrize), + ]; + } + if ($qianIntersCount == 5 && $houIntersCount == 1) { + $endPrize = $dlt->base2_prize; + if ($enableAdd) { + $endPrize += $dlt->add2_prize; + } + return [ + 'rank' => 2, + 'prize' => $endPrize, + 'prize_after_tax' => Config::getAfterTaxPrize($endPrize), + ]; + } + if (($qianIntersCount == 5 && $houIntersCount == 0) || + ($qianIntersCount == 4 && $houIntersCount == 2)) { + $eprize = 5000; + if ($prizePool >= 8.00) { + $eprize = 6666; + } + return [ + 'rank' => 3, + 'prize' => $eprize, + 'prize_after_tax' => Config::getAfterTaxPrize($eprize), + ]; + } + if ($qianIntersCount == 4 && $houIntersCount == 1) { + $eprize = 300; + if ($prizePool >= 8.00) { + $eprize = 380; + } + return [ + 'rank' => 4, + 'prize' => $eprize, + 'prize_after_tax' => Config::getAfterTaxPrize($eprize), + ]; + } + if (($qianIntersCount == 4 && $houIntersCount == 0) || + ($qianIntersCount == 3 && $houIntersCount == 2)) { + $eprize = 150; + if ($prizePool >= 8.00) { + $eprize = 200; + } + return [ + 'rank' => 5, + 'prize' => $eprize, + 'prize_after_tax' => Config::getAfterTaxPrize($eprize), + ]; + } + if (($qianIntersCount == 3 && $houIntersCount == 1) || + ($qianIntersCount == 2 && $houIntersCount == 2)) { + $eprize = 15; + if ($prizePool >= 8.00) { + $eprize = 18; + } + return [ + 'rank' => 6, + 'prize' => $eprize, + 'prize_after_tax' => Config::getAfterTaxPrize($eprize), + ]; + } + if (($qianIntersCount == 3 && $houIntersCount == 0) || + ($qianIntersCount == 2 && $houIntersCount == 1) || + ($qianIntersCount == 1 && $houIntersCount == 2) || + ($qianIntersCount == 0 && $houIntersCount == 2)) { + $eprize = 5; + if ($prizePool >= 8.00) { + $eprize = 7; + } + return [ + 'rank' => 7, + 'prize' => $eprize, + 'prize_after_tax' => Config::getAfterTaxPrize($eprize), + ]; + } + return null; + } + public function danshiWinPrize_old(Dlt $dlt, $oddData, $enableAdd = 0) { $resultQian = $dlt->qian; $resultHou = $dlt->hou;