Browse Source

异常处理

彭俊 6 năm trước cách đây
mục cha
commit
69f51a70cb

+ 20 - 9
app/Http/Controllers/Admin/SoccerStringNoteListController.php

@@ -275,24 +275,35 @@ class SoccerStringNoteListController extends Controller
         }
         $order = \App\Models\MoneyBuyStr::where('id', $id)->first();
         $match = \App\Models\MoneyBuyMatch::where('batch_id', $order->batch_id)->where('bet_type', '2')->get();
-        $bet_type = 2; //串关注单
         $order_id = $order->order_id;
         for ($i = 0; $i < count($match); $i++) {
             $match_id = $match[$i]->match_id;
             $game_code = $match[$i]->game_code;
-            //判断输赢
-            $settlementWinFail = new SettlementWinFail();
-            $res = $settlementWinFail->ProcWinInfoByOneOrder($match_id, $order_id, $bet_type);
+            break;
         }
-        $order_ids = array($order->order_id);
-        //return $order_ids;
         //重新结算
-        $SettlementOrder = new SettlementOrder();
-        $settype = 2; //重新结算
-        $data = $SettlementOrder->reSettlement($order_ids, $bet_type, $settype, $game_code, $match_id, $match_status = 0);
+        $data = $this->do_settelement($order_id, $game_code, $match_id);
         return $data;
     }
 
+    //单订单手动提交结算
+    private function do_settelement($order_id, $game_code, $match_id)
+    {
+        $data = [
+            'token' => session('adminInfo.token'),    //外网
+            'order_ids' => $order_id,
+            'bettype' => 2,
+            'settype' => 2,
+            'game_code' => $game_code,
+            'match_id' => $match_id,
+            'change_status' => 0,
+            'is_manual' => 0,
+        ];
+        $ret = request_post(config('sconstant.url') . '/Settelement', $data);
+        return json_decode($ret, true);
+    }
+
+
     /**
      *串关注单批量结算
      */

+ 6 - 8
app/Http/Controllers/Admin/SportsbkController.php

@@ -114,16 +114,14 @@ class SportsbkController extends Controller {
 				'guest' => intval($req->guestn)?intval($req->guestn):0,
 			),
 		);
-		$array = array();
-		foreach($data as $key){
-			$array[] = $key['home'];
-			$array[] = $key['guest'];
-		}
+//		$array = array();
+//		foreach($data as $key){
+//			$array[] = $key['home'];
+//			$array[] = $key['guest'];
+//		}
 
 		//赛事下注单作废 处理
-		if(in_array(-1,$array)){
-			commonFunction::HandleInvalid($data,$match_id,$match_status,'lq');
-		}
+		commonFunction::HandleInvalid($data,$match_id,$match_status,'lq');
 
 		$guestscore =array(
 			'1' => $data[1]['guest'],//第一节客队比分

+ 10 - 12
app/Http/Controllers/Admin/SportsbqController.php

@@ -278,23 +278,21 @@ class SportsbqController extends Controller {
 				'guest' => intval($req->guestl)?intval($req->guestl):0,
 			),
         );
-		foreach($uscore as $key){
-			$data[] = $key['home'];
-			$data[] = $key['guest'];
-		}
+//		foreach($uscore as $key){
+//			$data[] = $key['home'];
+//			$data[] = $key['guest'];
+//		}
 
 		//赛事下注单作废 处理
-		if(in_array(-1,$data)){
-			commonFunction::HandleInvalid($uscore,$match_id,$match_status,'bq');
-		}
+		commonFunction::HandleInvalid($uscore,$match_id,$match_status,'bq');
 
 		$updatainfo = [
-			"home_score"=>$data['all']['home'],
-			"guest_score"=>$data['all']['guest'],
+			"home_score"=>$uscore['all']['home'],
+			"guest_score"=>$uscore['all']['guest'],
 			"match_score_t"=>json_encode($uscore),
-			"match_score"=>$data['all']['home'].':'.$data['all']['guest'],
-			"u_home_score"=>$data['five']['home'],
-			"u_guest_score"=>$data['five']['guest'],
+			"match_score"=>$uscore['all']['home'].':'.$uscore['all']['guest'],
+			"u_home_score"=>$uscore['five']['home'],
+			"u_guest_score"=>$uscore['five']['guest'],
 			'is_correct'=>1,
 		];
 		\App\Models\Stbqresult::where('match_id', $match_id)->update($updatainfo);

+ 5 - 7
app/Http/Controllers/Admin/SportsfootController.php

@@ -489,14 +489,12 @@ class SportsfootController extends Controller {
 				'guest' => intval($req->guestall)?intval($req->guestall):0,
 			),
 		);
-		foreach($data as $key){
-			$array[] = $key['home'];
-			$array[] = $key['guest'];
-		}
+//		foreach($data as $key){
+//			$array[] = $key['home'];
+//			$array[] = $key['guest'];
+//		}
 		//赛事下注单作废 处理
