vali 6 gadi atpakaļ
vecāks
revīzija
bf26779f3a

+ 14 - 2
app/Lib/Settlement/Adapter/BqRule.php

@@ -163,8 +163,14 @@ class BqRule
             $return[$key] = json_decode(json_encode($tmpobj, 256));
         }
 
-        if (count($return) != 10 || !empty(array_diff([1, 2, 3, 4, 5, 6, 7, 8, 9, 'other'], array_keys($return)))) {
-            throw new  \Exception("棒球球结果不为10的数组,或match_process有错");
+        if ($RecoedModel->is_correct == 1) {
+            if (count($return) != 11 || !empty(array_diff([1, 2, 3, 4, 5, 6, 7, 8, 9, 'other', 'five'], array_keys($return)))) {
+                throw new  \Exception("棒球球结果不为11的数组,或match_process有错");
+            }
+        } else {
+            if (count($return) != 10 || !empty(array_diff([1, 2, 3, 4, 5, 6, 7, 8, 9, 'other'], array_keys($return)))) {
+                throw new  \Exception("棒球球结果不为10的数组,或match_process有错");
+            }
         }
 
         if ($type == 4) {
@@ -217,6 +223,12 @@ class BqRule
                 $return['half2']['guest'] += $tmp_guest;
             }
         }
+
+        if (isset($arr['five'])) {
+            $return['half']['home'] = intval($arr['five']->home);
+            $return['half']['guest'] = intval($arr['five']->guest);
+        }
+
         return $return;
     }
 

+ 106 - 17
app/Logic/WinfailLogic.php

@@ -67,11 +67,91 @@ class WinfailLogic
         if (empty($model)) {
             throw new  \Exception("没有找到赛事结果记录-" . $type . '-' . $match_id);
         }
+
+        //按赛事结算时,存在手动更改赛事结果的问题,如果有手动设置结果,就用手动结果覆盖真实结果
+        $this->FormatResult_all($type, $model['0']);
+
         return $model;
     }
 
 
-    //单式订单存在 单独设置比赛结果的情况,要分开处理
+    //格式化比赛结果为兼容以前的格式(主要因为有手动修改结果和自然采集到数据的问題)
+    //如果比赛结果表中的 is_correct=1时 手动输入结果覆盖旧字段的数据
+    //开始1-->
+
+    public function FormatResult_all($type, $resultObj)
+    {
+        switch ($type) {
+            case 'zq':
+                $this->FormatResult_zq($resultObj);
+                break;
+            case 'lq':
+                $this->FormatResult_lq($resultObj);
+                break;
+            case 'wq':
+                $this->FormatResult_wq($resultObj);
+                break;
+            case 'bq':
+                $this->FormatResult_bq($resultObj);
+                break;
+            default:
+                break;
+        }
+        return;
+    }
+
+    public function FormatResult_zq($resultObj)
+    {
+        if ($resultObj->is_correct != 1) {
+            return;
+        }
+        $handres = json_decode($resultObj->manual_result);
+
+        $resultObj->u_home_score = intval($handres->half->home);
+        $resultObj->u_guest_score = intval($handres->half->guest);
+        $resultObj->home_score = intval($handres->all->home);
+        $resultObj->guest_score = intval($handres->all->guest);
+
+
+        $tmp = ["home" => intval($handres->all_corner->home), "guest" => intval($handres->all_corner->guest), "home_half" => intval($handres->half_corner->home), "guest_half" => intval($handres->half_corner->home)];
+        $resultObj->corner_ball = json_encode($tmp, 256);
+
+        //其它结果因为废弃其玩法,就不用管了
+
+        return;
+    }
+
+    public function FormatResult_lq($resultObj)
+    {
+        if ($resultObj->is_correct != 1) {
+            return;
+        }
+        $resultObj->inning = $resultObj->manual_result;
+        return;
+    }
+
+    public function FormatResult_wq($resultObj)
+    {
+        if ($resultObj->is_correct != 1) {
+            return;
+        }
+        $resultObj->inning = $resultObj->manual_result;
+        return;
+    }
+
+    public function FormatResult_bq($resultObj)
+    {
+        if ($resultObj->is_correct != 1) {
+            return;
+        }
+        $resultObj->match_score_t = $resultObj->manual_result;
+        return;
+    }
+
+//结束1 -->
+
+
+//单式订单存在 单独设置比赛结果的情况,要分开处理
     public function getSimplexData($type, $match_id)
     {
         $return = [];
@@ -86,8 +166,9 @@ class WinfailLogic
         return $return;
     }
 
-    //找到订单详细数据
-    public function getMatchRecords($type, $match_id, $bet_type)
+//找到订单详细数据
+    public
+    function getMatchRecords($type, $match_id, $bet_type)
     {
         $return = [];
         $ret = DB::table("money_buy_match")->where(['game_code' => $type, 'match_id' => $match_id, 'bet_type' => $bet_type])->get();
@@ -101,7 +182,8 @@ class WinfailLogic
         return $return;
     }
 
