| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019/4/25
- * Time: 14:10
- */
- namespace App\Lib\Settlement\Adapter;
- class BqRule
- {
- /**
- * 全场|主队|让球
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_concede_home($model, $resultModel, $resultRecords) {
- $this -> bq_concede($model, $resultModel, $resultRecords, 1);
- }
- /**
- * 全场|客队|让球
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_concede_guest($model, $resultModel, $resultRecords) {
- $this -> bq_concede($model, $resultModel, $resultRecords, 2);
- }
- /**
- * 前五局|主队|让球
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_five_concede_home($model, $resultModel, $resultRecords) {
- $this -> concedefirstfiveinnings($model, $resultModel, $resultRecords, 1, 1);
- }
- /**
- * 前五局|客队|让球
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_five_concede_guest($model, $resultModel, $resultRecords) {
- $this -> concedefirstfiveinnings($model, $resultModel, $resultRecords, 2, 1);
- }
- /**
- * 全场|主队|独赢
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输
- */
- public function bq_capot_home($model, $resultModel, $resultRecords) {
- $this -> bq_capot($model, $resultModel, $resultRecords, 1);
- }
- /**
- * 全场|客队|独赢
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输
- */
- public function bq_capot_guest($model, $resultModel, $resultRecords) {
- $this -> bq_capot($model, $resultModel, $resultRecords, -1);
- }
- /**
- * 全场|总得分|大
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_total_number_big($model, $resultModel, $resultRecords){
- return $this -> sizeCommon($model, $resultModel, $resultRecords, 1);
- }
- /**
- * 全场|总得分|小
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_total_number_small($model, $resultModel, $resultRecords){
- return $this -> sizeCommon($model, $resultModel, $resultRecords, 2);
- }
- /**
- * 前五局|总得分|小
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_five_total_number_big($model, $resultModel, $resultRecords){
- return $this -> sizeCommonfirstfiveinnings($model, $resultModel, $resultRecords, 1);
- }
- /**
- * 前五局|总得分|小
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_five_total_number_small($model, $resultModel, $resultRecords){
- return $this -> sizeCommonfirstfiveinnings($model, $resultModel, $resultRecords, 2);
- }
- /**
- * 全场|总得分|单
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_two_sides_single($model, $resultModel, $resultRecords){
- return $this -> bq_two_sides($model, $resultModel, $resultRecords, 1);
- }
- /**
- * 全场|总得分|双
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_two_sides_double($model, $resultModel, $resultRecords){
- return $this -> bq_two_sides($model, $resultModel, $resultRecords, 2);
- }
- /**
- * 全场|[主、客]|让球
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @param mixed $type 1:代表主队让球 2:代表客队让球
- * @param mixed $size 1:大 -1:小(如果是让球大小玩法才传入该字段)
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function bq_concede($model, $resultModel, $resultRecords, $type, $size = ''){
- $resultModel = $resultModel['0'];
- // 主队得分
- $homeScore = intval($resultModel -> home_score);
- // 客队得分
- $guestScore = intval($resultModel -> guest_score);
- $difference = 0;
- // 分差 - 主 :客
- if ($type == 1) {
- $difference = $homeScore - $guestScore;
- } else {
- // 分差 - 客 :主
- $difference = $guestScore - $homeScore;
- }
- // 让球个数
- $condition = explode("/", $model -> condition);
- $resultArr = [];
- // 循环对比让球后输赢
- foreach ($condition as $value) {
- $absValue = abs($value);
- if (substr($model -> condition, 0, 1) == '-') {
- $resultScore = $difference - $absValue;
- } else {
- $resultScore = $difference + $absValue;
- }
- if ($resultScore > 0) {
- $resultArr[] = 1;
- } elseif ($resultScore < 0) {
- $resultArr[] = -1;
- } else {
- $resultArr[] = 2;
- }
- }
- // 去重
- $resultUniqueArr = array_unique($resultArr);
- // 循环对比让球后输赢
- $count = count($resultUniqueArr);
- if ($size == -1) {
- if ($count == 1) {
- if ($resultUniqueArr[0] == 1) {
- $data['result'] = -1;
- } elseif ($resultUniqueArr[0] == 2) {
- $data['result'] = 2;
- } else {
- $data['result'] = 1;
- }
- } elseif (in_array(1, $resultUniqueArr)) {
- $data['result'] = 4;
- } else {
- $data['result'] = 3;
- }
- } else {
- if ($count == 1) {
- $data['result'] = $resultUniqueArr[0];
- } elseif (in_array(1, $resultUniqueArr)) {
- $data['result'] = 3;
- } else {
- $data['result'] = 4;
- }
- }
- $data['matchResult'] = "$homeScore-$guestScore(全场)";
- return $data;
- }
- /**
- * 前五局|[主、客]|让球
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @param mixed $whoType 1:代表主队让球 2:代表客队让球
- * @param mixed $size 1:大 -1:小(如果是让球大小玩法才传入该字段)
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function concedefirstfiveinnings($model, $resultModel, $resultRecords, $whoType, $size = ''){
- // 倒叙
- $newResultRecords = array_reverse($resultRecords);
- // 查询最后的上半场的key值
- $upResultKey = array_search('第五局', array_column($newResultRecords, 'match_process'));
- $homeScore = 0;
- $guestScore = 0;
- // 主队得分
- $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
- // 客队得分
- $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
- $difference = 0;
- // 分差 - 主 :客
- if ($whoType == 1) {
- $difference = $homeScore - $guestScore;
- } else {
- // 分差 - 客 :主
- $difference = $guestScore - $homeScore;
- }
- // 让球个数
- $condition = explode("/", $model -> condition);
- $resultArr = [];
- // 循环对比让球后输赢
- foreach ($condition as $value) {
- $absValue = abs($value);
- if (substr($model -> condition, 0, 1) == '-') {
- $resultScore = $difference - $absValue;
- } else {
- $resultScore = $difference + $absValue;
- }
- if ($resultScore > 0) {
- $resultArr[] = 1;
- } elseif ($resultScore < 0) {
- $resultArr[] = -1;
- } else {
- $resultArr[] = 2;
- }
- }
- // 去重
- $resultUniqueArr = array_unique($resultArr);
- // 循环对比让球后输赢
- $count = count($resultUniqueArr);
- // 如果猜的是让球大小且猜的是小则运行
- if ($size == -1) {
- if ($count == 1) {
- if ($resultUniqueArr[0] == 1) {
- $data['result'] = -1;
- } elseif ($resultUniqueArr[0] == 2) {
- $data['result'] = 2;
- } else {
- $data['result'] = 1;
- }
- } elseif (in_array(1, $resultUniqueArr)) {
- $data['result'] = 4;
- } else {
- $data['result'] = 3;
- }
- } else {
- if ($count == 1) {
- $data['result'] = $resultUniqueArr[0];
- } elseif (in_array(1, $resultUniqueArr)) {
- $data['result'] = 3;
- } else {
- $data['result'] = 4;
- }
- }
- $data['matchResult'] = "$homeScore-$guestScore(前五局)";
- return $data;
- }
- /**
- * 全场|[主、客、平]|独赢
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @param mixed $type 1:主队 2:客队
- * @return string 1:赢 -1:输
- */
- public function bq_capot($model, $resultModel, $resultRecords, $type){
- $resultModel = $resultModel['0'];
- // 主队得分
- $homeScore = intval($resultModel -> home_score);
- // 客队得分
- $guestScore = intval($resultModel -> guest_score);
- $difference = $homeScore - $guestScore;
- if ($difference > 0 && $type == 1) {
- $data['result'] = 1;
- } elseif ($difference < 0 && $type == 2) {
- $data['result'] = 1;
- } else {
- $data['result'] = -1;
- }
- $data['matchResult'] = "$homeScore-$guestScore(全场)";
- return $data;
- }
- /**
- * 全场得分大小
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @param mixed $size 大小 1:大 -1:小
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function sizeCommon($model, $resultModel, $resultRecords, $size){
- $resultModel = $resultModel['0'];
- // 主队得分
- $homeScore = intval($resultModel -> home_score);
- // 客队得分
- $guestScore = intval($resultModel -> guest_score);
- // 总分
- $allGoal = $homeScore+$guestScore;
- // 总球条件
- $condition = intval($model -> condition);
- // 差值
- if ($size == 1) {
- $resultScore = $allGoal - $condition;
- } else {
- $resultScore = $condition - $allGoal;
- }
- if ($resultScore > 0) {
- $data['result'] = 1;
- } elseif ($resultScore < 0) {
- $data['result'] = 1;
- } else {
- $data['result'] = 2;
- }
- $data['matchResult'] = "$homeScore+$guestScore(全场)";
- return $data;
- }
- /**
- * 前五局大小
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @param mixed $size 大小 1:大 -1:小
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- public function sizeCommonfirstfiveinnings($model, $resultModel, $resultRecords, $size){
- // 倒叙
- $newResultRecords = array_reverse($resultRecords);
- $upResultKey = array_search('第五局', array_column($newResultRecords, 'match_process'));
- $homeScore = 0;
- $guestScore = 0;
- // 主队得分
- $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
- // 客队得分
- $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
- // 总分
- $allGoal = $homeScore+$guestScore;
- // 总球条件
- $condition = intval($model -> condition);
- // 差值
- if ($size == 1) {
- $resultScore = $allGoal - $condition;
- } else {
- $resultScore = $condition - $allGoal;
- }
- if ($resultScore > 0) {
- $data['result'] = 1;
- } elseif ($resultScore < 0) {
- $data['result'] = -1;
- } else {
- $data['result'] = 2;
- }
- $data['matchResult'] = "$homeScore+$guestScore(前五局)";
- return $data;
- }
- /**
- * 全场总得分单双
- * @param mixed $model 注单表数据
- * @param mixed $resultModel 结果表数据
- * @param mixed $resultRecords 结果记录表数据
- * @param mixed $type 大小 1:单 2:双
- * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
- */
- //结果单/双 home_score 主队进球数 guest_score 客队进球数 home_rate 主队让球 guest_rate 客队让球
- public function bq_two_sides($model,$resultModel,$resultRecords, $type)
- {
- $resultModel = $resultModel['0'];
- // 主队得分
- $homeScore = intval($resultModel -> home_score);
- // 客队得分
- $guestScore = intval($resultModel -> guest_score);
- // 总分
- $allGoal = $homeScore+$guestScore;
- // 总得分单双条件
- $condition = intval($model -> condition);
- if($type == 1 && $condition == '单'){
- if($allGoal%2 != 0){
- $data['result'] = 1;
- }else{
- $data['result'] = -1;
- }
- }
- if($type = 2 && $condition = '双'){
- if($allGoal%2 == 0){
- $data['result'] = 1;
- }else{
- $data['result'] = -1;
- }
- }
- $data['matchResult'] = "$allGoal(全场)";
- return $data;
- }
- }
|