-		if(in_array(-1,$array)){
-			commonFunction::HandleInvalid($data,$match_id,$match_status,'zq');
-		}
+		commonFunction::HandleInvalid($data,$match_id,$match_status,'zq');
 
 		$penaltycard = array(
         	'home'=>intval($req->homeallcard)?intval($req->homeallcard):0,

+ 5 - 7
app/Http/Controllers/Admin/SportswqController.php

@@ -266,15 +266,13 @@ class SportswqController extends Controller {
 			),
 		);
 
-		foreach($data as $key){
-			$array[] = $key['home'];
-			$array[] = $key['guest'];
-		}
+//		foreach($data as $key){
+//			$array[] = $key['home'];
+//			$array[] = $key['guest'];
+//		}
 
 		//赛事下注单作废 处理
-		if(in_array(-1,$array)){
-			commonFunction::HandleInvalid($data,$match_id,$match_status,'wq');
-		}
+		commonFunction::HandleInvalid($data,$match_id,$match_status,'wq');
 
 		$updatainfo = [
 			"home_player_score"=>$data['all']['home'],

+ 244 - 65
app/Lib/Biz/Sport/Common.php

@@ -1378,29 +1378,38 @@ class Common
 		$moneyBuyMatch = new \App\Models\MoneyBuyMatch();
 
 		//获取赛事下所有单式注单
-		$select = ['money_buy_simplex.order_id', 'money_buy_simplex.match_id', 'money_buy_simplex.account_identity', 'money_buy_simplex.account_name','money_buy_simplex.money', 'money_buy_simplex.gain_money','money_buy_match.odds_code','st_odds_code.odds_name'];		
+		$select = ['money_buy_simplex.order_id', 'money_buy_simplex.match_id', 'money_buy_simplex.account_identity', 'money_buy_simplex.account_name','money_buy_simplex.money', 'money_buy_simplex.gain_money', 'money_buy_simplex.status', 'money_buy_simplex.settle_status', 'money_buy_simplex.game_status', 'money_buy_simplex.batch_id','money_buy_match.odds_code','money_buy_match.result','st_odds_code.odds_name'];
 		//obj
         $match_order_sim_obj = $moneyBuyMatch->allsimplexorder($match_id,$game_code,$select);
 
 		//获取赛事下所有串式注单
-		$select = ['money_buy_str.order_id', 'money_buy_match.match_id', 'money_buy_str.account_identity', 'money_buy_str.account_name','money_buy_str.money', 'money_buy_str.gain_money','st_odds_code.odds_name','money_buy_match.odds_code'];		
+		$select = ['money_buy_str.order_id', 'money_buy_match.match_id', 'money_buy_str.account_identity', 'money_buy_str.account_name','money_buy_str.money', 'money_buy_str.gain_money','money_buy_str.status','money_buy_str.settle_status','money_buy_str.game_status','st_odds_code.odds_name','money_buy_match.odds_code','money_buy_match.result',];
 		//obj
 		$match_order_str_obj = $moneyBuyMatch->allstrorder($match_id,$game_code,$select);
 
         //如果赛事下有 单式 注单
         $oddsData_sim = [];
+        $oddsData_sim_settle = [];
 		if(count($match_order_sim_obj) > 0 ){
 			//获取单式注单中 待处理注单
 			$oddsData_sim = self::getOrderData($data,$match_order_sim_obj,$game_code);
+            $oddsData_sim_settle = $oddsData_sim['settle'];
+            $oddsData_sim = $oddsData_sim['invalid'];
 		}
 
         //如果赛事下有 串式 注单
         $oddsData_str = [];
+        $oddsData_str_settle = [];
 		if(count($match_order_str_obj) > 0){
 			//获取串式注单中 待处理注单
 			$oddsData_str = self::getOrderData($data,$match_order_str_obj,$game_code);
+            $oddsData_str_settle = $oddsData_str['settle'];
+            $oddsData_str = $oddsData_str['invalid'];
 		}
 
+        $upapp = new \App\Models\SportsNoteList();
+        $upapp->settleorder($match_id,$oddsData_sim_settle,$oddsData_str_settle,$game_code);
+
 		//如果是已结算赛事 
 		if($match_status == 3){
 			//合并上半场/全场 待处理 单式+串式订单
@@ -1435,7 +1444,6 @@ class Common
                 $oddsData_str = $oddsData_str;
             }
             $type = 1;
-			$upapp = new \App\Models\SportsNoteList();
 			$upapp->delorder($match_id,$game_code,$oddsData_sim,$oddsData_str,$type);
 		}
 		//=== end ===
