فهرست منبع

追加推送 4/30

彭俊 6 سال پیش
والد
کامیت
374974f2bd

+ 3 - 1
app/Http/Controllers/Api/SettlementController.php

@@ -18,7 +18,9 @@ class SettlementController extends Controller{
     public function  debug(){
         $obj = new SettlementSql();
         $ret = $obj->doRun();
-        var_dump($ret);
+        $sql = $obj->GetSQL();
+
+        echo json_encode([$ret,$sql]);
 
     }
 

+ 264 - 331
app/Lib/Settlement/Adapter/BqRule.php

@@ -10,56 +10,6 @@ namespace App\Lib\Settlement\Adapter;
 
 class BqRule
 {
-
-    /**
-     * 让球公共函数
-     * @param mixed $model 注单表数据
-     * @param mixed $difference 分差
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function concedeCommon($model, $difference){
-        // 让球个数
-        $condition = intval($model -> condition);
-        // 差值
-        $resultScore = $difference + $condition;
-        if ($resultScore > 0) {
-            $result = 1;
-        } elseif ($resultScore < 0) {
-            $result = -1;
-        } else {
-            $result = 2;
-        }
-
-        return $result;
-    }
-
-    /**
-     * 大小公共函数
-     * @param mixed $model 注单表数据
-     * @param mixed $allGoal 总分
-     * @param mixed $size 大小 1:大  -1:小
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function sizeCommon($model, $allGoal, $size){
-        // 总球条件
-        $condition = intval($model -> condition);
-        // 差值
-        if ($size == 1) {
-            $resultScore = $allGoal - $condition;
-        } else {
-            $resultScore = $condition - $allGoal;
-        }
-        if ($resultScore > 0) {
-            $result = 1;
-        } elseif ($resultScore < 0) {
-            $result = -1;
-        } else {
-            $result = 2;
-        }
-
-        return $result;
-    }
-
     /**
      * 全场|主队|让球
      * @param mixed $model 注单表数据
@@ -67,15 +17,8 @@ class BqRule
      * @param mixed $resultRecords 结果记录表数据
      * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
      */
-    public function lq_concede_home($model, $resultModel, $resultRecords){
-        // 主队得分
-        $homeScore = intval($resultModel -> home_score);
-        // 客队得分
-        $guestScore = intval($resultModel -> guest_score);
-        // 分差 - 主 :客
-        $difference = $homeScore - $guestScore;
-
-        return $this -> concedeCommon($model, $difference);
+    public function bq_concede_home($model, $resultModel, $resultRecords) {
+        $this -> bq_concede($model, $resultModel, $resultRecords, 1);
     }
 
     /**
@@ -85,408 +28,398 @@ class BqRule
      * @param mixed $resultRecords 结果记录表数据
      * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
      */
-    public function lq_concede_guest($model, $resultModel, $resultRecords){
-        // 主队得分
-        $homeScore = intval($resultModel -> home_score);
-        // 客队得分
-        $guestScore = intval($resultModel -> guest_score);
-        // 分差 - 客 :主
-        $difference = $guestScore - $homeScore;
-
-        return $this -> concedeCommon($model, $difference);
+    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 lq_half_concede_home($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        // 主队得分
-        $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
-        // 客队得分
-        $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
-        // 分差 - 主 :客
-        $difference = $homeScore - $guestScore;
-
-        return $this -> concedeCommon($model, $difference);
-    }
-
-    /**
-     * 上半场|客队|让球
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function lq_half_concede_guest($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        // 主队得分
-        $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
-        // 客队得分
-        $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
-        // 分差 - 客 :主
-        $difference = $guestScore - $homeScore;
-
-        return $this -> concedeCommon($model, $difference);
-    }
-
-    /**
-     * 第一节|主队|让球
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function lq_one_concede_home($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
-        // 主队得分
-        $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
-        // 客队得分
-        $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
-        // 分差 - 主 :客
-        $difference = $homeScore - $guestScore;
-
-        return $this -> concedeCommon($model, $difference);
+    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 lq_one_concede_guest($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
-        // 主队得分
-        $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
-        // 客队得分
-        $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
-        // 分差 - 客 :主
-        $difference = $guestScore - $homeScore;
-
-        return $this -> concedeCommon($model, $difference);
+    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:输  2:平  3:赢半平半  4:输半平半
+     * @return string 1:赢  -1:输
      */
-    public function lq_two_concede_home($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
-        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        // 主队得分
-        $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
-        // 客队得分
-        $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
-        // 分差 - 主 :客
-        $difference = $homeScore - $guestScore;
-
-        return $this -> concedeCommon($model, $difference);
+    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:输  2:平  3:赢半平半  4:输半平半
+     * @return string 1:赢  -1:输
      */
-    public function lq_two_concede_guest($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
-        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        // 主队得分
-        $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
-        // 客队得分
-        $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
-        // 分差 - 客 :主
-        $difference = $guestScore - $homeScore;
-
-        return $this -> concedeCommon($model, $difference);
+    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 lq_three_concede_home($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
-        // 主队得分
-        $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
-        // 客队得分
-        $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
-        // 分差 - 主 :客
-        $difference = $homeScore - $guestScore;
-
-        return $this -> concedeCommon($model, $difference);
+    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 lq_three_concede_guest($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
-        // 主队得分
-        $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
-        // 客队得分
-        $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
-        // 分差 - 客 :主
-        $difference = $guestScore - $homeScore;
-
-        return $this -> concedeCommon($model, $difference);
+    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 lq_four_concede_home($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
-        $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
-        // 主队得分
-        $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
-        // 客队得分
-        $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
-        // 分差 - 主 :客
-        $difference = $homeScore - $guestScore;
-
-        return $this -> concedeCommon($model, $difference);
+    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 lq_four_concede_guest($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
-        $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
-        // 主队得分
-        $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
-        // 客队得分
-        $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
-        // 分差 - 客 :主
-        $difference = $guestScore - $homeScore;
-
-        return $this -> concedeCommon($model, $difference);
+    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 lq_total_sizes_big($model, $resultModel, $resultRecords){
-        // 总进球数
-        $allGoal = intval($resultModel -> home_score) + intval($resultModel -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, 1);
+    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 lq_total_sizes_small($model, $resultModel, $resultRecords){
-        // 总进球数
-        $allGoal = intval($resultModel -> home_score) + intval($resultModel -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, -1);
+    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 lq_half_total_sizes_big($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        // 总进球数
-        $allGoal = intval($newResultRecords[$upResultKey] -> home_score) + intval($newResultRecords[$upResultKey] -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, 1);
+    public function bq_concede($model, $resultModel, $resultRecords, $type, $size = ''){
+        // 主队得分
+        $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) {
+                    return -1;
+                } elseif ($resultUniqueArr[0] == 2) {
+                    return 2;
+                } else {
+                    return 1;
+                }
+            } elseif (in_array(1, $resultUniqueArr)) {
+                return 4;
+            } else {
+                return 3;
+            }
+        } else {
+            if ($count == 1) {
+                return $resultUniqueArr[0];
+            } elseif (in_array(1, $resultUniqueArr)) {
+                return 3;
+            } else {
+                return 4;
+            }
+        }
     }
 
     /**
-     * 总进球|上半场|小
+     * 前五局|[主、客]|让球
      * @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 lq_half_total_sizes_small($model, $resultModel, $resultRecords){
+    public function concedefirstfiveinnings($model, $resultModel, $resultRecords, $whoType, $size = ''){
+        // 倒叙
         $newResultRecords = array_reverse($resultRecords);
-        $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        // 总进球数
-        $allGoal = intval($newResultRecords[$upResultKey] -> home_score) + intval($newResultRecords[$upResultKey] -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, -1);
+        // 查询最后的上半场的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) {
+                    return -1;
+                } elseif ($resultUniqueArr[0] == 2) {
+                    return 2;
+                } else {
+                    return 1;
+                }
+            } elseif (in_array(1, $resultUniqueArr)) {
+                return 4;
+            } else {
+                return 3;
+            }
+        } else {
+            if ($count == 1) {
+                return $resultUniqueArr[0];
+            } elseif (in_array(1, $resultUniqueArr)) {
+                return 3;
+            } else {
+                return 4;
+            }
+        }
     }
 
     /**
-     * 总进球|第一节|大
+     * 全场|[主、客、平]|独赢
      * @param mixed $model 注单表数据
      * @param mixed $resultModel 结果表数据
      * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     * @param mixed $type 1:主队  2:客队
+     * @return string 1:赢  -1:输
      */
-    public function lq_one_total_sizes_big($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
-        // 总进球数
-        $allGoal = intval($newResultRecords[$oneResultKey] -> home_score) + intval($newResultRecords[$oneResultKey] -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, 1);
-    }
+    public function bq_capot($model, $resultModel, $resultRecords, $type){
+        if (empty($model) || empty($result_match) || empty($resultRecords)) return false;
 
-    /**
-     * 总进球|第一节|小
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function lq_one_total_sizes_small($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
-        // 总进球数
-        $allGoal = intval($newResultRecords[$oneResultKey] -> home_score) + intval($newResultRecords[$oneResultKey] -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, -1);
+        // 主队得分
+        $homeScore = intval($resultModel -> home_score);
+        // 客队得分
+        $guestScore = intval($resultModel -> guest_score);
+        $difference = $homeScore - $guestScore;
+        if ($difference > 0 && $type == 1) {
+            return 1;
+        } elseif ($difference < 0 && $type == 2) {
+            return 1;
+        } else {
+            return -1;
+        }
     }
 
     /**
-     * 总进球|第二节|大
+     * 全场得分大小
      * @param mixed $model 注单表数据
      * @param mixed $resultModel 结果表数据
      * @param mixed $resultRecords 结果记录表数据
+     * @param mixed $size 大小 1:大  -1:小
      * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
      */
-    public function lq_two_total_sizes_big($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
-        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        // 总进球数
-        $allGoal = intval($newResultRecords[$twoResultKey] -> home_score) + intval($newResultRecords[$twoResultKey] -> guest_score)
-                - intval($newResultRecords[$oneResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, 1);
-    }
+    public function sizeCommon($model, $resultModel, $resultRecords, $size){
+        // 主队得分
+        $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) {
+            $result = 1;
+        } elseif ($resultScore < 0) {
+            $result = -1;
+        } else {
+            $result = 2;
+        }
 
-    /**
-     * 总进球|第二节|小
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function lq_two_total_sizes_small($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
-        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        // 总进球数
-        $allGoal = intval($newResultRecords[$twoResultKey] -> home_score) + intval($newResultRecords[$twoResultKey] -> guest_score)
-            - intval($newResultRecords[$oneResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, -1);
+        return $result;
     }
 
     /**
-     * 总进球|第三节|大
+     * 前五局大小
      * @param mixed $model 注单表数据
      * @param mixed $resultModel 结果表数据
      * @param mixed $resultRecords 结果记录表数据
+     * @param mixed $size 大小 1:大  -1:小
      * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
      */
-    public function lq_three_total_sizes_big($model, $resultModel, $resultRecords){
+    public function sizeCommonfirstfiveinnings($model, $resultModel, $resultRecords, $size){
+        // 倒叙
         $newResultRecords = array_reverse($resultRecords);
-        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
-        // 总进球数
-        $allGoal = intval($newResultRecords[$threeResultKey] -> home_score) + intval($newResultRecords[$threeResultKey] -> guest_score)
-                - intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, 1);
-    }
+        $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) {
+            $result = 1;
+        } elseif ($resultScore < 0) {
+            $result = -1;
+        } else {
+            $result = 2;
+        }
 
-    /**
-     * 总进球|第三节|小
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function lq_three_total_sizes_small($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
-        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
-        // 总进球数
-        $allGoal = intval($newResultRecords[$threeResultKey] -> home_score) + intval($newResultRecords[$threeResultKey] -> guest_score)
-            - intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, -1);
+        return $result;
     }
 
     /**
-     * 总进球|第四节|大
+     * 全场总得分单双
      * @param mixed $model 注单表数据
      * @param mixed $resultModel 结果表数据
      * @param mixed $resultRecords 结果记录表数据
+     * @param mixed $type 大小 1:单  2:双
      * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
      */
-    public function lq_four_total_sizes_big($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
-        $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
-        // 总进球数
-        $allGoal = intval($newResultRecords[$fourResultKey] -> home_score) + intval($newResultRecords[$fourResultKey] -> guest_score)
-                - intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, 1);
+    //结果单/双 home_score 主队进球数 guest_score 客队进球数 home_rate 主队让球 guest_rate 客队让球
+    public function  bq_two_sides($model,$resultModel,$resultRecords, $type)
+    {
+        // 主队得分
+        $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){
+                return 1;
+            }else{
+                return -1;
+            }
+        }
+        if($type = 2 && $condition = '双'){
+            if($allGoal%2 == 0){
+                return 1;
+            }else{
+                return -1;
+            }
+        }
     }
 
-    /**
-     * 总进球|第四节|小
-     * @param mixed $model 注单表数据
-     * @param mixed $resultModel 结果表数据
-     * @param mixed $resultRecords 结果记录表数据
-     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
-     */
-    public function lq_four_total_sizes_small($model, $resultModel, $resultRecords){
-        $newResultRecords = array_reverse($resultRecords);
-        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
-        $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
-        // 总进球数
-        $allGoal = intval($newResultRecords[$fourResultKey] -> home_score) + intval($newResultRecords[$fourResultKey] -> guest_score)
-            - intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
-        return $this -> sizeCommon($model, $allGoal, -1);
-    }
 }

+ 783 - 5
app/Lib/Settlement/Adapter/LqRule.php

@@ -11,16 +11,794 @@ use Illuminate\Support\Facades\DB;
 
 class LqRule
 {
+    /**
+     * 让球公共函数
+     * @param mixed $model 注单表数据
+     * @param mixed $difference 分差
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function concedeCommon($model, $difference){
+        // 让球个数
+        $condition = intval($model -> condition);
+        // 差值
+        $resultScore = $difference + $condition;
+        if ($resultScore > 0) {
+            $result = 1;
+        } elseif ($resultScore < 0) {
+            $result = -1;
+        } else {
+            $result = 2;
+        }
+
+        return $result;
+    }
+
+    /**
+     * 大小公共函数
+     * @param mixed $model 注单表数据
+     * @param mixed $allGoal 总分
+     * @param mixed $size 大小 1:大  -1:小
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function sizeCommon($model, $allGoal, $size){
+        // 总球条件
+        $condition = intval($model -> condition);
+        // 差值
+        if ($size == 1) {
+            $resultScore = $allGoal - $condition;
+        } else {
+            $resultScore = $condition - $allGoal;
+        }
+        if ($resultScore > 0) {
+            $result = 1;
+        } elseif ($resultScore < 0) {
+            $result = -1;
+        } else {
+            $result = 2;
+        }
+
+        return $result;
+    }
+
+    /**
+     * 全场|主队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_concede_home($model, $resultModel, $resultRecords){
+        // 主队得分
+        $homeScore = intval($resultModel -> home_score);
+        // 客队得分
+        $guestScore = intval($resultModel -> guest_score);
+        // 分差 - 主 :客
+        $difference = $homeScore - $guestScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 全场|客队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_concede_guest($model, $resultModel, $resultRecords){
+        // 主队得分
+        $homeScore = intval($resultModel -> home_score);
+        // 客队得分
+        $guestScore = intval($resultModel -> guest_score);
+        // 分差 - 客 :主
+        $difference = $guestScore - $homeScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 上半场|主队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_half_concede_home($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        // 主队得分
+        $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
+        // 客队得分
+        $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
+        // 分差 - 主 :客
+        $difference = $homeScore - $guestScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 上半场|客队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_half_concede_guest($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        // 主队得分
+        $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
+        // 客队得分
+        $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
+        // 分差 - 客 :主
+        $difference = $guestScore - $homeScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 第一节|主队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_one_concede_home($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
+        // 主队得分
+        $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
+        // 客队得分
+        $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
+        // 分差 - 主 :客
+        $difference = $homeScore - $guestScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 第一节|客队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_one_concede_guest($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
+        // 主队得分
+        $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
+        // 客队得分
+        $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
+        // 分差 - 客 :主
+        $difference = $guestScore - $homeScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 第二节|主队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_two_concede_home($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
+        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        // 主队得分
+        $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
+        // 客队得分
+        $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
+        // 分差 - 主 :客
+        $difference = $homeScore - $guestScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 第二节|客队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_two_concede_guest($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
+        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        // 主队得分
+        $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
+        // 客队得分
+        $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
+        // 分差 - 客 :主
+        $difference = $guestScore - $homeScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 第三节|主队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_three_concede_home($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
+        // 主队得分
+        $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
+        // 客队得分
+        $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
+        // 分差 - 主 :客
+        $difference = $homeScore - $guestScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 第三节|客队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_three_concede_guest($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
+        // 主队得分
+        $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
+        // 客队得分
+        $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
+        // 分差 - 客 :主
+        $difference = $guestScore - $homeScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 第四节|主队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_four_concede_home($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
+        $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
+        // 主队得分
+        $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
+        // 客队得分
+        $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
+        // 分差 - 主 :客
+        $difference = $homeScore - $guestScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 第四节|客队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_four_concede_guest($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
+        $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
+        // 主队得分
+        $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
+        // 客队得分
+        $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
+        // 分差 - 客 :主
+        $difference = $guestScore - $homeScore;
+
+        return $this -> concedeCommon($model, $difference);
+    }
+
+    /**
+     * 总进球|全场|大
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_total_sizes_big($model, $resultModel, $resultRecords){
+        // 总进球数
+        $allGoal = intval($resultModel -> home_score) + intval($resultModel -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, 1);
+    }
+
+    /**
+     * 总进球|全场|小
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_total_sizes_small($model, $resultModel, $resultRecords){
+        // 总进球数
+        $allGoal = intval($resultModel -> home_score) + intval($resultModel -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, -1);
+    }
+
+    /**
+     * 总进球|上半场|大
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_half_total_sizes_big($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        // 总进球数
+        $allGoal = intval($newResultRecords[$upResultKey] -> home_score) + intval($newResultRecords[$upResultKey] -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, 1);
+    }
+
+    /**
+     * 总进球|上半场|小
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_half_total_sizes_small($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        // 总进球数
+        $allGoal = intval($newResultRecords[$upResultKey] -> home_score) + intval($newResultRecords[$upResultKey] -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, -1);
+    }
+
+    /**
+     * 总进球|第一节|大
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_one_total_sizes_big($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
+        // 总进球数
+        $allGoal = intval($newResultRecords[$oneResultKey] -> home_score) + intval($newResultRecords[$oneResultKey] -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, 1);
+    }
+
+    /**
+     * 总进球|第一节|小
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_one_total_sizes_small($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
+        // 总进球数
+        $allGoal = intval($newResultRecords[$oneResultKey] -> home_score) + intval($newResultRecords[$oneResultKey] -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, -1);
+    }
+
+    /**
+     * 总进球|第二节|大
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_two_total_sizes_big($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
+        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        // 总进球数
+        $allGoal = intval($newResultRecords[$twoResultKey] -> home_score) + intval($newResultRecords[$twoResultKey] -> guest_score)
+            - intval($newResultRecords[$oneResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, 1);
+    }
+
+    /**
+     * 总进球|第二节|小
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_two_total_sizes_small($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
+        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        // 总进球数
+        $allGoal = intval($newResultRecords[$twoResultKey] -> home_score) + intval($newResultRecords[$twoResultKey] -> guest_score)
+            - intval($newResultRecords[$oneResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, -1);
+    }
+
+    /**
+     * 总进球|第三节|大
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_three_total_sizes_big($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
+        // 总进球数
+        $allGoal = intval($newResultRecords[$threeResultKey] -> home_score) + intval($newResultRecords[$threeResultKey] -> guest_score)
+            - intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, 1);
+    }
+
+    /**
+     * 总进球|第三节|小
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_three_total_sizes_small($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
+        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
+        // 总进球数
+        $allGoal = intval($newResultRecords[$threeResultKey] -> home_score) + intval($newResultRecords[$threeResultKey] -> guest_score)
+            - intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, -1);
+    }
+
+    /**
+     * 总进球|第四节|大
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_four_total_sizes_big($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
+        $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
+        // 总进球数
+        $allGoal = intval($newResultRecords[$fourResultKey] -> home_score) + intval($newResultRecords[$fourResultKey] -> guest_score)
+            - intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, 1);
+    }
+
+    /**
+     * 总进球|第四节|小
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function lq_four_total_sizes_small($model, $resultModel, $resultRecords){
+        $newResultRecords = array_reverse($resultRecords);
+        $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
+        $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
+        // 总进球数
+        $allGoal = intval($newResultRecords[$fourResultKey] -> home_score) + intval($newResultRecords[$fourResultKey] -> guest_score)
+            - intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
+        return $this -> sizeCommon($model, $allGoal, -1);
+    }
 
     /**
      * 篮球 独赢规则
      */
-    public function capotRule($bet_match,$result_match,$result_match_r){
-        $bet_match = DB::table('money_buy_match')->where('match_id', 3144414)->first();
-        $result_match = DB::table('st_lq_result')->where('match_id', 3144414)->first();
-        $result_match_r = DB::table('st_lq_result_record')->where('match_id', 3144414)->get()->toArray();
+    public function lq_capot($bet_match,$result_match,$result_match_r){
+        if(empty($bet_match) || empty($result_match) || empty($result_match_r)) return false;
 
-        dd($bet_match);
+        // 篮球 独赢
+        if($bet_match->p_code != 'lq_capot') return false;
+        //获取主客队全场得分
+        $home_score = $result_match->home_score;
+        $guest_score = $result_match->guest_score;
+        //主队
+        if($bet_match->odds_code == 'lq_capot_home'){
+            if($home_score > $guest_score) return 1;
+        }
+        //客队
+        if($bet_match->odds_code == 'lq_capot_guest'){
+            if($home_score < $guest_score) return 1;
+        }
+        //上半场
+        if(strstr($bet_match->odds_code,"half")){
+            //获取上半场最终数据
+            $last_stage_data = $this->getStageData($result_match_r,'上半场');
+            //获取主客队上半场得分
+            $home_score = $last_stage_data->home_score;
+            $guest_score = $last_stage_data->guest_score;
+            //主队 上半场
+            if($bet_match->odds_code == 'lq_half_capot_home'){
+                if($home_score > $guest_score) return 1;
+            }
+            //客队 上半场
+            if($bet_match->odds_code == 'lq_half_capot_guest'){
+                if($home_score < $guest_score) return 1;
+            }
+        }
+        //第一节
+        if(strstr($bet_match->odds_code,"one")){
+            //获取第一节最终数据
+            $last_stage_data = $this->getStageData($result_match_r,'第一节');
+            //获取主客队第一节得分
+            $home_score = $last_stage_data->home_score;
+            $guest_score = $last_stage_data->guest_score;
+            //主队 第一节
+            if($bet_match->odds_code == 'lq_one_capot_home'){
+                if($home_score > $guest_score) return 1;
+            }
+            //客队 第一节
+            if($bet_match->odds_code == 'lq_one_capot_guest'){
+                if($home_score < $guest_score) return 1;
+            }
+        }
+        //第二节
+        if(strstr($bet_match->odds_code,"two")){
+            //获取第二节最终数据
+            $last_stage_data = $this->getStageData($result_match_r,'第二节');
+            //获取主客队第二节得分
+            $home_score = $last_stage_data->home_score;
+            $guest_score = $last_stage_data->guest_score;
+            //主队 第二节
+            if($bet_match->odds_code == 'lq_two_capot_home'){
+                if($home_score > $guest_score) return 1;
+            }
+            //客队 第二节
+            if($bet_match->odds_code == 'lq_two_capot_guest'){
+                if($home_score < $guest_score) return 1;
+            }
+        }
+        //第三节
+        if(strstr($bet_match->odds_code,"three")){
+            //获取第三节最终数据
+            $last_stage_data = $this->getStageData($result_match_r,'第三节');
+            //获取主客队第三节得分
+            $home_score = $last_stage_data->home_score;
+            $guest_score = $last_stage_data->guest_score;
+            //主队 第三节
+            if($bet_match->odds_code == 'lq_three_capot_home'){
+                if($home_score > $guest_score) return 1;
+            }
+            //客队 第三节
+            if($bet_match->odds_code == 'lq_three_capot_guest'){
+                if($home_score < $guest_score) return 1;
+            }
+        }
+        //第四节
+        if(strstr($bet_match->odds_code,"four")){
+            //获取第四节最终数据
+            $last_stage_data = $this->getStageData($result_match_r,'第四节');
+            //获取主客队第四节得分
+            $home_score = $last_stage_data->home_score;
+            $guest_score = $last_stage_data->guest_score;
+            //主队 第四节
+            if($bet_match->odds_code == 'lq_four_capot_home'){
+                if($home_score > $guest_score) return 1;
+            }
+            //客队 第四节
+            if($bet_match->odds_code == 'lq_four_capot_guest'){
+                if($home_score < $guest_score) return 1;
+            }
+        }
+
+        return -1;
     }
 
+    /**
+     * 篮球 球队得分大小
+     */
+    public function lq_team_score($bet_match,$result_match,$result_match_r){
+
+        if(empty($bet_match) || empty($result_match) || empty($result_match_r)) return false;
+        // 篮球 球队得分大小
+        if($bet_match->p_code != 'lq_team_score') return false;
+        //获取主客队全场得分
+        $home_score = $result_match->home_score;
+        $guest_score = $result_match->guest_score;
+        //界定 分数 条件
+        $condition = $bet_match->condition;
+        //赔率代码
+        $odds_code = $bet_match->odds_code;
+
+        //全场 主队 得分大
+        if($odds_code == 'lq_score_home_big'){
+            if($home_score > $condition) return 1;
+        }
+        //全场 主队 得分小
+        if($odds_code == 'lq_score_home_small'){
+            if($home_score < $condition) return 1;
+        }
+        //全场 客队 得分大
+        if($odds_code == 'lq_score_guest_big'){
+            if($guest_score > $condition) return 1;
+        }
+        //全场 主队 得分小
+        if($odds_code == 'lq_score_guest_small'){
+            if($guest_score < $condition) return 1;
+        }
+        //上半场
+        if(strstr($odds_code,"half")){
+            //获取上半场最终数据
+            $last_stage_data = $this->getStageData($result_match_r,'上半场');
+            //获取主客队上半场得分
+            $home_score = $last_stage_data->home_score;
+            $guest_score = $last_stage_data->guest_score;
+            //上半场主队得分大
+            if($odds_code == 'lq_half_score_home_big'){
+                if($home_score > $condition) return 1;
+            }
+            //上半场主队得分小
+            if($odds_code == 'lq_half_score_home_small'){
+                if($home_score < $condition) return 1;
+            }
+            //上半场客队得分大
+            if($odds_code == 'lq_half_score_guest_big'){
+                if($guest_score > $condition) return 1;
+            }
+            //上半场客队得分小
+            if($odds_code == 'lq_half_score_guest_small'){
+                if($guest_score < $condition) return 1;
+            }
+        }
+        //第一节
+        if(strstr($odds_code,"one")){
+            //获取第一节最终数据
+            $last_stage_data = $this->getStageData($result_match_r,'第一节');
+            //获取主客队第一节得分
+            $home_score = $last_stage_data->home_score;
+            $guest_score = $last_stage_data->guest_score;
+            //第一节主队得分大
+            if($odds_code == 'lq_one_score_home_big'){
+                if($home_score > $condition) return 1;
+            }
+            //第一节主队得分小
+            if($odds_code == 'lq_one_score_home_small'){
+                if($home_score < $condition) return 1;
+            }
+            //第一节客队得分大
+            if($odds_code == 'lq_one_score_guest_big'){
+                if($guest_score > $condition) return 1;
+            }
+            //第一节客队得分小
+            if($odds_code == 'lq_one_score_guest_small'){
+                if($guest_score < $condition) return 1;
+            }
+        }
+        //第二节
+        if(strstr($odds_code,"two")){
+            //获取第二节最终数据
+            $last_stage_data = $this->getStageData($result_match_r,'第二节');
+            //获取主客队第二节得分
+            $home_score = $last_stage_data->home_score;
+            $guest_score = $last_stage_data->guest_score;
+            //第二节主队得分大
+            if($odds_code == 'lq_two_score_home_big'){
+                if($home_score > $condition) return 1;
+            }
+            //第二节主队得分小
+            if($odds_code == 'lq_two_score_home_small'){
+                if($home_score < $condition) return 1;
+            }
+            //第二节客队得分大
+            if($odds_code == 'lq_two_score_guest_big'){
+                if($guest_score > $condition) return 1;
+            }
+            //第二节客队得分小
+            if($odds_code == 'lq_two_score_guest_small'){
+                if($guest_score < $condition) return 1;
+            }
+        }
+        //第三节
+        if(strstr($odds_code,"three")){
+            //获取第三节最终数据
+            $last_stage_data = $this->getStageData($result_match_r,'第三节');
+            //获取主客队第三节得分
+            $home_score = $last_stage_data->home_score;
+            $guest_score = $last_stage_data->guest_score;
+            //第三节主队得分大
+            if($odds_code == 'lq_three_score_home_big'){
+                if($home_score > $condition) return 1;
+            }
+            //第三节主队得分小
+            if($odds_code == 'lq_three_score_home_small'){
+                if($home_score < $condition) return 1;
+            }
+            //第三节客队得分大
+            if($odds_code == 'lq_three_score_guest_big'){
+                if($guest_score > $condition) return 1;
+            }
+            //第三节客队得分小
+            if($odds_code == 'lq_three_score_guest_small'){
+                if($guest_score < $condition) return 1;
+            }
+        }
+        //第四节
+        if(strstr($odds_code,"four")){
+            //获取第四节最终数据
+            $last_stage_data = $this->getStageData($result_match_r,'第四节');
+            //获取主客队第四节得分
+            $home_score = $last_stage_data->home_score;
+            $guest_score = $last_stage_data->guest_score;
+            //第四节主队得分大
+            if($odds_code == 'lq_four_score_home_big'){
+                if($home_score > $condition) return 1;
+            }
+            //第四节主队得分小
+            if($odds_code == 'lq_four_score_home_small'){
+                if($home_score < $condition) return 1;
+            }
+            //第四节客队得分大
+            if($odds_code == 'lq_four_score_guest_big'){
+                if($guest_score > $condition) return 1;
+            }
+            //第四节客队得分小
+            if($odds_code == 'lq_four_score_guest_small'){
+                if($guest_score < $condition) return 1;
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * @param $result_match_r 赛事结果记录
+     * @param $stage 查询阶段 上半场/第一节...
+     * @return mixed 返回各阶段最新一条结果数据
+     */
+    public function getStageData($result_match_r=[],$stage){
+        if(empty($result_match_r))  return false;
+        $half_data = [];
+        foreach ($result_match_r as $k=>$v){
+            //取出上半场数据
+            if($v->match_process == $stage){
+                $half_data[] = $v;
+            }
+        }
+        //根据id倒序排列
+        $half_data_sorc = array_column($half_data,'id');
+        array_multisort($half_data_sorc,SORT_DESC,$half_data);
+
+        //获取id最大的一条数据
+        foreach ($half_data as $k=>$v){
+            if($v->id == $half_data_sorc[0]){
+                $last_half_data = $v;
+            }
+        }
+
+        return $last_half_data;
+    }
+
+
+    //结果单/双 home_score 主队进球数 guest_score 客队进球数 home_rate 主队让球 guest_rate 客队让球
+    public function  lq_two_sides($model,$resultModel,$resultRecords){
+        $resulttod = intval($resultModel->home_score) + intval($resultModel->guest_score) + intval($resultModel->guest_rate) + intval($resultModel->home_rate);
+        if($resulttod%2==0){
+            $data = 2;
+        }else{
+            $data = 2;
+        }
+        if($data = intval($model->condition)){
+            return 1;
+        }else{
+            return -1;
+        }
+
+    }
+
+    //最后进球球队 last_score 最后进球球队 model:money_buy_match  resultModel:st_lq_result
+    public function lq_last_number($model,$resultModel,$resultRecords){
+    	if($resultModel->last_score == $model->condition){
+    		return 1;
+    	}else{
+    		return -1;
+    	}
+    }
 }

+ 77 - 0
app/Lib/Settlement/Adapter/WqRule.php

@@ -12,4 +12,81 @@ namespace App\Lib\Settlement\Adapter;
 class WqRule
 {
 
+    /**
+     * 总局数:大/小
+     */
+    public function wq_total_number($bet_match,$result_match,$result_match_r){
+        if(empty($bet_match) || empty($result_match) || empty($result_match_r)) return false;
+        //总局数:大/小
+        if($bet_match->p_code != 'wq_total_number') return false;
+        //获取主客队全场得分
+        $home_score = $result_match->home_score;
+        $guest_score = $result_match->guest_score;
+        //界定 分数 条件
+        $condition = $bet_match->condition;
+        //赔率代码
+        $odds_code = $bet_match->odds_code;
+        //总局数大
+        if($odds_code == 'wq_total_number_big'){
+            if(($home_score+$guest_score) > $condition) return 1;
+        }
+        //总局数小
+        if($odds_code == 'wq_total_number_small'){
+            if(($home_score+$guest_score) < $condition) return 1;
+        }
+
+        return -1;
+    }
+
+    /**
+     * 总局数:单/双
+     */
+    public function wq_two_sides($bet_match,$result_match,$result_match_r){
+        if(empty($bet_match) || empty($result_match) || empty($result_match_r)) return false;
+        //总局数:单/双
+        if($bet_match->p_code != 'wq_two_sides') return false;
+        //获取主客队全场得分
+        $home_score = $result_match->home_score;
+        $guest_score = $result_match->guest_score;
+        //赔率代码
+        $odds_code = $bet_match->odds_code;
+        //总局数单
+        if($odds_code == 'wq_two_sides_single'){
+            if(($home_score+$guest_score)%2 != 0) return 1;//不能被2整除
+        }
+        //总局数双
+        if($odds_code == 'wq_two_sides_double'){
+            if(($home_score+$guest_score)%2 == 0) return 1;//能被2整除
+
+        }
+        return -1;
+    }
+
+    /**
+     * 让局
+     */
+    public function wq_bureau(){
+
+    }
+
+    /**
+     * 冠军
+     */
+    public function wq_kemp(){
+
+    }
+
+    /**
+     * 让盘
+     */
+    public function wq_concede(){
+
+    }
+
+    /**
+     * 波胆
+     */
+    public function wq_bodan(){
+
+    }
 }

+ 260 - 38
app/Lib/Settlement/Adapter/ZqRule.php

@@ -10,6 +10,160 @@ namespace App\Lib\Settlement\Adapter;
 
 class ZqRule
 {
+    /**
+     * 全场|主队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function concede_home($model, $resultModel, $resultRecords) {
+        $this -> concedeFull($model, $resultModel, $resultRecords, 1);
+    }
+
+    /**
+     * 全场|客队|让球
+     * @param mixed $model 注单表数据
+     * @param mixed $resultModel 结果表数据
+     * @param mixed $resultRecords 结果记录表数据
+     * @return string 1:赢  -1:输  2:平  3:赢半平半  4:输半平半
+     */
+    public function concede_guest($model, $resultModel, $resultRecords) {
+        $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) {
+        $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) {
+        $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 size_home($model, $resultModel, $resultRecords) {
+        $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 size_guest($model, $resultModel, $resultRecords) {
+        $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_size_home($model, $resultModel, $resultRecords) {
+        $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_size_guest($model, $resultModel, $resultRecords) {
+        $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) {
+        $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) {
+        $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) {
+        $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) {
+        $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) {
+        $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) {
+        $this -> winHalf($model, $resultModel, $resultRecords, 0, 1);
+    }
+
     /**
      * 全场|[主、客]|让球
      * @param mixed $model 注单表数据
@@ -438,7 +592,7 @@ class ZqRule
      * @param $result_match  最终结果
      * @param $result_match_r  结果记录
      */
-    public function bodanRule($bet_match,$result_match,$result_match_r){
+    public function bodan($bet_match,$result_match,$result_match_r){
 //        $bet_match = DB::table('money_buy_match')->where('match_id', 3144414)->first();
 //        $result_match = DB::table('st_zq_result')->where('match_id', 3144414)->first();
 //        $result_match_r = DB::table('st_zq_result_record')->where('match_id', 3144414)->get()->toArray();
@@ -451,47 +605,28 @@ class ZqRule
         $bet_score = explode('-', $bet_match->condition);
         $bet_home_score = (int)$bet_score[0];
         $bet_guest_score = (int)$bet_score[1];
-        if($p_code == 'bodan'){
-            if(strstr($odds_code,"half")){//上半场
-                $half_data = [];
-                foreach ($result_match_r as $k=>$v){
-                    //取出上半场数据
-                    if($v->match_process == '上半场'){
-                        $half_data[] = $v;
-                    }
-                }
-                //根据id倒序排列
-                $half_data_sorc = array_column($half_data,'id');
-                array_multisort($half_data_sorc,SORT_DESC,$half_data);
-
-                //获取id最大的一条数据
-                foreach ($half_data as $k=>$v){
-                    if($v->id == $half_data_sorc[0]){
-                        $last_half_data = $v;
-                    }
-                }
-                //获取主客队上半场得分
-                $home_score = $last_half_data->home_score;
-                $guest_score = $last_half_data->guest_score;
-            }else{//全场
-                //获取主客队全场得分
-                $home_score = $result_match->home_score;
-                $guest_score = $result_match->guest_score;
-            }
+        if($p_code != 'bodan') return false;
 
-            //判断结果
-            if($bet_home_score == $home_score and $bet_guest_score == $guest_score)
-            {
-                $result = 1;//赢
-            }else{
-                $result = -1;//输
-            }
+        if(strstr($odds_code,"half")){//上半场
+            //获取上半场最终数据
+            $last_half_data = $this->getHalfData($result_match_r);
+            //获取主客队上半场得分
+            $home_score = $last_half_data->home_score;
+            $guest_score = $last_half_data->guest_score;
+        }else{//全场
+            //获取主客队全场得分
+            $home_score = $result_match->home_score;
+            $guest_score = $result_match->guest_score;
         }
-        return $result;
+
+        //判断结果
+        if($bet_home_score == $home_score and $bet_guest_score == $guest_score) return 1;
+
+        return -1;
     }
 
     //结果单/双 home_score 主队进球数 guest_score 客队进球数 home_rate 主队让球 guest_rate 客队让球
-    public function  Singledouble($model,$resultModel,$resultRecords){
+    public function  two_sides($model,$resultModel,$resultRecords){
         $resulttod = intval($resultModel->home_score) + intval($resultModel->guest_score) + intval($resultModel->guest_rate) + intval($resultModel->home_rate);
         if($resulttod%2==0){
             $data = 2;
@@ -507,7 +642,7 @@ class ZqRule
     } 
 
     //结果总数 home_score 主队进球数 guest_score 客队进球数 home_rate 主队让球 guest_rate 客队让球 u_home_score 上半场-主队进球数 u_guest_score 上半场-客队进球数
-    public function  Totalnum($model,$resultModel,$resultRecords){
+    public function  total_goal($model,$resultModel,$resultRecords){
         //全场总进球数
         $resulttod = intval($resultModel->home_score) + intval($resultModel->guest_score) + intval($resultModel->guest_rate) + intval($resultModel->home_rate);
         //上半场总进球数
@@ -522,5 +657,92 @@ class ZqRule
 
     }
 
+    /**
+     * 半场/全场 投注规则
+     */
+    public function half_full($bet_match,$result_match,$result_match_r){
+//        $bet_match = DB::table('money_buy_match')->where('match_id', 3144414)->first();
+//        $result_match = DB::table('st_zq_result')->where('match_id', 3144414)->first();
+//        $result_match_r = DB::table('st_zq_result_record')->where('match_id', 3144414)->get()->toArray();
+
+        if(empty($bet_match) || empty($result_match) || empty($result_match_r)) return false;
+
+        //获取父/子级赔率代码
+        $p_code = $bet_match->p_code;
+        $odds_code = $bet_match->odds_code;
+
+        //获取上半场最终数据
+        $last_half_data = $this->getHalfData($result_match_r);
+        //获取主客队上半场得分
+        $half_home_score = $last_half_data->home_score;
+        $half_guest_score = $last_half_data->guest_score;
+
+        //获取主客队全场得分
+        $full_home_score = $result_match->home_score;
+        $full_guest_score = $result_match->guest_score;
+        //半场/全场盘口
+        if($p_code != 'half_full') return false;
+        switch ($odds_code ) {
+            case 'half_full_home_home':// 主-主
+                if($half_home_score > $half_guest_score and $full_home_score > $full_guest_score) return 1;
+                break;
+            case 'half_full_home_dogfall':// 主-和
+                if($half_home_score > $half_guest_score and $full_home_score == $full_guest_score) return 1;
+                break;
+            case 'half_full_home_guest':// 主-客
+                if($half_home_score > $half_guest_score and $full_home_score < $full_guest_score) return 1;
+                break;
+            case 'half_full_dogfall_home':// 和-主
+                if($half_home_score == $half_guest_score and $full_home_score > $full_guest_score) return 1;
+                break;
+            case 'half_full_dogfall_dogfall':// 和-和
+                if($half_home_score == $half_guest_score and $full_home_score == $full_guest_score) return 1;
+                break;
+            case 'half_full_dogfall_guest':// 和-客
+                if($half_home_score == $half_guest_score and $full_home_score < $full_guest_score) return 1;
+                break;
+            case 'half_full_guest_home':// 客-主
+                if($half_home_score < $half_guest_score and $full_home_score > $full_guest_score) return 1;
+                break;
+            case 'half_full_guest_dogfall':// 客-和
+                if($half_home_score < $half_guest_score and $full_home_score == $full_guest_score) return 1;
+                break;
+            case 'half_full_guest_guest':// 客-客
+                if($half_home_score < $half_guest_score and $full_home_score < $full_guest_score) return 1;
+                break;
+            default:
+                return false;
+        }
+
+        return -1;
+    }
+
+    /**
+     * @param $result_match_r 赛事结果记录
+     * @return mixed 返回最新一条上半场结果数据
+     */
+    public function getHalfData($result_match_r=[]){
+        if(empty($result_match_r))  return false;
+        $half_data = [];
+        foreach ($result_match_r as $k=>$v){
+            //取出上半场数据
+            if($v->match_process == '上半场'){
+                $half_data[] = $v;
+            }
+        }
+        //根据id倒序排列
+        $half_data_sorc = array_column($half_data,'id');
+        array_multisort($half_data_sorc,SORT_DESC,$half_data);
+
+        //获取id最大的一条数据
+        foreach ($half_data as $k=>$v){
+            if($v->id == $half_data_sorc[0]){
+                $last_half_data = $v;
+            }
+        }
+
+        return $last_half_data;
+    }
+
 
 }

+ 114 - 137
app/Lib/Settlement/SettlementSql.php

@@ -41,6 +41,7 @@ class SettlementSql
     private  $sqlArray = [] ;
 
     public $gameType = '' ;  //类型
+    public $match_id = 0 ;  //比赛ID
     public $resultId = 0 ; //比赛最终结果ID
     public $resultModel = null ; //比赛最终结果对像MODEL
     public $resultRecords = [] ; //比赛中间结果对像数组;
@@ -74,20 +75,22 @@ class SettlementSql
             }
             $this->writeStatusBegin($ComendNoticModel);
 
-            $allmatchs = $this->getAllMatchIdArrays($ComendNoticModel->game_code, $ComendNoticModel->match_id, 0);
+            $allmatchs = DB::table('money_buy_match')->where(['game_code'=>$ComendNoticModel->game_code,'match_id'=>$ComendNoticModel->match_id,'result'=>0])->get();
              if (empty($allmatchs)) {
                 $this->writeStatusEndOk($ComendNoticModel);
                 DB::commit();
                 return  $this->makeData(1,'本赛事无订单数据,退出');
             }
 
+            $this->gameType = $ComendNoticModel->game_code ;
+            $this->match_id =  $ComendNoticModel->match_id ;
+
             $this->setAdapterObj($ComendNoticModel->game_code);
             $this->RefClass = new  \ReflectionClass(  $this->AdapterObj ) ;
             $this->getCompResult($ComendNoticModel->game_code,$ComendNoticModel->match_id);
 
-            foreach ($allmatchs  as $buymatchmodel){
-                    $this->domatchPresess($buymatchmodel);
-            }
+            $this->Settlement_simplex($this->gameType,$this->match_id);
+            $this->Settlement_str($this->gameType,$this->match_id);
 
             DB::rollback();
             return  $this->makeData(1,'success-all');
@@ -99,92 +102,130 @@ class SettlementSql
         }
     }
 
+    //单式订单结算处理
+    private  function   Settlement_simplex($game_type,$match_id){
+        $buyModels = DB::table('money_buy_simplex')->where(['match_id'=>$match_id,'game_status'=>0])->get();
+        if (empty($buyModels)){ return true; }
+        $buymatchModles = DB::table('money_buy_match')->where(['match_id'=>$match_id,'bet_type'=>1,'result'=>0])->orderby('batch_id','asc')->get();
+        if (empty($buymatchModles)) { return true ; }
+
+        $buyKeyModel =  $buymatchKeyModles = [] ;
+        foreach ($buyModels as $val){
+            $batch_id = $val->batch_id;
+            $buyKeyModel[$batch_id] = $val;
+        }
+        foreach ($buymatchModles as $val){
+            $batch_id = $val->batch_id;
+            $buymatchKeyModles[$batch_id][] = $val;
+        }
 
-    //拼装  逻辑 sql;
-    private  function  domatchPresess($model){
-        $fun = $model->odds_code ;
-        if ( $this->RefClass->hasMethod( $fun)){
-                $winorfalse = $this->AdapterObj->$fun($model,$this->resultModel,$this->resultRecords);
-                $this->makesql_up_buymatch_winorfalse($model->id,$winorfalse,date("Y-m-d H:i:s"));
+        foreach ($buyKeyModel as $batch_id=>$val){
+            $money = 0 ;
+            $allgame_status = 0 ;
+            foreach ($buymatchKeyModles as $sub_batch_id=>$sval){
 
-                if ($model->bet_type ==2){
-                      if ($winorfalse == -1){
-                          //串式,一个错,全部错了.....
-                          $this->makesql_up_serial_lose($model);
-                          return ;
-                      }
-                }
+                     $winorfalse = $this->winOrfalseInfo($sval);
+                     if (!in_array($winorfalse,[-1,1,2,3,4])){     throw  new  \Exception('胜负规则结果数据错!',4005);     }
+                     $this->makesql_up_buymatch_winorfalse($sval->id,$winorfalse,date("Y-m-d H:i:s"));
 
-                $mainmodels = $this->GetBuyStrBatchIdArrays($model->batch_id,$model->bet_type);
-                $lessCount = $mainmodels[0]->wait_match_num;
-                if ($lessCount > 0 ){
-                    //还有没结束的赛事,不急做结算处理
-                    $this->wait_match_num_desc($model->batch_id,$model->bet_type);
-                    return  true  ;
-                }
+                     if ($winorfalse != -1){
+                         $peilvretarr = $this->winOddsCalculation([['odds'=>$sval->odds,'winOrLose'=>$winorfalse]]);
+                         $money +=  $peilvretarr['returnMoney'] * $sval->bet_money ;
+                         $allgame_status++;
+                     }
+            }
 
-                $this->doSettlement($model);
+            $allgame_status = ($allgame_status>0 ) ?  1 : 2 ;
 
-        }else{
-            throw  new  \Exception('找不到此玩法的胜负规则逻辑!',4005);
+            $sql = "update  money_buy_simplex   set   game_status=$allgame_status,wait_match_num=0,gain_money=$money where   match_id=$this->match_id and  batch_id=$batch_id   ";
+            $this->sqlArray[] = $sql ;
+
+            $this->sql_accountdetail_money($val->account_identity,$money);
+            $this->sql_moneydetail_log($val,null,$money);
+
+            return true;
         }
-    }
 
-    private function   wait_match_num_desc($batch_id,$type){
-        $table = ($type ==1)? 'money_buy_simplex': 'money_buy_str';
-        $sql = "update  $table  set    wait_match_num=wait_match_num-1 where  batch_id='$batch_id' ";
-        $this->sqlArray[] = $sql;
     }
 
-    //实现结算相关的逻辑
-    //逐个计算每个下单情况给用户加钱  {加用户余额,写流水详细}
-    private function  doSettlement($model){
-           $batchid = $model->batch_id ;
-           $bettype = $model->bet_type ;
+    //串式订单结算处理
+    private function   Settlement_str($game_type,$match_id){
+           $matchModels = DB::table('money_buy_match')->where(['match_id'=>$match_id,'bet_type'=>2,'game_code'=>$game_type])->get();
+           if (empty($matchModels)) {  return true; }
+
+           $batch_ids_array = [] ;
+           $matchKeyModels = [] ;
+           foreach ($matchModels as $val){
+                $matchKeyModels[$val->batch_id][] = $val ;
+                if (!in_array($val->batch_id,$batch_ids_array)){
+                    $batch_ids_array[] = $val->batch_id;
+                }
+           }
 
+           $buyModels =  DB::table('money_buy_str')->whereIn( 'batch_id',$batch_ids_array)->get();
+           $buyKeyModels = [] ;
+           if (empty($buyModels)) { return true ; }
+           foreach ($buyModels  as $val){
+               $buyKeyModels[$val->batch_id][] = $val ;
+           }
 
-           $allbatchModels = $this->getAllBatchIdArrays($model->game_code,$batchid);
-           //存在相同比赛不同玩法串式,先前已经输的情况下,此时没有数据了....
-           if (empty($allbatchModels)){      return true;        }
+           foreach ($matchKeyModels as $key=>$sval_2){
+               foreach ($sval_2 as $sval){
+                       if ( $sval->match_id != $this->match_id ){ continue ; }
 
-           $allbuyModels = $this->GetBuyStrBatchIdArrays($batchid,$bettype);
-           $account_identity = '';
+                       $winorfalse = $this->winOrfalseInfo($sval);
+                       if (!in_array($winorfalse,[-1,1,2,3,4])){     throw  new  \Exception('胜负规则结果数据错!',4005);     }
 
-           if ($bettype ==2){
-               //串式投注
-               $con_arr = [] ;
-               foreach ($allbatchModels as $batchModel){
-                   $con_arr[] = ['odds'=>$batchModel->odds,'winorlose'=>$batchModel->result,'money'=>1];
-               }
-               $peilvArray = $this->winOddsCalculation(2,$con_arr);
-               foreach  ($allbuyModels as $buyModel){
-                       if  ($account_identity==''){    $account_identity = $buyModel->account_identity;   }
-                       $money = sprintf("%.2f",$buyModel->money * $peilvArray['returnMoney']) ;
-                       $sql = "update  money_buy_str set gain_money=$money  where  batch_id='$batchid' and id=$buyModel->id ";
+                       $this->makesql_up_buymatch_winorfalse($sval->id,$winorfalse,date("Y-m-d H:i:s"));
+                       $sql = "update money_buy_str  set  wait_match_num=wait_match_num-1 where  batch_id=$sval->batch-id ";
                        $this->sqlArray[] = $sql ;
+                       $sval->result = $winorfalse ;
+
+                       if ($winorfalse == -1){
+                              //一条出错,全部作为错误处理
+                              $this->makesql_up_serial_lose($sval);
+                              break;
+                       }
+
+                       if (!isset($buyKeyModels[$key]['0'])){ throw  new  \Exception('购买主记录不存在,数据有问题');}
+                       if ($buyKeyModels[$key]['0']->wait_match_num <=1 ){
+                           $oddsarr = [];
+                           //串式最后一条记录了,需要做结算处理了
+                           foreach (  $matchKeyModels[$key] as $fval){
+                                    $oddsarr[] = ['odds'=>$fval->odds,'winOrLose'=>$fval->result] ;
+                                    $peilvArray = $this->winOddsCalculation($oddsarr);
+                           }
+                           foreach  ($buyKeyModels[$key] as $buyModel){
+                               $money = sprintf("%.2f",$buyModel->money * $peilvArray['returnMoney']) ;
+                               $sql = "update  money_buy_str set gain_money=$money,game_status=1  where  batch_id='$key' and id=$buyModel->id ";
+                               $this->sqlArray[] = $sql ;
+
+                               $this->sql_accountdetail_money($buyModel->account_identity,$money);
+                               $this->sql_moneydetail_log($buyModel,null,$money);
+                           }
+                           break;
+                   }
                }
 
-           }else{
-               //单式投注
-               $money = 0 ;
-               if  ( $account_identity ==''){    $account_identity = $allbuyModels['0']->account_identity;   }
-               $money = 0 ;
-               foreach ($allbatchModels as $batchModel){
-                   $con_arr[] = ['odds'=>$model->odds,'winorlose'=>$batchModel->result,'money'=>$allbuyModels['0']->money];
-                   $money_odds_array = $this->winOddsCalculation(1,$con_arr);
-                   $money += sprintf("%.2f",$batchModel->bet_money * $money_odds_array['returnMoney'] ) ;
-               }
-
-               $sql = "update  money_buy_simplex set gain_money=$money  where  batch_id=$batchid ";
-               $this->sqlArray[] = $sql ;
            }
 
-           $money_diff = $this->get_money_chage($batchid,$bettype);
-           $this->sql_accountdetail_money($account_identity,$money_diff);
-           $this->sql_moneydetqil_log($allbuyModels['0'],$model,$money_diff);
 
     }
 
+    //输赢结果判断 $sval 为 money_buy_match  Model; 结果为  -1输  1赢  2平  3赢半平半  4输半平半
+    private  function  winOrfalseInfo($sval){
+        $fun = $sval->odds_code ;
+        $fun2 = $sval->p_code ;
+        if ( $this->RefClass->hasMethod($fun) ){
+            $winorfalse = $this->AdapterObj->$fun($sval,$this->resultModel,$this->resultRecords);
+        }elseif ( $this->RefClass->hasMethod($fun2) ){
+            $winorfalse = $this->AdapterObj->$fun2($sval,$this->resultModel,$this->resultRecords);
+        }else{
+            throw new \Exception('没有找到玩法输赢判断规则',40010);
+        }
+        return $winorfalse ;
+    }
+
     /**
      * 注单返现计算
      * @param mixed $dataArray 结果表数据 [['odds'=>xx,'winOrLose'=>1],[...]];
@@ -194,7 +235,7 @@ class SettlementSql
         $returnMoney = 1;
         // 循环计算每注返现赔率
         foreach ($dataArray as $value) {
-            $odds = intval($value['odds']);
+            $odds = floatval($value['odds']);
             // 因结果不同更改赔率
             switch (intval($value['winOrLose'])) {
                 case 1:
@@ -242,7 +283,7 @@ class SettlementSql
             $this->sql[] = $sql ;
     }
 
-    private function sql_moneydetqil_log($allbuyModel,$model,$money_diff){
+    private function sql_moneydetail_log($allbuyModel,$model,$money_diff){
             $uuid = self::UUID();
             $dtime = date("Y-m-d H:i:s");
             $detailModel = DB::table('Account_detailed')->where(['account_identity',$allbuyModel->account_indentity])->first();
@@ -259,28 +300,6 @@ class SettlementSql
 
     }
 
-
-
-    //计算  某个比赛结束后  对应订单的资金变化
-    private function  get_money_chage($batch_id,$type){
-        if ($type ==1 ){
-            $ret = DB::select("select  sum(gain_money-money) as dfmoney  from  money_buy_simplex  where   batch_id='$batch_id'");
-            if (!isset( $ret['0']['dfmoney'])){
-                throw  new \Exception("资金变化不正确!");
-            }
-            $moneydiff = sprintf("%.2f",$ret['0']['dfmoney']);
-        }else{
-
-            $ret = DB::select("select  sum(gain_money-money) as dfmoney  from  money_buy_str  where   batch_id='$batch_id'");
-            if (!isset( $ret['0']['dfmoney'])){
-                throw  new \Exception("资金变化不正确!");
-            }
-            $moneydiff = sprintf("%.2f",$ret['0']['dfmoney']);
-        }
-
-        return $moneydiff ;
-    }
-
     //生成串式失败的逻辑sql;
     private function  makesql_up_serial_lose($model){
             $batchid = $model->batch_id ;
@@ -299,27 +318,7 @@ class SettlementSql
         return true;
     }
 
- /*
-    private function masql_up_buymatch_false($batch_id,$type,$match_id=0){
-        $uptime = date("Y-m-d H:i:s");
-        $sql = " update  money_buy_match  set  result=-1 ,utime=$uptime,status=0  where batch_id=$batch_id  ";
-        $this->sqlArray[] = $sql;
-
-        if ($type==2){
-            $sql =  "update  money_buy_str  set   settle_status=1,game_status=3 ,wait_match_num=0  where  batch_id=$batch_id " ;
-        }else{
-            $sql =  "update  money_buy_simplex  set   settle_status=1,game_status=3 ,wait_match_num=wait_match_num-1   where  batch_id=$batch_id  and  match_id=$match_id " ;
-        }
-        $this->sqlArray[] = $sql;
-
-        return true ;
-    }
-   */
-
-
-
-
-    //设置 输赢 解析规则适配器
+     //设置 输赢 解析规则适配器
     private  function  setAdapterObj($game_type){
         $game_type = strtolower($game_type);
         if ( !isset($this->gameAllMap)){  throw  new \Exception('赛事类型错误-'.$game_type,4002);   return false;  }
@@ -386,29 +385,7 @@ class SettlementSql
     }
 
 
-    //某个赛事 所有下单数据记录
-    public function  getAllMatchIdArrays( $type,$matchid , $result = 0 ){
-            if (is_null($result)){
-                $ret = DB::table('money_buy_match')->where(['game_code'=>$type,'match_id'=>$matchid])->get();
-            }else{
-                $ret = DB::table('money_buy_match')->where(['game_code'=>$type,'match_id'=>$matchid,'result'=>$result])->get();
-            }
 
-            $this->AllMatchIdArrays = $ret;
-            return $ret;
-    }
-
-    public function  getAllBatchIdArrays($type,$batchid,$owhere=[]){
-        if (!empty($owhere)){
-            $where = array_merge(['game_code'=>$type,'batch_id'=>$batchid],$owhere);
-        }else{
-            $where = ['game_code'=>$type,'batch_id'=>$batchid] ;
-        }
-
-        $ret = DB::table('money_buy_match')->where($where)->order('id','asc')->get();
-        //if (empty($ret)){  throw new  \Exception('没有记录' ,4008);}
-        return $ret;
-    }
 
     //获取到某个用户的account模型和detail模型,用于用户的余额计算等使用
     public function  getUserInfo($account_name){
@@ -480,7 +457,7 @@ class SettlementSql
                 $models = DB::table('st_bq_result_record')->where('match_id',$match_id)->orderBy('id','asc')->get()->toArray();
                 break;
             case  'lq':
-                $model = DB::table('st_lq_resultn')->where('match_id',$match_id)->first();
+                $model = DB::table('st_lq_result')->where('match_id',$match_id)->first();
                 $models = DB::table('st_lq_result_record')->where('match_id',$match_id)->orderBy('id','asc')->get()->toArray();
                 break;
             case  'wq':

+ 18 - 0
app/Models/Comendnotice.php

@@ -0,0 +1,18 @@
+<?php
+/**
+*------Create thems Model------
+*------SCWPHP  Version 1.0.0------
+*------Dev Model Jions------
+*------Create Time 2017-06-13 18:45:24------
+*/
+namespace App\Models;
+
+use DB;
+
+
+class Comendnotice extends BaseModel {
+
+    protected $table = 'comendnotice';
+
+
+}

+ 5 - 1
app/Models/MoneyBuyStr.php

@@ -59,7 +59,11 @@ class MoneyBuyStr extends BaseModel {
             $data[$i]->detail_content = $data[$i]->settle_status.':'.$mun[0].' [<a class="detail" lay-event="detail" pid="id" uri="/admin/SoccerStringNoteList/detail/?id=" href="/admin/SoccerStringNoteList/detail/?id='.$data[$i]->id.'"> 详情 </a>]';
 
             //反水
-            $data[$i]->water_return = $data[$i]->money*$res->infocontent;
+            $data[$i]->water_return = '0';
+            $iffanshui = DB::table('account')->where('account',$data[$i]->account_name)->where('fanshui',1)->first();
+            if(!empty($iffanshui)){
+                $data[$i]->water_return = $data[$i]->money*$res->infocontent;
+            }
             $data[$i]->result = $data[$i]->water_return+$data[$i]->gain_money;
 
             $data[$i]->money_match_time = '投注:'.$data[$i]->money_time;

+ 5 - 1
app/Models/SportsNoteList.php

@@ -42,7 +42,11 @@ class SportsNoteList extends BaseModel {
             $data[$i]->match_id_order = '<span>'.$data[$i]->match_id.'</span><br>'.$data[$i]->order_id;
 
             //反水
-            $data[$i]->water_return = $data[$i]->money*$res->infocontent;
+            $data[$i]->water_return = '0';
+            $iffanshui = DB::table('account')->where('account',$data[$i]->account_name)->where('fanshui',1)->first();
+            if(!empty($iffanshui)){
+                $data[$i]->water_return = $data[$i]->money*$res->infocontent;
+            }
             $data[$i]->result = $data[$i]->water_return+$data[$i]->gain_money;
 
             $data[$i]->home_guest = $data[$i]->home_team.' VS '.$data[$i]->guest_team;