stanley-king hace 2 años
padre
commit
a1cbd14c43
Se han modificado 1 ficheros con 19 adiciones y 1 borrados
  1. 19 1
      rdispatcher/proxy.php

+ 19 - 1
rdispatcher/proxy.php

@@ -110,6 +110,7 @@ class proxy
         Log::record("proxy::add times={$order->commit_times()} mch_order={$mch_order} card_no = {$order->card_no()} regin_no={$order->region_no()} org_quality={$order->org_quality()} quality={$order->cur_quality()}",Log::DEBUG);
 
         if ($this->canceled($mchid, $mch_order)) {
+            refill\util::del_cancel_order($mchid,$mch_order);
             return $this->onEerror($order, '订单被拦截');
         }
         if (!$order->validate()) {
@@ -119,7 +120,14 @@ class proxy
             return $this->onEerror($order, '转网,问题号码,运营商维护被拦截.');
         }
 
-        [$org_quality,$quality] = refill\RefillFactory::instance()->find_quality($order);
+        if($this->successed($mchid,$mch_order)) {
+            refill\util::del_next_order($mchid,$mch_order);
+            $skip = true;
+        } else {
+            $skip = false;
+        }
+
+        [$org_quality, $quality] = refill\RefillFactory::instance()->find_quality($order, $skip);
         $order->set_quality($org_quality,$quality);
         if($quality == 0) {
             return $this->onEerror($order, '找不到合适质量的通道');
@@ -209,6 +217,16 @@ class proxy
         }
     }
 
+    private function successed($mchid,$mch_order)
+    {
+        $order_state = refill\util::query_next_order($mchid,$mch_order);
+        if($order_state == 1) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
     public function add_zero($params)
     {
         $order = refill\order::from_parameters($params);