-    public function getAdapterObj($game_type)
+    public
+    function getAdapterObj($game_type)
     {
         $game_type = strtolower($game_type);
         if (!isset($this->gameAllMap)) {
@@ -126,8 +208,9 @@ class WinfailLogic
         return $apd;
     }
 
-    //冠军比赛结果
-    public function getGjDatas($matchModel)
+//冠军比赛结果
+    public
+    function getGjDatas($matchModel)
     {
         $table = 'st_' . $matchModel->game_code . '_league_result';
         $where = ['lg_id' => $matchModel->lg_id, 'game_name' => $matchModel->game_code];
@@ -138,8 +221,9 @@ class WinfailLogic
         return $model;
     }
 
-    //冠军比赛结果
-    public function getGjDatasV2($game_code, $lg_id)
+//冠军比赛结果
+    public
+    function getGjDatasV2($game_code, $lg_id)
     {
         $table = 'st_' . $game_code . '_league_result';
         $where = ['lg_id' => $lg_id, 'game_name' => $game_code];
@@ -151,15 +235,17 @@ class WinfailLogic
     }
 
 
-    public function getOddsTypeData($game_code, $match_id)
+    public
+    function getOddsTypeData($game_code, $match_id)
     {
         $ret = DB::table('money_buy_match')->select("p_code", "odds_code", "condition", "bet_type", "is_champion")->where(['match_id' => $match_id, 'game_code' => $game_code])->groupBy('p_code', 'odds_code', 'condition', 'bet_type', 'is_champion')->get();
         return $ret;
     }
 
 
-    //胜负判断    NotiematchModel赛事结束通知model   $result普通赛事结果对像数组[冠军赛事下可能为空]    $GJresult冠军赛事结果对像数组[非冠军赛事为空]
-    public function doLogic($NotiematchModel, $result, $GJresult)
+//胜负判断    NotiematchModel赛事结束通知model   $result普通赛事结果对像数组[冠军赛事下可能为空]    $GJresult冠军赛事结果对像数组[非冠军赛事为空]
+    public
+    function doLogic($NotiematchModel, $result, $GJresult)
     {
         $game_code = $NotiematchModel->game_code;
         $match_id = $NotiematchModel->match_id;
@@ -222,8 +308,9 @@ class WinfailLogic
         return true;
     }
 
-    //得到每个玩法第一条记录 根据规则计算输赢
-    public function getFristRecord($game_code, $match_id, $ret)
+//得到每个玩法第一条记录 根据规则计算输赢
+    public
+    function getFristRecord($game_code, $match_id, $ret)
     {
         $return = [];
         foreach ($ret as $val) {
@@ -239,8 +326,9 @@ class WinfailLogic
     }
 
 
-    //对单式订单   单个更改过比赛结果的订单进行输赢判断  $orderInfoArray一维数组  $matchArray二维数组
-    public function WinFailOneOrder($orderInfo, $matchArray, $is_champion)
+//对单式订单   单个更改过比赛结果的订单进行输赢判断  $orderInfoArray一维数组  $matchArray二维数组
+    public
+    function WinFailOneOrder($orderInfo, $matchArray, $is_champion)
     {
         $game_code = $orderInfo->game_code;
         $match_id = $orderInfo->match_id;
@@ -304,8 +392,9 @@ class WinfailLogic
     }
 
 
-    //普通单式或串式订单输赢处理
-    public function WinFailOneOrderNomal($order_id, $bet_type = 1)
+//普通单式或串式订单输赢处理
+    public
+    function WinFailOneOrderNomal($order_id, $bet_type = 1)
     {
         if ($bet_type == 1) {
             $orderInfo = DB::table('money_buy_simplex')->where('order_id', $order_id)->first();

+ 3 - 3
datainf/logic/HttpServerOnlySet.php

@@ -652,10 +652,10 @@ class HttpServerOnlySet
             $moneytable = 'money_buy_simplex';
             //$ret = DB::table('money_buy_simplex')->where(['game_code' => $game_code, 'match_id' => $match_id, 'is_manual' => $is_manual])->whereIn('order_id', $order_ids)->get();
             $tmpwhere = [['game_code', '=', $game_code], ['match_id', '=', $match_id], ['is_manual', '=', $is_manual], ['roll_ratify', '>=', 0]];
-            $ret = DB::table('money_buy_simplex')->where($tmpwhere)->whereIn('order_id', $order_ids)->get();
+            $ret = DB::table('money_buy_simplex')->where($tmpwhere)->whereIn('order_id', $order_ids)->where('status', 1)->get();
         } else {
             $moneytable = 'money_buy_str';
-            $ret = DB::table('money_buy_str')->whereIn('order_id', $order_ids)->get();
+            $ret = DB::table('money_buy_str')->whereIn('order_id', $order_ids)->where('status', 1)->get();
         }
 
         if (empty($ret) || count($ret) <= 0) {
@@ -709,7 +709,7 @@ class HttpServerOnlySet
             if ($bettype == 1) {
                 $sql_tmp = "update $moneytable set  settle_status=1, gain_money=0, game_status=0 where  game_code='$game_code' and match_id=$match_id and  status=1 and order_id in ($order_str)  ";
             } else {
-                $sql_tmp = "update $moneytable set  settle_status=1, gain_money=0  where order_id in ($order_str)  ";
+                $sql_tmp = "update $moneytable set  settle_status=1, gain_money=0  where order_id in ($order_str) and  status=1 ";
             }
             $this->PushSqlToArray($sql_tmp);
         }