@@ -1446,210 +1454,381 @@ class Common
 	public static function getOrderData($data,$match_order,$game_code){
 		//===足球===
 		if($game_code == 'zq'){
-            //上半场
+            //上半场(作废)
             $matchOdds_h = [];
-            //全场
+            //上半场(待结算)
+            $matchOdds_half = [];
+            //全场(作废)
             $matchOdds_f = [];
+            //全场(待结算)
+            $matchOdds_fall = [];
             foreach($match_order as $k=>$v){
                 //上半场条件
                 if($data['half']['home'] == -1 and $data['half']['guest'] == -1){
-                    $matchOdds_h[] = self::getOrderJC('上半场',$v);
+                    if($v->status == 1){
+                        $matchOdds_h[] = self::getOrderJC('上半场',$v);
+                    }
+                }else{
+                    $matchOdds_half[] = self::getOrderJC('上半场',$v);
                 }
                 //全场条件
                 if($data['all']['home'] == -1 and $data['all']['guest'] == -1){
-                    $matchOdds_f[] = self::getOrderJC('全场',$v);
+                    if($v->status == 1){
+                        $matchOdds_f[] = self::getOrderJC('全场',$v);
+                    }
+                }
+                else{
+                    $matchOdds_fall[] = self::getOrderJC('全场',$v);
                 }
             }
 
             //合并待处理 注单
-			$orderData = array_merge($matchOdds_h,$matchOdds_f);
+			$orderData['invalid'] = array_merge($matchOdds_h,$matchOdds_f);
+            $orderData['settle'] = array_merge($matchOdds_half,$matchOdds_fall);
         }
         //====end===
 
         //==篮球===
         if($game_code == 'lq'){
 
-            //第一节
+            //第一节(作废)
             $matchOdds_o = [];
-            //第二节
+            //第一节(待结算)
+            $matchOdds_one = [];
+            //第二节(作废)
             $matchOdds_t = [];
-            //第三节
+            //第二节(待结算)
+            $matchOdds_two = [];
+            //第三节(作废)
             $matchOdds_s = [];
-            //第四节
+            //第三节(待结算)
+            $matchOdds_three = [];
+            //第四节(作废)
             $matchOdds_f = [];
-            //上半场
+            //第四节(待结算)
+            $matchOdds_four = [];
+            //上半场(作废)
             $matchOdds_hh = [];
-            //下半场
+            //上半场(待结算)
+            $matchOdds_half = [];
+            //下半场(作废)
             $matchOdds_ll = [];
-            //全场
+            //下半场(待结算)
+            $matchOdds_next = [];
+            //全场(作废)
 			$matchOdds_ff = [];
+            //全场(待结算)
+            $matchOdds_fall = [];
             
             foreach($match_order as $k=>$v){
                 //第一节条件
                 if($data[1]['home'] == -1 and $data[1]['guest'] == -1){
-                    $matchOdds_o[] = self::getOrderJC('一节',$v);
+                    if($v->status == 1){
+                        $matchOdds_o[] = self::getOrderJC('一节',$v);
+                    }
+                }else{
+                    $matchOdds_one[] = self::getOrderJC('一节',$v);
                 }
                 //第二节条件
                 if($data[2]['home'] == -1 and $data[2]['guest'] == -1){
-                    $matchOdds_t[] = self::getOrderJC('二节',$v);
+                    if($v->status == 1){
+                        $matchOdds_t[] = self::getOrderJC('二节',$v);
+                    }
+                }else{
+                    $matchOdds_two[] = self::getOrderJC('二节',$v);
                 }
                 //第三节条件
                 if($data[3]['home'] == -1 and $data[3]['guest'] == -1){
-                    $matchOdds_s[] = self::getOrderJC('三节',$v);
+                    if($v->status == 1){
+                        $matchOdds_s[] = self::getOrderJC('三节',$v);
+                    }
+                }else{
+                    $matchOdds_three[] = self::getOrderJC('三节',$v);
                 }
                 //第四节条件
                 if($data[4]['home'] == -1 and $data[4]['guest'] == -1){
-                    $matchOdds_f[] = self::getOrderJC('四节',$v);
+                    if($v->status == 1){
+                        $matchOdds_f[] = self::getOrderJC('四节',$v);
+                    }
+                }else{
+                    $matchOdds_four[] = self::getOrderJC('四节',$v);
                 }
                 //上半场条件
                 if($data[5]['home'] == -1 and $data[5]['guest'] == -1){
-                    $matchOdds_hh[] = self::getOrderJC('上半场',$v);
+                    if($v->status == 1){
+                        $matchOdds_hh[] = self::getOrderJC('上半场',$v);
+                    }
+                }else{
+                    $matchOdds_half[] = self::getOrderJC('上半场',$v);
                 }
                 //下半场条件
                 if($data[6]['home'] == -1 and $data[6]['guest'] == -1){
-                    $matchOdds_ll[] = self::getOrderJC('下半场',$v);
+                    if($v->status == 1){
+                        $matchOdds_ll[] = self::getOrderJC('下半场',$v);
+                    }
+                }else{
+                    $matchOdds_next[] = self::getOrderJC('下半场',$v);
                 }
                 //全场条件
                 if($data['all']['home'] == -1 and $data['all']['guest'] == -1){
-                    $matchOdds_ff[] = self::getOrderJC('全场',$v);
-                    $matchOdds_ff[] = self::getOrderJC('最后一位数',$v);
+                    if($v->status == 1){
+                        $matchOdds_ff[] = self::getOrderJC('全场',$v);
+                        $matchOdds_ff[] = self::getOrderJC('最后一位数',$v);
+                    }
+                }else{
+                    $matchOdds_fall[] = self::getOrderJC('全场',$v);
+                    $matchOdds_fall[] = self::getOrderJC('最后一位数',$v);
                 }
 
             }
             //合并待处理 注单
-			$orderData = array_merge($matchOdds_o,$matchOdds_t,$matchOdds_s,$matchOdds_f,$matchOdds_hh,$matchOdds_ll,$matchOdds_ff);
+			$orderData['invalid'] = array_merge($matchOdds_o,$matchOdds_t,$matchOdds_s,$matchOdds_f,$matchOdds_hh,$matchOdds_ll,$matchOdds_ff);
+            $orderData['settle'] = array_merge($matchOdds_one,$matchOdds_two,$matchOdds_three,$matchOdds_four,$matchOdds_half,$matchOdds_next,$matchOdds_fall);
         }
         //===end===
 
         //===网球===
         if($game_code == 'wq'){
-            //第一盘
+            //第一盘(作废)
             $matchOdds_o = [];
-            //第二盘
+            //第一盘(待结算)
+            $matchOdds_one = [];
+            //第二盘(作废)
             $matchOdds_t = [];
-            //第三盘
+            //第二盘(待结算)
+            $matchOdds_two = [];
+            //第三盘(作废)
             $matchOdds_s = [];
-            //第四盘
+            //第三盘(待结算)
+            $matchOdds_three = [];
+            //第四盘(作废)
             $matchOdds_fo = [];
-            //第五盘
+            //第四盘(待结算)
+            $matchOdds_four = [];
+            //第五盘(作废)
             $matchOdds_fi = [];
-            //全场
+            //第五盘(待结算)
+            $matchOdds_five = [];
+            //全场(作废)
             $matchOdds_ff = [];
+            //全场(待结算)
+            $matchOdds_fall = [];
 
             foreach($match_order as $k=>$v){
                 //第一盘条件
                 if($data[1]['home'] == -1 and $data[1]['guest'] == -1){
-                    $matchOdds_o[] = self::getOrderJC('一盘',$v);
+                    if($v->status == 1){
+                        $matchOdds_o[] = self::getOrderJC('一盘',$v);
+                    }
+                }else{
+                    $matchOdds_one[] = self::getOrderJC('一盘',$v);
                 }
                 //第二盘条件
                 if($data[2]['home'] == -1 and $data[2]['guest'] == -1){
-                    $matchOdds_t[] = self::getOrderJC('二盘',$v);
+                    if($v->status == 1){
+                        $matchOdds_t[] = self::getOrderJC('二盘',$v);
+                    }
+                }else{
+                    $matchOdds_two[] = self::getOrderJC('二盘',$v);
                 }
                 //第三盘条件
                 if($data[3]['home'] == -1 and $data[3]['guest'] == -1){
-                    $matchOdds_s[] = self::getOrderJC('三盘',$v);
+                    if($v->status == 1){
+                        $matchOdds_s[] = self::getOrderJC('三盘',$v);
+                    }
+                }else{
+                    $matchOdds_three[] = self::getOrderJC('三盘',$v);
                 }
                 //第四盘条件
                 if($data[4]['home'] == -1 and $data[4]['guest'] == -1){
-                    $matchOdds_fo[] = self::getOrderJC('四盘',$v);
+                    if($v->status == 1){
+                        $matchOdds_fo[] = self::getOrderJC('四盘',$v);
+                    }
+                }else{
+                    $matchOdds_four[] = self::getOrderJC('四盘',$v);
                 }
                 //第五盘条件
                 if($data[5]['home'] == -1 and $data[5]['guest'] == -1){
-                    $matchOdds_fi[] = self::getOrderJC('五盘',$v);
+                    if($v->status == 1){
+                        $matchOdds_fi[] = self::getOrderJC('五盘',$v);
+                    }
+                }else{
+                    $matchOdds_five[] = self::getOrderJC('五盘',$v);
                 }
                 //全场条件
                 if($data['all']['home'] == -1 and $data['all']['guest'] == -1){
-                    $matchOdds_ff[] = self::getOrderJC('让盘',$v);
-                    $matchOdds_ff[] = self::getOrderJC('让局',$v);
-                    $matchOdds_ff[] = self::getOrderJC('总局数',$v);
-                    $matchOdds_ff[] = self::getOrderJC('冠军',$v);
+                    if($v->status == 1){
+                        $matchOdds_ff[] = self::getOrderJC('让盘',$v);
+                        $matchOdds_ff[] = self::getOrderJC('让局',$v);
+                        $matchOdds_ff[] = self::getOrderJC('总局数',$v);
+                        $matchOdds_ff[] = self::getOrderJC('冠军',$v);
+                    }
+                }else{
+                    $matchOdds_fall[] = self::getOrderJC('让盘',$v);
+                    $matchOdds_fall[] = self::getOrderJC('让局',$v);
+                    $matchOdds_fall[] = self::getOrderJC('总局数',$v);
+                    $matchOdds_fall[] = self::getOrderJC('冠军',$v);
                 }
             }
             //合并待处理 注单
-            $orderData = array_merge($matchOdds_o,$matchOdds_t,$matchOdds_s,$matchOdds_fo,$matchOdds_fi,$matchOdds_ff);
+            $orderData['invalid'] = array_merge($matchOdds_o,$matchOdds_t,$matchOdds_s,$matchOdds_fo,$matchOdds_fi,$matchOdds_ff);
+            $orderData['settle'] = array_merge($matchOdds_one,$matchOdds_two,$matchOdds_three,$matchOdds_four,$matchOdds_five,$matchOdds_fall);
         }
         //===end===
 
         //===棒球===
         if($game_code == 'bq'){
-            //第一局
+            //第一局(作废)
             $matchOdds_o = [];
-            //第二局
+            //第一局(待结算)
+            $matchOdds_one = [];
+            //第二局(作废)
             $matchOdds_t = [];
-            //第三局
+            //第二局(待结算)
+            $matchOdds_two = [];
+            //第三局(作废)
             $matchOdds_th = [];
-            //第四局
+            //第三局(待结算)
+            $matchOdds_three = [];
+            //第四局(作废)
             $matchOdds_fo = [];
-            //第五局
+            //第四局(待结算)
+            $matchOdds_four = [];
+            //第五局(作废)
             $matchOdds_fi = [];
-            //第六局
+            //第五局(待结算)
+            $matchOdds_five = [];
+            //第六局(作废)
             $matchOdds_si = [];
-            //第七局
+            //第六局(待结算)
+            $matchOdds_six = [];
+            //第七局(作废)
             $matchOdds_se = [];
-            //第八局
+            //第七局(待结算)
+            $matchOdds_seven = [];
+            //第八局(作废)
             $matchOdds_e = [];
-            //第九局
+            //第八局(待结算)
+            $matchOdds_eight = [];
+            //第九局(作废)
             $matchOdds_n = [];
-            //其他
+            //第九局(待结算)
+            $matchOdds_nine = [];
+            //其他(作废)
             $matchOdds_ot = [];
-            //前五局
+            //其他(待结算)
+            $matchOdds_other = [];
+            //前五局(作废)
             $matchOdds_five = [];
-            //全场
+            //前五局(待结算)
+            $matchOdds_fives = [];
+            //全场(作废)
             $matchOdds_ff = [];
+            //全场(待结算)
+            $matchOdds_fall = [];
 
             foreach($match_order as $k=>$v){
                 //第一局条件
                 if($data[1]['home'] == -1 and $data[1]['guest'] == -1){
-                    $matchOdds_o[] = self::getOrderJC('第一局',$v);
+                    if($v->status == 1){
+                        $matchOdds_o[] = self::getOrderJC('第一局',$v);
+                    }
+                }else{
+                    $matchOdds_one[] = self::getOrderJC('第一局',$v);
                 }
                 //第二局条件
                 if($data[2]['home'] == -1 and $data[2]['guest'] == -1){
-                    $matchOdds_t[] = self::getOrderJC('第二局',$v);
+                    if($v->status == 1){
+                        $matchOdds_t[] = self::getOrderJC('第二局',$v);
+                    }
+                }else{
+                    $matchOdds_two[] = self::getOrderJC('第二局',$v);
                 }
                 //第三局条件
                 if($data[3]['home'] == -1 and $data[3]['guest'] == -1){
-                    $matchOdds_th[] = self::getOrderJC('第三局',$v);
+                    if($v->status == 1){
+                        $matchOdds_th[] = self::getOrderJC('第三局',$v);
+                    }
+                }else{
+                    $matchOdds_three[] = self::getOrderJC('第三局',$v);
                 }
                 //第四局条件
                 if($data[4]['home'] == -1 and $data[4]['guest'] == -1){
-                    $matchOdds_fo[] = self::getOrderJC('第四局',$v);
+                    if($v->status == 1){
+                        $matchOdds_fo[] = self::getOrderJC('第四局',$v);
+                    }
+                }else{
+                    $matchOdds_four[] = self::getOrderJC('第四局',$v);
                 }
                 //第五局条件
                 if($data[5]['home'] == -1 and $data[5]['guest'] == -1){
-                    $matchOdds_fi[] = self::getOrderJC('第五局',$v);
+                    if($v->status == 1){
+                        $matchOdds_fi[] = self::getOrderJC('第五局',$v);
+                    }
+                }else{
+                    $matchOdds_five[] = self::getOrderJC('第五局',$v);
                 }
                 //第六局条件
                 if($data[6]['home'] == -1 and $data[6]['guest'] == -1){
-                    $matchOdds_si[] = self::getOrderJC('第六局',$v);
+                    if($v->status == 1){
+                        $matchOdds_si[] = self::getOrderJC('第六局',$v);
+                    }
+                }else{
+                    $matchOdds_six[] = self::getOrderJC('第六局',$v);
                 }
                 //第七局条件
                 if($data[7]['home'] == -1 and $data[7]['guest'] == -1){
-                    $matchOdds_se[] = self::getOrderJC('第七局',$v);
+                    if($v->status == 1){
+                        $matchOdds_se[] = self::getOrderJC('第七局',$v);
+                    }
+                }else{
+                    $matchOdds_seven[] = self::getOrderJC('第七局',$v);
                 }
                 //第八局条件
                 if($data[8]['home'] == -1 and $data[8]['guest'] == -1){
-                    $matchOdds_e[] = self::getOrderJC('第八局',$v);
+                    if($v->status == 1){
+                        $matchOdds_e[] = self::getOrderJC('第八局',$v);
+                    }
+                }else{
+                    $matchOdds_eight[] = self::getOrderJC('第八局',$v);
                 }
                 //第九局条件
                 if($data[9]['home'] == -1 and $data[9]['guest'] == -1){
-                    $matchOdds_n[] = self::getOrderJC('第九局',$v);
+                    if($v->status == 1){
+                        $matchOdds_n[] = self::getOrderJC('第九局',$v);
+                    }
+                }else{
+                    $matchOdds_nine[] = self::getOrderJC('第九局',$v);
                 }
                 //其他条件
                 if($data['other']['home'] == -1 and $data['other']['guest'] == -1){
-                    $matchOdds_ot[] = self::getOrderJC('其他',$v);
+                    if($v->status == 1){
+                        $matchOdds_ot[] = self::getOrderJC('其他',$v);
+                    }
+                }else{
+                    $matchOdds_other[] = self::getOrderJC('其他',$v);
                 }
                 //前五局条件
                 if($data['five']['home'] == -1 and $data['five']['guest'] == -1){
-                    $matchOdds_five[] = self::getOrderJC('前5局',$v);
+                    if($v->status == 1){
+                        $matchOdds_five[] = self::getOrderJC('前5局',$v);
+                    }
+                }else{
+                    $matchOdds_fives[] = self::getOrderJC('前5局',$v);
                 }
                 //全场条件
                 if($data['all']['home'] == -1 and $data['all']['guest'] == -1){
-                    $matchOdds_ff[] = self::getOrderJC('全场',$v);
+                    if($v->status == 1){
+                        $matchOdds_ff[] = self::getOrderJC('全场',$v);
+                    }
+                }else{
+                    $matchOdds_fall[] = self::getOrderJC('全场',$v);
                 }
 
             }
             //合并待处理 注单
-            $orderData = array_merge($matchOdds_o,$matchOdds_t,$matchOdds_th,$matchOdds_fo,$matchOdds_fi,$matchOdds_si,$matchOdds_se,$matchOdds_e,$matchOdds_n,$matchOdds_ot,$matchOdds_five,$matchOdds_ff);
+            $orderData['invalid'] = array_merge($matchOdds_o,$matchOdds_t,$matchOdds_th,$matchOdds_fo,$matchOdds_fi,$matchOdds_si,$matchOdds_se,$matchOdds_e,$matchOdds_n,$matchOdds_ot,$matchOdds_five,$matchOdds_ff);
+            $orderData['settle'] = array_merge($matchOdds_one,$matchOdds_two,$matchOdds_three,$matchOdds_four,$matchOdds_five,$matchOdds_six,$matchOdds_seven,$matchOdds_eight,$matchOdds_nine,$matchOdds_other,$matchOdds_fives,$matchOdds_fall);
         }
         //===end===
 		

+ 0 - 1
app/Models/MoneyBuyMatch.php

@@ -49,7 +49,6 @@ class MoneyBuyMatch extends Model
             ];
             $data = $this->join('money_buy_simplex', 'money_buy_match.batch_id', '=', 'money_buy_simplex.batch_id')->select($select)->whereIn('money_buy_match.match_id',$match_ids)->where($typeWhere)->get();
         }else{
-            $where[] = array('money_buy_simplex.status', '=', 1);
             $data = $this->join('money_buy_simplex', 'money_buy_match.batch_id', '=', 'money_buy_simplex.batch_id')->join('st_odds_code', 'money_buy_match.odds_code', '=', 'st_odds_code.odds_code')->select($select)->where($where)->get();
         }
         return $data;

