Browse Source

异常处理

彭俊 6 years ago
parent
commit
2247f22c18
2 changed files with 104 additions and 14 deletions
  1. 2 12
      app/Http/Model/StZqResult.php
  2. 102 2
      app/Models/SportsNoteList.php

+ 2 - 12
app/Http/Model/StZqResult.php

@@ -525,20 +525,10 @@ class StZqResult extends Model
 
         if($match_id > 0 and !empty($warn_data)){
             $data = [];
-            foreach($warn_data as $k=>$v){
-                if($v['warn_type'] == 1){
-                    $warn_type = '进球无效';
-                }
-                else if($v['warn_type'] == 2){
-                    $warn_type = '红牌无效';
-                }
-                else {
-                    $warn_type = '无效';
-                }
-               
+            foreach($warn_data as $k=>$v){               
                 $data[$k]['timei'] = $v['find_time'];//危险球时间
                 $data[$k]['rtype'] = $v['warn_name'];//危险球名称
-                $data[$k]['warn_type'] = $warn_type;//危险球类型 
+                $data[$k]['warn_type'] = $v['warn_type'];//危险球类型  1 进球无效 2红卡无效 3无效(用于角球)
                 $data[$k]['timep'] = 90;
 
             }

+ 102 - 2
app/Models/SportsNoteList.php

@@ -1059,7 +1059,7 @@ class SportsNoteList extends BaseModel
     /**
      * 滚球投注 获取指定时间内未审核订单
      */
-    public static function getOrderData($time=60){
+    public static function __getOrderData($time=60){
 
         $db = new \App\Models\Setinfo();
         //获取设定需审核时间 秒
@@ -1137,6 +1137,106 @@ class SportsNoteList extends BaseModel
 
         }
       
+    }
+    public static function getOrderData($time=60){
+
+        $db = new \App\Models\Setinfo();
+        //获取设定需审核时间 秒
+        $handle_time =  $db->getInfo(1003)['infocontent']?:90;
+
+        //获取需查询 时间条件 时间戳
+        //时间区间 开始时间
+        $time_unx_s = time() - $time - $handle_time;//-150 秒
+        //时间区间 截止时间
+        $time_unx_e = time() - $handle_time;//-90 秒
+
+        //拼接查询条件
+        $where = [
+            ['money_time','>',date('Y-m-d H:i:s',$time_unx_s)],
+            ['money_time','<',date('Y-m-d H:i:s',$time_unx_e)],
+            ['roll_ratify','=',2]
+        ];
+      
+        //获取 待处理订单数据
+        $order_data = self::join('money_buy_match','money_buy_match.order_id','=','money_buy_simplex.order_id')
+            ->where(['money_buy_simplex.order_id'=>'S20191025111201242070491'])
+            ->SELECT('money_buy_simplex.id','money_buy_simplex.match_id','money_buy_simplex.account_name','money_buy_simplex.account_identity','money_buy_simplex.order_id','money_buy_simplex.money_time','money_buy_simplex.roll_ratify','money_buy_simplex.money','money_buy_simplex.gain_money','money_buy_match.p_code')
+            ->get()
+            ->toArray();
+        if(!empty($order_data)){
+           
+            //获取订单所属赛事id
+            $match_ids = [];
+            foreach($order_data as $k=>$v){
+                $match_ids[] = $v['match_id'];
+            }
+
+            //去重 获取赛事危险球数据
+            $warn_json_data = StZqResult::whereIn('match_id',$match_ids)->SELECT('match_id','warn_more')->get()->toArray();
+
+            //获取审核不通过订单 订单号
+            $order_ids_n = [];
+            //获取审核不通过订单
+            $order_data_n = [];
+            //获取审核通过订单 订单号
+            $order_ids_y = [];
+            //获取审核未通过订单 投注人
+            $account_identitys = [];
+            foreach($order_data as $k=>$v){
+                //获取每个订单的危险球数据
+                $warn_data = commonFunction::filter_by_value($warn_json_data,'match_id',$v['match_id']);
+                $warn_data_arr = json_decode($warn_data['warn_more'],true);
+                //投注时间 时间戳
+                $order_time = strtotime($v['money_time']);
+                foreach($warn_data_arr as $kk=>$vv){
+                    //危险球时间 时间戳
+                    $warn_time = strtotime($vv['timei']);
+                    //危险球类型 可能的值:1 进球无效 2红卡无效 3无效(用于角球)
+                    $warn_type = $vv['warn_type'];
+                    //审核危险球类型
+                    $v['use_mark'] = '未知类型';
+                    //确认危险球审核条件
+                    if($order_time < $warn_time and ($order_time+$handle_time) > $warn_time){
+                        //根据投注 玩法 确定 危险球审核类型
+                        if($v['p_code'] == 'CB' and $warn_type== 3){
+                            $v['use_mark'] = '进球无效';
+                        }else{
+                            if($warn_type == 1){
+                                $v['use_mark'] = '进球无效';
+                            }
+                            if($warn_type == 2){
+                                $v['use_mark'] = '红卡无效';
+                            }
+                        }
+
+                        $order_ids_n[] = $v['order_id'];
+                        $account_identitys[] = $v['account_identity'];
+                        $order_data_n[] = $v;
+                        unset($order_data[$k]);
+                    }
+                }
+            }
+
+            if(!empty($order_data)){
+                foreach($order_data as $k=>$v){
+                    $order_ids_y[] = $v['order_id'];
+                }
+            }
+
+            if(!empty($order_ids_n)){
+                //在审核时间内订单 审核不通过
+                self::HandleMoney_v2($account_identitys,$order_ids_n,$order_data_n);
+            }
+            if(!empty($order_ids_y)){
+                //在审核时间外订单 审核通过
+                $ret_y = self::whereIn('order_id', $order_ids_y)->update(['roll_ratify' => 1,'use_mark'=>trans('handleOrder.handle_order_auto_pass')]);
+                //如果更新数量小于订单数量 则返回异常
+                if($ret_y < count($order_ids_y))  throw new \Exception( Response::generate('',Response::HANDLE_ORDER_Y_ERR));
+
+            }
+
+        }
+      
     }
 
     /**
@@ -1264,7 +1364,7 @@ class SportsNoteList extends BaseModel
                 $models->status = '1';
                
                 //更新订单数据
-                $ret_order = self::where('id', $v['id'])->update(['roll_ratify' => '-1','status' => '2','use_mark'=>trans('handleOrder.handle_order_auto_fail')]);
+                $ret_order = self::where('id', $v['id'])->update(['roll_ratify' => '-1','status' => '2','use_mark'=>$v['use_mark']]);//trans('handleOrder.handle_order_auto_fail')
                 if($ret_order < 1)  throw new \Exception( Response::generate('',Response::UP_ORDER_ERR));
 
                 //更新用户数据