彭俊 6 жил өмнө
parent
commit
6a1e613e98

+ 209 - 210
app/Lib/Settlement/Adapter/ZqRule.php

@@ -37,150 +37,6 @@ class ZqRule
         return $this->concedeFull($model, $resultModel, $resultRecords, 2);
     }
 
-    /**
-     * 上半场|主队|让球
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function half_concede_home($model, $resultModel, $resultRecords)
-    {
-        return $this->concedeHalf($model, $resultModel, $resultRecords, 1, 1);
-    }
-
-    /**
-     * 上半场|客队|让球
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function half_concede_guest($model, $resultModel, $resultRecords)
-    {
-        return $this->concedeHalf($model, $resultModel, $resultRecords, 2, 1);
-    }
-
-    /**
-     * 进球|全场|大
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function goal_size_home($model, $resultModel, $resultRecords)
-    {
-        return $this->sizeFull($model, $resultModel, $resultRecords, 0, 1);
-    }
-
-    /**
-     * 进球|全场|小
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function goal_size_guest($model, $resultModel, $resultRecords)
-    {
-        return $this->sizeFull($model, $resultModel, $resultRecords, 0, -1);
-    }
-
-    /**
-     * 进球|上半场|大
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function half_goal_size_home($model, $resultModel, $resultRecords)
-    {
-        return $this->sizeHalf($model, $resultModel, $resultRecords, 0, 1, 1);
-    }
-
-    /**
-     * 进球|上半场|小
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function half_goal_size_guest($model, $resultModel, $resultRecords)
-    {
-        return $this->sizeHalf($model, $resultModel, $resultRecords, 0, -1, 1);
-    }
-
-    /**
-     * 全场|主队|独赢
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输
-     */
-    public function capot_home($model, $resultModel, $resultRecords)
-    {
-        return $this->winFull($model, $resultModel, $resultRecords, 1);
-    }
-
-    /**
-     * 全场|客队|独赢
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输
-     */
-    public function capot_guest($model, $resultModel, $resultRecords)
-    {
-        return $this->winFull($model, $resultModel, $resultRecords, 2);
-    }
-
-    /**
-     * 全场|主客平|独赢
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输
-     */
-    public function capot_dogfall($model, $resultModel, $resultRecords)
-    {
-        return $this->winFull($model, $resultModel, $resultRecords, 0);
-    }
-
-    /**
-     * 上半场|主队|独赢
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输
-     */
-    public function half_capot_home($model, $resultModel, $resultRecords)
-    {
-        return $this->winHalf($model, $resultModel, $resultRecords, 1, 1);
-    }
-
-    /**
-     * 上半场|客队|独赢
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输
-     */
-    public function half_capot_guest($model, $resultModel, $resultRecords)
-    {
-        return $this->winHalf($model, $resultModel, $resultRecords, 2, 1);
-    }
-
-    /**
-     * 上半场|主客平|独赢
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输
-     */
-    public function half_capot_dogfall($model, $resultModel, $resultRecords)
-    {
-        return $this->winHalf($model, $resultModel, $resultRecords, 0, 1);
-    }
-
     /**
      * 全场|[主、客]|让球
      * @param mixed $model 注单表数据
@@ -192,6 +48,7 @@ class ZqRule
      */
     public function concedeFull($model, $resultModel, $resultRecords, $type, $size = '')
     {
+        $resultModel = $resultModel['0'];
         // 主队得分
         $homeScore = intval($resultModel->home_score);
         // 客队得分
@@ -254,6 +111,31 @@ class ZqRule
         return $data;
     }
 
+    /**
+     * 上半场|主队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function half_concede_home($model, $resultModel, $resultRecords)
+    {
+        return $this->concedeHalf($model, $resultModel, $resultRecords, 1, 1);
+    }
+
+    /**
+     * 上半场|客队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function half_concede_guest($model, $resultModel, $resultRecords)
+    {
+        return $this->concedeHalf($model, $resultModel, $resultRecords, 2, 1);
+    }
+
+
     /**
      * 半场|[主、客]|让球
      * @param mixed $model 注单表数据
@@ -264,85 +146,97 @@ class ZqRule
      * @param mixed $size 1:大 -1:小(如果是让球大小玩法才传入该字段)
      * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
      */