+ 4 - 4
app/Models/MoneyBuyStr.php

@@ -151,10 +151,10 @@ class MoneyBuyStr extends BaseModel
             $str_type = str_replace('*', '串', $data[$i]->str_type);
             $mun = explode('串', $data[$i]->str_type);
 
-            if ($data[$i]->status != 3) {
-                $data[$i]->detail_content = $data[$i]->game_status . ' [<a class="detail" lay-event="detail" pid="id" uri="/admin/SoccerStringNoteList/detail/?id=" href="/admin/SoccerStringNoteList/detail/?id=' . $data[$i]->id . '"> 详情 </a>]';
+            if ($data[$i]->status == 2 || $data[$i]->status == 3) {
+                $data[$i]->detail_content = '无效' . ' [<a class="detail" lay-event="detail" pid="id" uri="/admin/SoccerStringNoteList/detail/?id=" href="/admin/SoccerStringNoteList/detail/?id=' . $data[$i]->id . '"> 详情 </a>]';
             } else {
-                $data[$i]->detail_content = '';
+                $data[$i]->detail_content = $data[$i]->game_status . ' [<a class="detail" lay-event="detail" pid="id" uri="/admin/SoccerStringNoteList/detail/?id=" href="/admin/SoccerStringNoteList/detail/?id=' . $data[$i]->id . '"> 详情 </a>]';
             }
 
 
@@ -269,7 +269,7 @@ class MoneyBuyStr extends BaseModel
     function getdetailinfo($id)
     {
         $res = $this->where('id', $id)->first();
-        $data = \App\Models\MoneyBuyMatch::where('batch_id', $res->batch_id)->where('bet_type', '2')->get();
+        $data = \App\Models\MoneyBuyMatch::where('order_id', $res->order_id)->where('bet_type', '2')->get();
         $game_type = \App\Models\StGameType::get();
         $odds_code = \App\Models\Matchcode::get();
         for ($i = 0; $i < count($data); $i++) {

+ 134 - 0
app/Models/SportsNoteList.php

@@ -1389,6 +1389,140 @@ class SportsNoteList extends BaseModel
         }
     }
 
+    /**
+     * 作废赛事下注单处理
+     * $matchid int 赛事id
+     * $orders_sim obj 待处理单式注单数据 非必须
+     * $orders_str obj 待处理串式注单数据 非必须
+     * $type  str 球类代码 zq lq wq bq
+     */
+    function settleorder($matchid,$orders_sim=[],$orders_str=[],$type){
+        //该赛事的单式注单
+        $account_identitys = array();
+        $orders = array();
+        if(!empty($orders_sim)){
+            $orders = $orders_sim;
+        }
+        //该赛事的串式注单
+        $order = array();
+        if(!empty($orders_str)){
+            $order = $orders_str;
+        }
+        $orders = array_merge($orders,$order);
+        //去除数组的空值
+        foreach( $orders as $k=>$v){
+            if( !$v )
+                unset( $orders[$k] );
+        }
+
+        $order_ids = array();
+        if(!empty($orders)){
+            foreach( $orders as $k=>$v){
+                $account_identitys[] = $v['account_identity'];
+                $order_ids[] = $v['order_id'];
+            }
+
+            //用戶账户金额
+            $account_money = \App\Models\Account_detailed::wherein('account_identity',$account_identitys)->get();
+            //反水
+            $water_return_money = \App\Models\Money_details::wherein('trade_id',$order_ids)->where('trade_type', '7')->get();
+
+            //订单反水
+            foreach($water_return_money as $k=>$v){
+                foreach($orders as $kk=>$vv){
+                    $vv['return_money'] = 0;
+                    if($v['trade_id'] == $vv['order_id']){
+                        $vv['return_money'] = $v['money'];
+                    }
+                }
+            }
+            //用户余额
+            foreach($account_money as $k=>$v){
+                $account_money = 0;
+                foreach($orders as $kk=>$vv){
+                    if($v['account_identity'] == $vv['account_identity']){
+                        if($vv['status'] == 1 && $vv['settle_status'] == 2 && $vv['result'] != -1 && $vv['result'] != 0) {
+                            if ($account_money == 0) {
+                                $vv['available_cash'] = $v['available_cash'];
+                                //当前注单状态改变后的余额
+                                $account_money = $v['available_cash'] - $vv['gain_money'];
+                            } else {//其他 获取 上个注单处理后的余额
+                                $vv['available_cash'] = $account_money;
+                                $account_money = $account_money - $vv['gain_money'];
+                            }
+                        }
+                        if($vv['status'] == 2 || $vv['status'] == 3){
+                            if ($account_money == 0) {
+                                $vv['available_cash'] = $v['available_cash'];
+                                //当前注单状态改变后的余额
+                                $account_money = $v['available_cash'] - $vv['money'] + $vv['return_money'];
+                            } else {//其他 获取 上个注单处理后的余额
+                                $vv['available_cash'] = $account_money;
+                                $account_money = $account_money - $vv['money'] + $vv['return_money'];
+                            }
+                        }
+                    }
+                }
+            }
+            //print_r($orders);exit;
+            foreach($orders as $k=>$v){
+                $models = new \App\Models\Money_details();
+                $models->info_identity = UUID();
+                $models->trade_id = $v['order_id'];
+                $models->account_name = $v['account_name'];
+                $models->account_identity = $v['account_identity'];
+                $str = 0;
+                $change_money = 0;
+                if($v['status'] == 1 && $v['settle_status'] == 2 && $v['result'] != -1 && $v['result'] != 0){
+                    $str = 1;
+                    $change_money = 0 - $v['gain_money'];
+                    $models->trade_type = '26';
+                    $models->trade_desc = '已结算注单改为未结算,扣除中奖金额'.abs($change_money).'元,订单号'.$v['order_id'];
+                }
+                if($v['status'] == 2 || $v['status'] == 3){
+                    $str = 1;
+                    $change_money = $v['return_money'] - $v['money'];
+                    $models->trade_type = '1';
+                    $models->trade_desc = '取消作废注单,扣除投注金额'.abs($change_money).'元,订单号'.$v['order_id'];
+                }
+                $models->money = abs($change_money);
+                $models->money_time = date("Y-m-d H:i:s", time());
+                if ($change_money > 0) {
+                    $models->money_type = '1';
+                } else {
+                    $models->money_type = '2';
+                }
+                $models->money_cash = $v['available_cash'];
+                $models->status = '1';
+
+                if($str == 1){
+                    try {
+                        DB::beginTransaction();//开启事务
+                        $this->where('order_id', $v['order_id'])->update(['status' => '1','settle_status' => '1','game_status' => '0','game_status' => '0']);//'use_mark'=>'通过设置赛事比分作废'
+                        \App\Models\MoneyBuyStr::where('order_id', $v['order_id'])->update(['status' => '1','settle_status' => '1','game_status' => '0','game_status' => '0']);
+                        \App\Models\MoneyBuyMatch::where('batch_id', $v['batch_id'])->where('match_id', $matchid)->update(['result' => 0, 'status' => 0]);
+                        \App\Models\Account_detailed::where('account_identity', $v['account_identity'])->update(['available_cash' => $v['available_cash'], 'cash' => $v['available_cash']]);
+                        $models->save();
+
+                        DB::commit();//提交
+                    } catch (Exception $e) {
+                        DB::rollback();//回滚
+                    }
+                }else{
+                    $this->where('order_id', $v['order_id'])->update(['status' => '1','settle_status' => '1','game_status' => '0']);
+                    \App\Models\MoneyBuyStr::where('order_id', $v['order_id'])->update(['status' => '1','settle_status' => '1','game_status' => '0']);
+                    \App\Models\MoneyBuyMatch::where('batch_id', $v['batch_id'])->where('match_id', $matchid)->update(['result' => 0, 'status' => 0]);
+                }
+            }
+        }
+
+//        //该赛事相关的的串关注单做未处理
+//        if(empty($orders_str)){
+//            $order_ids_str = array_column($orders_str,'order_id');
+//            \App\Models\MoneyBuyMatch::where('match_id',$matchid)->where('game_code',$type)->whereIn('order_id',$order_ids_str)->where('bet_type',2)->update(['result'=>0]);
+//        }
+    }
+
 
     /**
      * 滚球投注 危险球自动审核

+ 1 - 1
resources/views/admin/sportsfoot/outcome.blade.php

@@ -242,7 +242,7 @@
 
                 layerOpen = layer.open({
                   type: 1 //Page层类型
-                  ,area: ['600px', '80%']
+                  ,area: ['600px', '60%']
                   ,title: '<h2>赛事结果修改<h2>'
                   ,shade: 0.6 //遮罩透明度
                   ,maxmin: true //允许全屏最小化

+ 5 - 5
resources/views/sports/sports_stringnotelist.blade.php

@@ -75,7 +75,8 @@
 
     <script type="text/html" id="myoption">
         @{{#if(d.status==1){ }}
-        <button onclick="invalid('/admin/SoccerStringNoteList/RevokeStrOrder','@{{d.order_id}}')" class="layui-btn layui-btn-sm settlement">作废</button>
+        <button onclick="invalid('/admin/SoccerStringNoteList/RevokeStrOrder','@{{d.order_id}}')" class="layui-btn layui-btn-sm settlement">作废</button><br/>
+        <button onclick="settlement('/admin/SoccerStringNoteList/resettlement','@{{d.id}}')" class="layui-btn layui-btn-sm">结算/重结算</button>
         @{{#} }}
     </script>
 
@@ -290,15 +291,15 @@
 
         }
         //串关注单结算
-        function settlement(url,ids) {
+        function settlement(url,id) {
             layer.confirm('是否确认结算?', {
                 btn: ['确认', '取消'] //按钮
             }, function() {
-                $.getJSON(url, function(data, textStatus) {
+                $.getJSON(url,{id:id}, function(data) {
                     //console.log(data);
                     if (data.status == '1') {
-                        reloadDataTable();
                         layer.msg('结算成功');
+                        reloadDataTable();
                     } else {
                         layer.msg(data.msg);
                     }
@@ -306,7 +307,6 @@
             }, function() {
 
             });
-
         }
         //重新结算
         function resettlement(url) {