瀏覽代碼

ActiveRecord 属性判断bug修复与顺丰跑腿回调订单状态修改补全

shizhongqi 8 月之前
父節點
當前提交
094e242b52

+ 1 - 1
app-hd/controllers/DeliveryController.php

@@ -281,7 +281,7 @@ class DeliveryController extends BaseController
         $hdOrderId = $post['hdOrderId'];
         $platform = $post['platform'];
 
-        $hdo = HdDeliveryOrderClass::getByCondition(['mainId'=>$this->mainId, 'ghsOrderId'=>$hdOrderId, 'orderStatus!='=>-1], true);
+        $hdo = HdDeliveryOrderClass::getByCondition(['mainId'=>$this->mainId, 'hdOrderId'=>$hdOrderId, 'orderStatus!='=>-1], true);
         if(!empty($hdo)) {
             $orderId = $hdo->orderId;
             //$platform = $gdo->deliveryId;

+ 2 - 2
common/components/delivery/platform/fengniao/CallBackNotify.php

@@ -56,7 +56,7 @@ class CallBackNotify
         $deliveryOrder->save();
         $orderStatus = OrderStatusUtil::convertStatus($data['order_status']);
 
-        if(property_exists($deliveryOrder, 'ghsOrderId')){ // 批发
+        if(isset($deliveryOrder->ghsOrderId)){ // 批发
             $order = OrderClass::getById($deliveryOrder->ghsOrderId, true, 'id,sendType,sendStatus,deliveryId,purchaseId,customId,status');
             $order->sendStatus = $sendStatus;
             $order->status = $orderStatus;
@@ -69,7 +69,7 @@ class CallBackNotify
             if ($sendStatus == -1 || $sendStatus == -2) {
                 OrderClass::cancelOrderSend($order, ['staffId' => 0, 'staffName' => '']);
             }
-        }elseif(property_exists($deliveryOrder, 'hdOrderId')){ // 零售
+        }elseif(isset($deliveryOrder->hdOrderId)){ // 零售
             $order = HdOrderClass::getById($deliveryOrder->hdOrderId, true, 'id,sendType,sendStatus,deliveryId,customId,status');
             $order->sendStatus = $sendStatus;
             $order->status = $orderStatus;

+ 2 - 2
common/components/delivery/platform/huolala/CallBackHandler.php

@@ -58,7 +58,7 @@ class CallBackHandler
             }
 
 
-            if(property_exists($deliveryOrder, 'ghsOrderId')){ // 批发
+            if(isset($deliveryOrder->ghsOrderId)){ // 批发
                 $order = OrderClass::getById($deliveryOrder->ghsOrderId, true, 'id,sendStatus,deliveryId,purchaseId,customId,status');
                 if ($order) {
                     $order->sendStatus = $sendStatus;
@@ -77,7 +77,7 @@ class CallBackHandler
                 } else {
                     Yii::warning('未找到主订单: ghsOrderId=' . $deliveryOrder->ghsOrderId, 'huolala-callback');
                 }
-            }elseif(property_exists($deliveryOrder, 'hdOrderId')){ // 零售
+            }elseif(isset($deliveryOrder->hdOrderId)){ // 零售
                 $order = HdOrderClass::getById($deliveryOrder->hdOrderId, true, 'id,sendType,sendStatus,deliveryId,customId,status');
                 if ($order) {
                     $order->sendStatus = $sendStatus;

+ 2 - 2
common/components/delivery/platform/shansong/OrderStatusCallBack.php

@@ -58,9 +58,9 @@ class OrderStatusCallBack
             $deliveryOrder->save();
             
             // 更新主订单状态
-            if(property_exists($deliveryOrder, 'ghsOrderId')){ // 批发
+            if(isset($deliveryOrder->ghsOrderId)){ // 批发
                 $order = OrderClass::getById($deliveryOrder->ghsOrderId, true, 'id,sendType,sendStatus,deliveryId,purchaseId,customId,status');
-            }elseif(property_exists($deliveryOrder, 'hdOrderId')){ // 零售
+            }elseif(isset($deliveryOrder->hdOrderId)){ // 零售
                 $order = HdOrderClass::getById($deliveryOrder->hdOrderId, true, 'id,sendType,sendStatus,deliveryId,customId,status');
                 $order->status = $orderStatus;
             }

+ 22 - 11
common/components/delivery/platform/shunfeng/CallBackHandler.php

@@ -126,14 +126,14 @@ class CallBackHandler
             $deliveryOrder->save();
             
             // 更新主订单的配送状态
-            if(property_exists($deliveryOrder, 'ghsOrderId')){ // 批发
+            if(isset($deliveryOrder->ghsOrderId)){ // 批发
                 $order = OrderClass::getById($deliveryOrder->ghsOrderId, true);
                 if ($order) {
                     $order->sendStatus = $sendStatus;
                     $order->status = $orderStatus;
                     $order->save();
                 }
-            }elseif(property_exists($deliveryOrder, 'hdOrderId')){ // 零售
+            }elseif(isset($deliveryOrder->ghsOrderId)){ // 零售
                 $order = HdOrderClass::getById($deliveryOrder->hdOrderId, true);
                 if ($order) {
                     $order->sendStatus = $sendStatus;
@@ -174,6 +174,7 @@ class CallBackHandler
         }
         
         $sendStatus = $this->convertOrderSendStatus($data['order_status']);
+        $orderStatus = $this->convertOrderStatus($data['order_status']);
         if ($sendStatus === null) {
             Yii::error('顺丰订单状态转换失败: ' . $data['order_status'], 'shunfeng-callback');
             return false;
@@ -182,10 +183,11 @@ class CallBackHandler
         $deliveryOrder->save();
         
         // 更新主订单状态为已送达
-        if(property_exists($deliveryOrder, 'ghsOrderId')){ // 批发
+        if(isset($deliveryOrder->ghsOrderId)){ // 批发
             $order = OrderClass::getById($deliveryOrder->ghsOrderId, true, 'id,sendStatus,deliveryId,purchaseId,customId,status');
             if ($order) {
                 $order->sendStatus = $sendStatus;
+                $order->status = $orderStatus;
                 $order->save();
 
                 // 确认送达,更新主订单状态
@@ -193,10 +195,11 @@ class CallBackHandler
                     OrderClass::confirmReach($order, ['staffId' => 0, 'staffName' => '']);
                 }
             }
-        }elseif(property_exists($deliveryOrder, 'hdOrderId')){ // 零售
+        }elseif(isset($deliveryOrder->hdOrderId)){ // 零售
             $order = HdOrderClass::getById($deliveryOrder->hdOrderId, true);
             if ($order) {
                 $order->sendStatus = $sendStatus;
+                $order->status = $orderStatus;
                 $order->save();
             }
             // TODO
@@ -231,6 +234,7 @@ class CallBackHandler
         }
         
         $sendStatus = $this->convertOrderSendStatus($data['order_status']);
+        $orderStatus = $this->convertOrderStatus($data['order_status']);
         if ($sendStatus === null) {
             Yii::error('顺丰订单状态转换失败: ' . $data['order_status'], 'shunfeng-callback');
             return false;
@@ -239,10 +243,11 @@ class CallBackHandler
         $deliveryOrder->save();
         
         // 更新主订单状态为取消
-        if(property_exists($deliveryOrder, 'ghsOrderId')) { // 批发
+        if(isset($deliveryOrder->ghsOrderId)) { // 批发
             $order = OrderClass::getById($deliveryOrder->ghsOrderId, true, 'id,sendStatus,deliveryId,purchaseId,customId,status');
             if($order) {
                 $order->sendStatus = $sendStatus;
+                $order->status = $orderStatus;
                 $order->save();
 
                 // 更新主订单状态为取消
@@ -250,10 +255,11 @@ class CallBackHandler
                     OrderClass::cancelOrderSend($order, ['staffId' => 0, 'staffName' => '']);
                 }
             }
-        }elseif(property_exists($deliveryOrder, 'hdOrderId')){ // 零售
+        }elseif(isset($deliveryOrder->hdOrderId)){ // 零售
             $order = HdOrderClass::getById($deliveryOrder->hdOrderId, true);
             if ($order) {
             $order->sendStatus = $sendStatus;
+            $order->status = $orderStatus;
             $order->save();
             }
             // TODO
@@ -288,6 +294,7 @@ class CallBackHandler
         }
         
         $sendStatus = $this->convertOrderSendStatus($data['order_status']);
+        $orderStatus = $this->convertOrderStatus($data['order_status']);
         if ($sendStatus === null) {
             Yii::error('顺丰订单状态转换失败: ' . $data['order_status'], 'shunfeng-callback');
             return false;
@@ -296,10 +303,11 @@ class CallBackHandler
         $deliveryOrder->save();
 
         // 更新主订单状态为异常
-        if(property_exists($deliveryOrder, 'ghsOrderId')) { // 批发
+        if(isset($deliveryOrder->ghsOrderId)) { // 批发
             $order = OrderClass::getById($deliveryOrder->ghsOrderId, true, 'id,sendStatus,deliveryId,purchaseId,customId,status');
             if($order) {
                 $order->sendStatus = $sendStatus;
+                $order->status = $orderStatus;
                 $order->save();
 
                 // 更新主订单状态为异常
@@ -307,13 +315,13 @@ class CallBackHandler
                     OrderClass::cancelOrderSend($order, ['staffId' => 0, 'staffName' => '']);
                 }
             }
-        }elseif(property_exists($deliveryOrder, 'hdOrderId')){ // 零售
+        }elseif(isset($deliveryOrder->hdOrderId)){ // 零售
             $order = HdOrderClass::getById($deliveryOrder->hdOrderId, true);
             if ($order) {
                 $order->sendStatus = $sendStatus;
+                $order->status = $orderStatus;
                 $order->save();
             }
-            // TODO
         }
         
         return true;
@@ -345,6 +353,7 @@ class CallBackHandler
         }
         
         $sendStatus = $this->convertOrderSendStatus($data['order_status']);
+        $orderStatus = $this->convertOrderStatus($data['order_status']);
         if ($sendStatus === null) {
             Yii::error('顺丰订单状态转换失败: ' . $data['order_status'], 'shunfeng-callback');
             return false;
@@ -353,16 +362,18 @@ class CallBackHandler
         $deliveryOrder->save();
 
         // 更新主订单状态为派单中
-        if(property_exists($deliveryOrder, 'ghsOrderId')) { // 批发
+        if(isset($deliveryOrder->ghsOrderId)) { // 批发
             $order = OrderClass::getById($deliveryOrder->ghsOrderId, true);
             if($order) {
                 $order->sendStatus = $sendStatus;
+                $order->status = $orderStatus;
                 $order->save();
             }
-        }elseif(property_exists($deliveryOrder, 'hdOrderId')){ // 零售
+        }elseif(isset($deliveryOrder->hdOrderId)){ // 零售
             $order = HdOrderClass::getById($deliveryOrder->hdOrderId, true);
             if ($order) {
                 $order->sendStatus = $sendStatus;
+                $order->status = $orderStatus;
                 $order->save();
             }
             // TODO