-    public function concedeHalf($model, $resultModel, $resultRecords, $whoType, $halfType, $size = '')
+    public function concedeHalf($model, $resultModel, $resultRecords, $whoType, $halfType)
     {
-        $half = [1 => '上半场', 2 => '下半场'];
-        // 倒叙
-        $newResultRecords = array_reverse($resultRecords);
-        // 查询最后的上半场的key值
-        $upResultKey = array_search($half[1], array_column($newResultRecords, 'match_process'));
-        $homeScore = 0;
-        $guestScore = 0;
+        $resultModel = $resultModel['0'];
+        $returnDatas = ['result' => -1, 'matchResult' => ''];
         if ($halfType == 1) {
-            // 主队得分
-            $homeScore = intval($newResultRecords[$upResultKey]->home_score);
-            // 客队得分
-            $guestScore = intval($newResultRecords[$upResultKey]->guest_score);
+            $scoreArr = ['home' => $resultModel->u_home_score, 'guest' => $resultModel->u_guest_score];
+            $returnDatas['matchResult'] = $scoreArr['home'] . '-' . $scoreArr['guest'] . "(上半场)";
         } else {
-            // 查询最后的下半场的key值
-            $downResultKey = array_search($half[2], array_column($newResultRecords, 'match_process'));
-            // 下半场主队得分
-            $homeScore = intval($newResultRecords[$downResultKey]->home_score) - intval($newResultRecords[$upResultKey]->home_score);
-            // 下半场客队得分
-            $guestScore = intval($newResultRecords[$downResultKey]->guest_score) - intval($newResultRecords[$upResultKey]->guest_score);
+            $scoreArr = ['home' => $resultModel->home_score - $resultModel->u_home_score, 'guest' => $resultModel->guest_score - $resultModel->u_guest_score];
+            $returnDatas['matchResult'] = $scoreArr['home'] . '-' . $scoreArr['guest'] . "(下半场)";
         }
-        $difference = 0;
-        // 分差 - 主 :客
-        if ($whoType == 1) {
-            $difference = $homeScore - $guestScore;
+        $hasFH = in_array(substr($model->condition, 0, 1), ['+', '-']);
+        if ($hasFH) {
+            $condArr = explode("/", substr($model->condition, 1));
+            $FH = substr($model->condition, 0, 1);
         } else {
-            // 分差 - 客 :主
-            $difference = $guestScore - $homeScore;
+            $condArr = explode("/", $model->condition);
+            $FH = '+';
         }
-        // 让球个数
-        $condition = explode("/", $model->condition);
-        $resultArr = [];
-        // 循环对比让球后输赢
-        foreach ($condition as $value) {
-            $absValue = abs($value);
-            if (substr($model->condition, 0, 1) == '-') {
-                $resultScore = $difference - $absValue;
+        $smin = $smax = 0;
+
+        if (count($condArr) == 1) {
+            if ($whoType == 1) {
+                $smin = $scoreArr['home'] - $scoreArr['guest'] + (($FH == "+") ? -1 : 1) * $condArr[0];
             } else {
-                $resultScore = $difference + $absValue;
+                $smin = $scoreArr['guest'] - $scoreArr['home'] + (($FH == "+") ? -1 : 1) * $condArr[0];
             }
-            if ($resultScore > 0) {
-                $resultArr[] = 1;
-            } elseif ($resultScore < 0) {
-                $resultArr[] = -1;
+            if ($smin > 0) {
+                $returnDatas['result'] = 1;
+            } elseif ($smin == 0) {
+                $returnDatas['result'] = 2;
             } else {
-                $resultArr[] = 2;
+                $returnDatas['result'] = -1;
             }
+            return $returnDatas;
         }
-        // 去重
-        $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;
+
+        if ($whoType == 1) {
+            $smin = $scoreArr['home'] - $scoreArr['guest'] + (($FH == "+") ? -1 : 1) * $condArr[0];
+            $smax = $scoreArr['home'] - $scoreArr['guest'] + (($FH == "+") ? -1 : 1) * $condArr[1];
+        } else {
+            $smin = $scoreArr['guest'] - $scoreArr['home'] + (($FH == "+") ? -1 : 1) * $condArr[0];
+            $smax = $scoreArr['guest'] - $scoreArr['home'] + (($FH == "+") ? -1 : 1) * $condArr[1];
+        }
+        ($smin > $smax) ? $this->exchage($smin, $smax) : '';
+
+        if ($smin > 0) {
+            $returnDatas['result'] = 1;
+        } elseif ($smin == 0) {
+            if ($smax > 0) {
+                $returnDatas['result'] = 3;
             } else {
-                $data['result'] = 3;
+                $returnDatas['result'] = 4;
             }
         } else {
-            if ($count == 1) {
-                $data['result'] = $resultUniqueArr[0];
-            } elseif (in_array(1, $resultUniqueArr)) {
-                $data['result'] = 3;
-            } else {
-                $data['result'] = 4;
+            if ($smax == 0) {
+                $returnDatas['result'] = 4;
             }
         }
-        $data['matchResult'] = "$homeScore-$guestScore(上半场)";
-        return $data;
+        return $returnDatas;
+    }
+
+    private function exchage(&$num1, &$num2)
+    {
+        $tmp = $num2;
+        $num2 = $num1;
+        $num1 = $tmp;
+    }
+
+    /**
+     * 进球|全场|大
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function goal_size_home($model, $resultModel, $resultRecords)
+    {
+        return $this->sizeFull($model, $resultModel, $resultRecords, 0, 1);
+    }
+
+    /**
+     * 进球|全场|小
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function goal_size_guest($model, $resultModel, $resultRecords)
+    {
+        return $this->sizeFull($model, $resultModel, $resultRecords, 0, -1);
     }
 
     /**
@@ -354,8 +248,9 @@ class ZqRule
      * @param mixed $size 1:大  -1:小
      * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
      */
-    public function sizeFull($model, $resultModel, $resultRecords, $type, $size)
+    public function sizeFull($model, $resultModels, $resultRecords, $type, $size)
     {
+        $resultModel = $resultModels['0'];
         // 总进球数
         $allGoal = intval($resultModel->home_score) + intval($resultModel->guest_score);
         // 主队进球数
@@ -409,6 +304,31 @@ class ZqRule
         return $data;
     }
 
+
+    /**
+     * 进球|上半场|大
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function half_goal_size_home($model, $resultModel, $resultRecords)
+    {
+        return $this->sizeHalf($model, $resultModel, $resultRecords, 0, 1, 1);
+    }
+
+    /**
+     * 进球|上半场|小
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function half_goal_size_guest($model, $resultModel, $resultRecords)
+    {
+        return $this->sizeHalf($model, $resultModel, $resultRecords, 0, -1, 1);
+    }
+
     /**
      * 半场|[主、客、全]|大小
      * @param mixed $model 注单表数据
@@ -491,6 +411,85 @@ class ZqRule
         return $data;
     }
 
+
+
+    /**
+     * 全场|主队|独赢
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输
+     */
+    public function capot_home($model, $resultModel, $resultRecords)
+    {
+        return $this->winFull($model, $resultModel, $resultRecords, 1);
+    }
+
+    /**
+     * 全场|客队|独赢
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输
+     */
+    public function capot_guest($model, $resultModel, $resultRecords)
+    {
+        return $this->winFull($model, $resultModel, $resultRecords, 2);
+    }
+
+    /**
+     * 全场|主客平|独赢
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输
+     */
+    public function capot_dogfall($model, $resultModel, $resultRecords)
+    {
+        return $this->winFull($model, $resultModel, $resultRecords, 0);
+    }
+
+    /**
+     * 上半场|主队|独赢
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输
+     */
+    public function half_capot_home($model, $resultModel, $resultRecords)
+    {
+        return $this->winHalf($model, $resultModel, $resultRecords, 1, 1);
+    }
+
+    /**
+     * 上半场|客队|独赢
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输
+     */
+    public function half_capot_guest($model, $resultModel, $resultRecords)
+    {
+        return $this->winHalf($model, $resultModel, $resultRecords, 2, 1);
+    }
+
+    /**
+     * 上半场|主客平|独赢
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输
+     */
+    public function half_capot_dogfall($model, $resultModel, $resultRecords)
+    {
+        return $this->winHalf($model, $resultModel, $resultRecords, 0, 1);
+    }
+
+
+
+
+
+
     /**
      * 全场|[主、客、平]|独赢
      * @param mixed $model 注单表数据
@@ -611,7 +610,7 @@ class ZqRule
     //客队|最后进球
     public function last_ball_guest($model, $resultModel, $resultRecords)
     {
-        $pos = count($resultModel) -1 ;
+        $pos = count($resultModel) - 1;
         $resultModel = $resultModel[$pos];
         if ($resultModel->all_goal > 0) {
             if ($resultModel->last_score === $resultModel->guest_team) {
@@ -626,7 +625,7 @@ class ZqRule
     //没有进球
     public function not_ball($model, $resultModel, $resultRecords)
     {
-        $pos = count($resultModel) -1 ;
+        $pos = count($resultModel) - 1;
         $resultModel = $resultModel[$pos];
         if ($resultModel->all_goal <= 0) {
             return ['result' => 1, 'matchResult' => ''];

+ 1 - 1
app/Lib/Settlement/SettlementWinFail.php

@@ -197,7 +197,7 @@ class SettlementWinFail
             }
         } else {
             $this->getGjDatas($sval);
-            
+
             if ($this->RefClass->hasMethod($fun)) {
                 $winorfalse = $this->AdapterObj->$fun($sval, $this->gjModel, []);
             } elseif ($this->RefClass->hasMethod($fun2)) {

+ 11 - 10
resources/views/admin/sportsfoot/outcome.blade.php

@@ -71,10 +71,10 @@
     <script type="text/html" id="sxalfcourt">
       @{{#if(d.match_time!=null){ }}
         <!-- <span>@{{ d.match_time}}</span> -->
-        <input type="text" style="width:30px;heigth:20px" id="u_home_score" name="u_home_score" value="@{{d.u_home_score}}" onchange="inputFunc(@{{d.id}}, event.target.value,@{{d.match_id}})"> 
-        <input type="text" style="width:30px;heigth:20px" id="u_guest_score" name="u_guest_score" value="@{{d.u_guest_score}}" onchange="inputTunc(@{{d.id}}, event.target.value,@{{d.match_id}})"> / 
-        <input type="text" style="width:30px;heigth:20px" id="home_score" name="home_score" value="@{{d.home_score}}" onchange="inputSunc(@{{d.id}}, event.target.value,@{{d.match_id}})">
-        <input type="text" style="width:30px;heigth:20px" id="guest_score" name="guest_score" value="@{{d.guest_score}}" onchange="inputAunc(@{{d.id}}, event.target.value,@{{d.match_id}})">
+        <input type="text" style="width:30px;heigth:20px" id="u_home_score@{{d.id}}" name="u_home_score" value="@{{d.u_home_score}}" onchange="inputFunc(@{{d.id}}, event.target.value,@{{d.match_id}})"> 
+        <input type="text" style="width:30px;heigth:20px" id="u_guest_score@{{d.id}}" name="u_guest_score" value="@{{d.u_guest_score}}" onchange="inputTunc(@{{d.id}}, event.target.value,@{{d.match_id}})"> / 
+        <input type="text" style="width:30px;heigth:20px" id="home_score@{{d.id}}" name="home_score" value="@{{d.home_score}}" onchange="inputSunc(@{{d.id}}, event.target.value,@{{d.match_id}})">
+        <input type="text" style="width:30px;heigth:20px" id="guest_score@{{d.id}}" name="guest_score" value="@{{d.guest_score}}" onchange="inputAunc(@{{d.id}}, event.target.value,@{{d.match_id}})">
 
       @{{#} }}
     </script>
@@ -227,11 +227,12 @@
             var id = id;
             var num = num;
             var reg = /^[0-99]\d*$/;
-            var home_score = $("#home_score").val();
+            var home_score = $("#home_score"+id).val();
             if(reg.test(num)==false){ 
                 layer.msg('不能为空值');
                 reloadDataTable();return;
-            }else if(home_score<num){
+            } 
+            if(num>home_score){
                 layer.msg('请输入正确的全场比分');
                 reloadDataTable();return;
             }
@@ -254,11 +255,11 @@
            var id = id;
             var num = num;
             var reg = /^[0-99]\d*$/;
-            var guest_score = $("#guest_score").val();
+            var guest_score = $("#guest_score"+id).val();
             if(reg.test(num)==false){ 
                 layer.msg('不能为空值');
                 reloadDataTable();return;
-            }else if(guest_score<num){
+            }else if(num>guest_score){
                 layer.msg('请输入正确的全场比分');
                 reloadDataTable();return;
             }
@@ -279,7 +280,7 @@
         function inputSunc(id,num,match_id){
             var id = id;
             var num = num;
-            var u_home_score = $("#u_home_score").val();
+            var u_home_score = $("#u_home_score"+id).val();
             if(u_home_score>num){ 
                 layer.msg('请输入正确的全场比分');
                 reloadDataTable();return;
@@ -301,7 +302,7 @@
         function inputAunc(id,num,match_id){
             var id = id;
             var num = num;
-            var u_guest_score = $("#u_guest_score").val();
+            var u_guest_score = $("#u_guest_score"+id).val();
             if(u_guest_score>num){ 
                 layer.msg('请输入正确的全场比分');
                 reloadDataTable();return;