| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135 |
- <?php
- use app\models\SportEvent;
- /***************胜相关的玩法***************** */
- /**
- * 全场胜负(Match Winner) 玩法
- * 主胜(Home)、平局(Draw)、客胜(Away)
- * $amount:下注金额
- * $params['score']:主队-客对
- * $detail:下注时的详情
- */
- function MatchWinner($amount, $detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $away = $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $value = $value_and_odd['value'];
- $odd = $value_and_odd['odd'];
- $is_win = 0;
- if ($home > $away && $value == 'Home') {
- $is_win = 1;
- } elseif ($away > $home && $value == 'Away') {
- $is_win = 1;
- } elseif ($home == $away && $value == 'Draw') {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Home/Away(主胜/客胜) 玩法(平局不输不赢)
- * 主胜(Home)、平局(Draw)、客胜(Away)
- * $amount:下注金额
- * $params['score']:主队-客对
- * $detail:下注时的详情
- */
- function HomeAwayWinner($amount, $detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $away = $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $value = $value_and_odd['value'];
- $odd = $value_and_odd['odd'];
- $is_win = 0;
- if ($home > $away && $value == 'Home') {
- $is_win = 1;
- } elseif ($away > $home && $value == 'Away') {
- $is_win = 1;
- } elseif ($home == $away && $value == 'Draw') {
- $is_win = 2;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Second Half Winner(下半场胜负) 玩法
- * 主胜(Home)、平局(Draw)、客胜(Away)
- * $amount:下注金额
- * $half_score:上半场比分
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function SecondHalfWinner($amount, $detail, $params)
- {
- $score = getHalfScore($params['score'], $params['half_score']);
- $home = $score['home'];
- $away = $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $value = $value_and_odd['value'];
- $odd = $value_and_odd['odd'];
- $is_win = 0;
- if ($home > $away && $value == 'Home') {
- $is_win = 1;
- } elseif ($away > $home && $value == 'Away') {
- $is_win = 1;
- } elseif ($home == $away && $value == 'Draw') {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Win to Nil - Home(主队零封获胜:主队赢,客队的进球数为 0) 玩法
- * -yes: 主队零封获胜就中奖
- * -no: 非主队零封获胜就中奖
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function WinToNilHomeWinner($amount, $detail, $params)
- {
- }
- /**
- * First Half Winner(上半场胜负) 玩法
- * 主胜(Home)、平局(Draw)、客胜(Away)
- * $amount:下注金额
- * $half_score:上半场比分
- * $detail:下注时的详情
- */
- function FirstHalfWinner($amount, $detail, $params)
- {
- $score = getScore($params['half_score']);
- $home = $score['home'];
- $away = $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $value = $value_and_odd['value'];
- $odd = $value_and_odd['odd'];
- $is_win = 0;
- if ($home > $away && $value == 'Home') {
- $is_win = 1;
- } elseif ($away > $home && $value == 'Away') {
- $is_win = 1;
- } elseif ($home == $away && $value == 'Draw') {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Win Both Halves(上下半场均获胜) 玩法
- * -Home: 主队上下半场都赢就中奖
- * -Away: 客队上下半场都赢就中奖
- * $amount:下注金额
- * $params['half_score']:上半场比分
- * $params['score']:主队-客对
- * $detail:下注时的详情
- */
- function WinBothHalvesWinner($amount, $detail, $params)
- {
- //上半场得分
- $score = getScore($params['half_score']);
- $home_first_half = $score['home'];
- $away_first_half = $score['away'];
- //下半场得分
- $score = getHalfScore($params['score'], $params['half_score']);
- $home_second_half = $score['home'];
- $away_second_half = $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $value = $value_and_odd['value'];
- $odd = $value_and_odd['odd'];
- $is_win = 0;
- if ($home_first_half > $away_first_half && $home_second_half > $away_second_half && $value == 'Home') {
- $is_win = 1; //主胜
- } elseif ($home_first_half < $away_first_half && $home_second_half < $away_second_half && $value == 'Away') {
- $is_win = 1; //客胜
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Double Chance(双选胜平负) 玩法
- * -Home or Draw:主队赢或打平就中奖
- * -Away or Draw:客队赢或打平就中奖
- * -Home or Away:只要分出胜负你就中奖
- * $amount:下注金额
- * $params['score']:主队-客对
- * $detail:下注时的详情
- */
- function DoubleChance($amount, $detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $away = $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $value = $value_and_odd['value'];
- $odd = $value_and_odd['odd'];
- $is_win = 0;
- if ($home >= $away && ($value == 'Home or Draw' || $value == 'Home/Draw')) {
- $is_win = 1;
- } elseif ($away >= $home && ($value == 'Away or Draw' || $value == 'Away/Draw')) {
- $is_win = 1;
- } elseif ($home != $away && ($value == 'Home or Away' || $value == 'Home/Away')) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Double Chance - First Half(上半场双选胜平负) 玩法
- * -Home or Draw:主队赢或打平就中奖
- * -Away or Draw:客队赢或打平就中奖
- * -Home or Away:只要分出胜负你就中奖
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function DoubleChanceFirstHalf($amount, $detail, $params)
- {
- $score = getScore($params['half_score']);
- $home = $score['home'];
- $away = $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $value = $value_and_odd['value'];
- $odd = $value_and_odd['odd'];
- $is_win = 0;
- if ($home >= $away && ($value == 'Home or Draw' || $value == 'Home/Draw')) {
- $is_win = 1;
- } elseif ($away >= $home && ($value == 'Away or Draw' || $value == 'Away/Draw')) {
- $is_win = 1;
- } elseif ($home != $away && ($value == 'Home or Away' || $value == 'Home/Away')) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /***************进球相关的玩法***************** */
- /**
- * Both Teams Score(双方均有进球) 玩法
- * -Yes: 预测两支球队在比赛中都能至少攻入 1 球
- * -No: 预测至少有一支球队进球数为 0(或者两队都没有进球)
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function BothTeamsScore($amount, $detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $away = $score['away'];
- return getBothTeamsScore($amount, $home, $away,$detail);
- }
- /**
- * Team To Score First(首支进球球队) 玩法
- * -Home: 预测主队打入全场第一个进球
- * -Away: 预测客队打入全场第一个进球
- * -Draw: 预测两队打平
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function TeamToScoreFirst($amount, $detail, $params)
- {
- return teamToScore($amount, $detail, $params['data_id'], $params['home_team_id'], $params['guest_team_id'], 'first');
- }
- /**
- * Team To Score Last(首支进球球队) 玩法
- * -Home: 预测主队打入全场第一个进球
- * -Away: 预测客队打入全场第一个进球
- * -Draw: 预测两队打平
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function TeamToScoreLast($amount, $detail, $params)
- {
- return teamToScore($amount, $detail, $params['data_id'], $params['home_team_id'], $params['guest_team_id'], 'last');
- }
- function teamToScore($amount, $detail, $data_id, $home_team_id, $away_team_id, $type = 'first')
- {
- $order = $type == 'first' ? 'asc' : 'desc';
- $team_id = SportEvent::where('data_id', $data_id)->where('type', 'Goal')->order('time_elapsed', $order)->value('team_id');
- $value_and_odd = getValueAndOdd($detail);
- $value = $value_and_odd['value'];
- $odd = $value_and_odd['odd'];
-
- $is_win = 0;
- if ($home_team_id == $team_id && strtolower($value) == 'home' ) {
- $is_win = 1;
- } elseif ($away_team_id == $team_id && strtolower($value) == 'away' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Total - Home(主队总进球数) 玩法
- * -Over 1.5: 预测主队至少打进 2 个 或更多球
- * -Under 1.5: 预测主队进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function TotalHome($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- return totalHomeOrAway($amount, $home,$detail);
- }
- /**
- * Total - Away(客队总进球数) 玩法
- * -Over 1.5: 预测客队至少打进 2 个 或更多球
- * -Under 1.5: 预测客队进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function TotalAway($amount, $detail, $params)
- {
- $score = getScore($params['score']);
- $away = $score['away'];
- return totalHomeOrAway($amount, $away,$detail);
- }
- /**
- * Both Teams Score - First Half(上半场双方均进球) 玩法
- * -Yes: 预测上半场结束时,两队都至少各进一球
- * -No: 预测上半场结束时,至少有一支球队没进球
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function BothTeamsScoreFirstHalf($amount,$detail, $params)
- {
- $score = getScore($params['half_score']);
- $home = $score['home'];
- $away = $score['away'];
- return getBothTeamsScore($amount, $home, $away, $detail);
- }
- /**
- * Both Teams To Score - Second Half(下半场双方均进球) 玩法
- * -Yes: 预测下半场结束时,两队都至少各进一球
- * -No: 预测下半场结束时,至少有一支球队没进球
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function BothTeamsScoreSecondHalf($amount,$detail, $params)
- {
- $half_score = getHalfScore($params['score'], $params['half_score']);
- $half_home = $half_score['home'];
- $half_away = $half_score['away'];
- return getBothTeamsScore($amount, $half_home, $half_away, $detail);
- }
- //双方均进球的处理方法
- function getBothTeamsScore($amount, $home, $away,$detail)
- {
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if ($home > 0 && $away > 0 && strtolower($value) == 'yes' ) {
- $is_win = 1;
- } elseif (($away == 0 || $home == 0) && strtolower($value) == 'no' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Odd/Even(总进球数奇偶) 玩法
- * -Yes: 预测上半场结束时,两队都至少各进一球
- * -No: 预测上半场结束时,至少有一支球队没进球
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function OddEven($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $goals = $score['home'] + $score['away'];
- return getOddEven($amount, $goals, $detail);
- }
- /**
- * Odd/Even - First Half(上半场进球奇偶) 玩法
- * -Odd: 进球数除以 2 余 1
- * -Even: 进球数除以 2 余 0
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function OddEvenFirstHalf($amount,$detail, $params)
- {
- $score = getScore($params['half_score']);
- $half_goals = $score['home'] + $score['away'];
- return getOddEven($amount, $half_goals, $detail);
- }
- /**
- * Odd/Even - Second Half(下半场进球奇偶) 玩法
- * -Odd: 进球数除以 2 余 1
- * -Even: 进球数除以 2 余 0
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function OddEvenSecondHalf($amount,$detail, $params)
- {
- $score = getHalfScore($params['score'], $params['half_score']);
- $half_goals = $score['home'] + $score['away'];
- return getOddEven($amount, $half_goals, $detail);
- }
- /**
- * Home Odd/Even(主队进球奇偶) 玩法
- * -Odd: 进球数除以 2 余 1
- * -Even: 进球数除以 2 余 0
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function HomeOddEven($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- return getOddEven($amount, $home, $detail);
- }
- /**
- * Away Odd/Even(客队进球奇偶) 玩法
- * -Odd: 进球数除以 2 余 1
- * -Even: 进球数除以 2 余 0
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function AwayOddEven($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $away = $score['away'];
- return getOddEven($amount, $away, $detail);
- }
- //进球数奇偶的处理方法
- function getOddEven($amount, $goals,$detail)
- {
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if ($goals % 2 == 1 && strtolower($value) == 'odd' ) {
- $is_win = 1;
- } elseif ($goals % 2 == 0 && strtolower($value) == 'even' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Home Team Total Goals(1st Half)(主队上半场总进球) 玩法
- * -Over 1.5: 预测主队上半场至少打进 2 个 或更多球
- * -Under 1.5: 预测主队上半场进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function HomeTeamTotalGoals($amount,$detail, $params)
- {
- $score = getScore($params['half_score']);
- $home = $score['home'];
- return totalHomeOrAway($amount, $home,$detail);
- }
- /**
- * Away Team Total Goals(1st Half)(客队上半场总进球) 玩法
- * -Over 1.5: 预测客队上半场至少打进 2 个 或更多球
- * -Under 1.5: 预测客队上半场进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function AwayTeamTotalGoals($amount,$detail, $params)
- {
- $score = getScore($params['half_score']);
- $away = $score['away'];
- return totalHomeOrAway($amount, $away,$detail);
- }
- /**
- * Home Team Total Goals(2nd Half)(主队下半场总进球) 玩法
- * -Over 1.5: 预测主队下半场至少打进 2 个 或更多球
- * -Under 1.5: 预测主队下半场进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function HomeTeamTotalGoals2($amount,$detail, $params)
- {
- $score = getHalfScore($params['score'], $params['half_score']);
- $home_half = $score['home'];
- return totalHomeOrAway($amount, $home_half,$detail);
- }
- /**
- * Away Team Total Goals(2nd Half)(客队下半场总进球) 玩法
- * -Over 1.5: 预测客队下半场至少打进 2 个 或更多球
- * -Under 1.5: 预测客队下半场进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function AwayTeamTotalGoals2($amount,$detail, $params)
- {
- $score = getHalfScore($params['score'], $params['half_score']);
- $away_half = $score['away'];
- return totalHomeOrAway($amount, $away_half,$detail);
- }
- //$score:主队/客队的进球数
- function totalHomeOrAway($amount, $score,$detail)
- {
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $value = explode(' ', $value);
- $type = $value[0];
- $goal = $value[1];
- $is_win = 0;
- if ($score > $goal && strtolower($type) == 'over' ) {
- $is_win = 1;
- } elseif ($score < $goal && strtolower($type) == 'under' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Total Goals/Both Teams To Score(总进球+双方进球) 玩法
- * -o/yes 2.5: 大于 2.5 且 双方进球
- * -o/no 2.5: 大于 2.5 且 双方不同时进球(有一方为0)
- * -u/yes 2.5: 小于 2.5 且 双方进球
- * -u/no 2.5: 小于 2.5 且 双方不同时进球(且至少有一队没进球)
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function TotalGoalsBothTeamsToScore($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $away = $score['away'];
- $score = $home + $away;
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $value = explode(' ', $value);
- $type = $value[0];
- $goal = $value[1];
- $is_win = 0;
- if ($score > $goal && $home > 0 && $away > 0 && strtolower($type) == 'o/yes' ) {
- $is_win = 1;
- } elseif ($score > $goal && ($home == 0 || $away == 0) && strtolower($type) == 'o/no' ) {
- $is_win = 1;
- } elseif ($score < $goal && $home > 0 && $away > 0 && strtolower($type) == 'u/yes' ) {
- $is_win = 1;
- } elseif ($score < $goal && ($home == 0 || $away == 0) && strtolower($type) == 'u/no' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * RTG_H1(上半场进球数(简写)) 玩法
- * -Draw/Over 1.5: 平局 + 大 1.5 上半场打平 且 总进球≥2
- * -Away/Over 1.5: 客胜 + 大 1.5 上半场客队赢 且 总进球≥2
- * -Home/Over 1.5 主胜 + 大 1.5 上半场主队赢 且 总进球≥2
- * -Home/Under 1.5 主胜 + 小 1.5 上半场主队赢 且 总进球≤1
- * -Draw/Under 1.5 平局 + 小 1.5 上半场打平 且 总进球≤1
- * -Away/Under 1.5 客胜 + 小 1.5 上半场客队赢 且 总进球≤1
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function RTGH1($amount,$detail, $params)
- {
- $score = getScore($params['half_score']);
- $home = $score['home'];
- $away = $score['away'];
- $score = $home + $away;
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $value = explode(' ', $value);
- $type = $value[0];
- $goal = $value[1];
- $is_win = 0;
- if ($score > $goal && $home == $away && strtolower($type) == 'draw/over' ) {
- $is_win = 1;
- } elseif ($score > $goal && $home < $away && strtolower($type) == 'away/over' ) {
- $is_win = 1;
- } elseif ($score > $goal && $home > $away && strtolower($type) == 'home/over' ) {
- $is_win = 1;
- } elseif ($score < $goal && $home > $away && strtolower($type) == 'home/under' ) {
- $is_win = 1;
- } elseif ($score < $goal && $home == $away && strtolower($type) == 'draw/under' ) {
- $is_win = 1;
- } elseif ($score < $goal && $home < $away && strtolower($type) == 'away/under' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Home team will score in both halves(主队上下半场均进球) 玩法
- * -yes: 主队在上半场至少进一球,且在下半场也至少进一球。
- * -no: 主队在其中一个半场没进球,或者两个半场都没进球
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function HomeTeamWillScoreInBothHalves($amount,$detail, $params)
- {
- $score = getScore($params['half_score']);
- $home = $score['home'];
- $half_score = getHalfScore($params['score'], $params['half_score']);
- $home_half = $half_score['home'];
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if ($home > 0 && $home_half > 0 && strtolower($value) == 'yes' ) {
- $is_win = 1;
- } elseif (($home == 0 || $home_half == 0) && strtolower($value) == 'no' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Away team will score in both halves(客队上下半场均进球) 玩法
- * -yes: 客队在上半场至少进一球,且在下半场也至少进一球。
- * -no: 客队在其中一个半场没进球,或者两个半场都没进球。
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function AwayTeamWillScoreInBothHalves($amount,$detail, $params)
- {
- $score = getScore($params['half_score']);
- $away = $score['away'];
- $half_score = getHalfScore($params['score'], $params['half_score']);
- $away_half = $half_score['away'];
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if ($away > 0 && $away_half > 0 && strtolower($value) == 'yes' ) {
- $is_win = 1;
- } elseif (($away == 0 || $away_half == 0) && strtolower($value) == 'no' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * How many goals will Home Team score?(主队进球数) 玩法
- * -No goal: 主队全场 0 进球
- * -1: 主队恰好进 1 个球
- * -2: 主队恰好进 2 个球
- * -3 or more: 主队射门 3 个或更多球
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function HowManyGoalsWillHomeTeamScore($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if ($home == 0 && strtolower($value) == 'no goal' ) {
- $is_win = 1;
- } elseif (is_numeric($value) && $home == $value ) {
- $is_win = 1;
- } elseif (strpos($value, 'or more') !== false && $home >= intval($value)) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * How many goals will Away Team score?(客队进球数) 玩法
- * -No goal: 客队全场 0 进球
- * -1: 客队恰好进 1 个球
- * -2: 客队恰好进 2 个球
- * -3 or more: 客队打进 3 个或更多球
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function HowManyGoalsWillAwayTeamScore($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $away = $score['away'];
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if ($away == 0 && strtolower($value) == 'no goal' ) {
- $is_win = 1;
- } elseif (is_numeric($value) && $away == $value ) {
- $is_win = 1;
- } elseif (strpos($value, 'or more') !== false && $away >= intval($value)) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Match Goals(全场进球,按盘口分类) 玩法
- * -value: over/under
- * -handicap: 1.5 2.5 ..
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function MatchGoals($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $score = $score['home'] + $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $handicap = $value_and_odd['handicap'];
- $is_win = 0;
- if ($score > $handicap && strtolower($value) == 'over' ) {
- $is_win = 1;
- } elseif ($score < $handicap && strtolower($value) == 'under' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Home Team Goals(主队进球,按盘口分类) 玩法
- * -value: over/under
- * -handicap: 1.5 2.5 ..
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function HomeTeamGoals($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
-
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $handicap = $value_and_odd['handicap'];
- $is_win = 0;
- if ($home > $handicap && strtolower($value) == 'over' ) {
- $is_win = 1;
- } elseif ($home < $handicap && strtolower($value) == 'under' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Away Team Goals(客队进球,按盘口分类) 玩法
- * -value: over/under
- * -handicap: 1.5 2.5 ..
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function AwayTeamGoals($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $away = $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $handicap = $value_and_odd['handicap'];
- $is_win = 0;
- if ($away > $handicap && strtolower($value) == 'over' ) {
- $is_win = 1;
- } elseif ($away < $handicap && strtolower($value) == 'under' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Home Team Score a Goal (2nd Half)(主队下半场进球) 玩法
- * -Yes: 主队在下半场至少打进一球
- * -No: 主队在下半场一个球都不进
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function HomeTeamScoreAGoal2($amount,$detail, $params)
- {
- $half_score = getHalfScore($params['score'], $params['half_score']);
- $home_half = $half_score['home'];
-
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if ($home_half > 0 && strtolower($value) == 'yes' ) {
- $is_win = 1;
- } elseif ($home_half == 0 && strtolower($value) == 'no' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Away Team Score a Goal (2nd Half)(客队下半场进球) 玩法
- * -Yes: 客队在下半场至少打进一球
- * -No: 客队在下半场一个球都不进
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function AwayTeamScoreAGoal2($amount,$detail, $params)
- {
- $half_score = getHalfScore($params['score'], $params['half_score']);
- $away_half = $half_score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if ($away_half > 0 && strtolower($value) == 'yes' ) {
- $is_win = 1;
- } elseif ($away_half == 0 && strtolower($value) == 'no' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Both Teams to Score(双方进球) 玩法
- * -yes: 主队有进球,且客队也有进球
- * -no: 至少有一支球队没进球
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function BothTeamsToScore($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $away = $score['away'];
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if ($home > 0 && $away > 0 && strtolower($value) == 'yes' ) {
- $is_win = 1;
- } elseif (($home == 0 || $away == 0) && strtolower($value) == 'no' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Both Teams To Score (2nd Half)(下半场双方进球) 玩法
- * -yes: 下半场主队有进球,且下半场客队也有进球
- * -no: 下半场至少有一支球队没进球
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function BothTeamsToScore2($amount,$detail, $params)
- {
- $half_score = getHalfScore($params['score'], $params['half_score']);
- $home_half = $half_score['home'];
- $away_half = $half_score['away'];
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if ($home_half > 0 && $away_half > 0 && strtolower($value) == 'yes' ) {
- $is_win = 1;
- } elseif (($home_half == 0 || $away_half == 0) && strtolower($value) == 'no' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Goals Odd/Even (进球数奇偶) 玩法
- */
- function GoalsOddEven($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $goals = $score['home'] + $score['away'];
- return getOddEven($amount, $goals, $detail);
- }
- /**
- * Home Team Exact Goals Number(主队精确进球数) 玩法
- * -0: 预测主队全场比赛一个球都进不了
- * -1: 预测主队刚好只进 1 个球。
- * -more 2: 预测主队进球数达到或超过 2 个
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function HomeTeamExactGoalsNumber($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if (is_numeric($value) && $home == $value ) {
- $is_win = 1;
- } elseif (strpos($value, 'more') !== false && $home >= intval($value)) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Away Team Exact Goals Number(客队精确进球数) 玩法
- * -0: 预测客队全场比赛一个球都进不了
- * -1: 预测客队刚好只进 1 个球。
- * -more 2: 预测客队进球数达到或超过 2 个。
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function AwayTeamExactGoalsNumber($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $away = $score['away'];
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $is_win = 0;
- if (is_numeric($value) && $away == $value ) {
- $is_win = 1;
- } elseif (strpos($value, 'more') !== false && $away >= intval($value)) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Results/Both Teams Score(赛果+双方进球) 玩法
- * -Home/Yes: 主队赢球,且客队也进了球
- * -Away/Yes: 客队赢球,且主队也进了球
- * -Draw/Yes: 双方打平,且都有进球
- * -Home/No: 主队赢球,且零封了客队
- * -Away/No: 客队赢球,且零封了主队
- * -Draw/No: 双方打平,且都没有进球
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function ResultsBothTeamsScore($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $away = $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $value = strtolower($value_and_odd['value']);
- $odd = $value_and_odd['odd'];
- $is_win = 0;
- if ($home > $away && $away > 0 && ($value == 'home or yes' || $value == 'home/yes')) {
- $is_win = 1;
- } elseif ($away > $home && $home > 0 && ($value == 'away or yes' || $value == 'away/yes')) {
- $is_win = 1;
- } elseif ($home == $away && $home > 0 && $away >0 && ($value == 'draw or yes' || $value == 'draw/yes')) {
- $is_win = 1;
- } elseif ($home > $away && $away == 0 && ($value == 'home or no' || $value == 'home/no')) {
- $is_win = 1;
- } elseif ($away > $home && $home == 0 && ($value == 'away or no' || $value == 'away/no')) {
- $is_win = 1;
- } elseif ($home == $away && $home == 0 && $away == 0 && ($value == 'draw or no' || $value == 'draw/no')) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Result/Total Goals(赛果+总进球数) 玩法
- * -Draw/Over 1.5: 平局 + 大 1.5 总进球数打平 且 总进球≥2
- * -Away/Over 1.5: 客胜 + 大 1.5 总进球数赢 且 总进球≥2
- * -Home/Over 1.5 主胜 + 大 1.5 总进球数赢 且 总进球≥2
- * -Home/Under 1.5 主胜 + 小 1.5 总进球数赢 且 总进球≤1
- * -Draw/Under 1.5 平局 + 小 1.5 总进球数打平 且 总进球≤1
- * -Away/Under 1.5 客胜 + 小 1.5 总进球数赢 且 总进球≤1
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function ResultTotalGoals($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $away = $score['away'];
- $score = $home + $away;
-
- $value_and_odd = getValueAndOdd($detail);
- $odd = $value_and_odd['odd'];
- $value = $value_and_odd['value'];
- $value = explode(' ', $value);
- $type = $value[0];
- $goal = $value[1];
- $is_win = 0;
- if ($score > $goal && $home == $away && strtolower($type) == 'draw/over' ) {
- $is_win = 1;
- } elseif ($score > $goal && $home < $away && strtolower($type) == 'away/over' ) {
- $is_win = 1;
- } elseif ($score > $goal && $home > $away && strtolower($type) == 'home/over' ) {
- $is_win = 1;
- } elseif ($score < $goal && $home > $away && strtolower($type) == 'home/under' ) {
- $is_win = 1;
- } elseif ($score < $goal && $home == $away && strtolower($type) == 'draw/under' ) {
- $is_win = 1;
- } elseif ($score < $goal && $home < $away && strtolower($type) == 'away/under' ) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * Result / Both Teams To Score(赛果+双方进球) 玩法
- * -Home/Yes: 主队赢球,且客队也进了球
- * -Away/Yes: 客队赢球,且主队也进了球
- * -Draw/Yes: 双方打平,且都有进球
- * -Home/No: 主队赢球,且零封了客队
- * -Away/No: 客队赢球,且零封了主队
- * -Draw/No: 双方打平,且都没有进球
- * $amount:下注金额
- * $score:主队-客对
- * $detail:下注时的详情
- */
- function ResultBothTeamsToScore($amount,$detail, $params)
- {
- $score = getScore($params['score']);
- $home = $score['home'];
- $away = $score['away'];
-
- $value_and_odd = getValueAndOdd($detail);
- $value = strtolower($value_and_odd['value']);
- $odd = $value_and_odd['odd'];
- $is_win = 0;
- if ($home > $away && $away > 0 && ($value == 'home or yes' || $value == 'home/yes')) {
- $is_win = 1;
- } elseif ($away > $home && $home > 0 && ($value == 'away or yes' || $value == 'away/yes')) {
- $is_win = 1;
- } elseif ($home == $away && $home > 0 && $away >0 && ($value == 'draw or yes' || $value == 'draw/yes')) {
- $is_win = 1;
- } elseif ($home > $away && $away == 0 && ($value == 'home or no' || $value == 'home/no')) {
- $is_win = 1;
- } elseif ($away > $home && $home == 0 && ($value == 'away or no' || $value == 'away/no')) {
- $is_win = 1;
- } elseif ($home == $away && $home == 0 && $away == 0 && ($value == 'draw or no' || $value == 'draw/no')) {
- $is_win = 1;
- }
- return getResult($is_win, $amount, $odd);
- }
- /**
- * 获取主客队得分
- */
- function getScore($score) {
- $score = explode('-', $score);
- return [
- 'home' => (int)$score[0],
- 'away' => (int)$score[1],
- ];
- }
- /**
- * 获取下半场主客队得分
- */
- function getHalfScore($score, $half_score) {
- $score = explode('-', $score);
- $half_score = explode('-', $half_score);
- return [
- 'home' => (int)$score[0] - (int)$half_score[0],
- 'away' => (int)$score[1] - (int)$half_score[1],
- ];
- }
- /**
- * 获取比分
- * $type : 1 主队总进球数,2 客队总进球数, 3
- */
- function getValueAndOdd($detail) {
- $odds = $detail['odds'][0];
- $values = $odds['values'][0];
- return [
- 'value' => $values['value'],
- 'odd' => $values['odd'],
- 'handicap' => isset($values['handicap']) ? $values['handicap'] : 0,
- ];
- }
- function getResult($is_win, $amount, $odds) {
- //is_win:是否中奖:0没中奖1中奖2和局3平手半
- $result = [
- 'is_win' => 0, //是否中奖:0没中奖1中奖2和局3平手半
- 'win_amount' => 0, //中奖金额
- 'profit_and_loss' => -$amount, //盈亏金额
- 'settlement_status' => 1, //结算状态:1未结算2已结算3已取消
- ];
- if ($is_win == 1) {
- $result['is_win'] = 1;
- $result['win_amount'] = bcmul($amount, $odds, 2);
- $result['profit_and_loss'] = $result['win_amount'] - $amount;
- }
- if ($is_win == 2) {
- $result['is_win'] = 2;
- $result['win_amount'] = 0;
- $result['profit_and_loss'] = 0;
- }
- $result['settlement_status'] = 2;
- return $result;
- }
|