소스 검색

fix bug: PurchaseClass::takeToPutIn($cg) 中有特殊限制条件,把 $order->status 更新放其后面

shizhongqi 8 달 전
부모
커밋
804f5d6a11

+ 3 - 4
common/components/delivery/platform/fengniao/CallBackNotify.php

@@ -61,10 +61,6 @@ class CallBackNotify
             util::checkRepeatCommit('ghs_'.$deliveryOrder->ghsOrderId.'_'.$sendStatus, 2); // 防止重复回调
 
             $order = OrderClass::getById($deliveryOrder->ghsOrderId, true, 'id,sendType,sendStatus,deliveryId,purchaseId,customId,status');
-            $order->sendStatus = $sendStatus;
-            $order->status = $orderStatus;
-            $order->save();
-
             // 确认送达或取消订单,更新主订单状态
             if ($sendStatus == 5) {
                 OrderClass::confirmReach($order, ['staffId' => 0, 'staffName' => '']);
@@ -72,6 +68,9 @@ class CallBackNotify
             if ($sendStatus == -1 || $sendStatus == -2) {
                 OrderClass::cancelOrderSend($order, ['staffId' => 0, 'staffName' => '']);
             }
+            $order->sendStatus = $sendStatus;
+            $order->status = $orderStatus;
+            $order->save();
         }elseif(isset($deliveryOrder->hdOrderId)){ // 零售
             util::checkRepeatCommit('hd_'.$deliveryOrder->hdOrderId.'_'.$sendStatus, 2); // 防止重复回调
 

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

@@ -64,12 +64,6 @@ class CallBackHandler
 
                 $order = OrderClass::getById($deliveryOrder->ghsOrderId, true, 'id,sendStatus,deliveryId,purchaseId,customId,status');
                 if ($order) {
-                    $order->sendStatus = $sendStatus;
-                    $order->status = $orderStatus;
-                    if (!$order->save()) {
-                        Yii::warning('更新主订单配送状态失败: ' . json_encode($order->getErrors(), JSON_UNESCAPED_UNICODE), 'huolala-callback');
-                    }
-
                     // 确认送达或取消订单,更新主订单状态
                     if ($sendStatus == 5) {
                         OrderClass::confirmReach($order, ['staffId' => 0, 'staffName' => '']);
@@ -77,6 +71,12 @@ class CallBackHandler
                     if ($sendStatus == -1 || $sendStatus == -2) {
                         OrderClass::cancelOrderSend($order, ['staffId' => 0, 'staffName' => '']);
                     }
+
+                    $order->sendStatus = $sendStatus;
+                    $order->status = $orderStatus;
+                    if (!$order->save()) {
+                        Yii::warning('更新主订单配送状态失败: ' . json_encode($order->getErrors(), JSON_UNESCAPED_UNICODE), 'huolala-callback');
+                    }
                 } else {
                     Yii::warning('未找到主订单: ghsOrderId=' . $deliveryOrder->ghsOrderId, 'huolala-callback');
                 }

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

@@ -65,9 +65,6 @@ class OrderStatusCallBack
                 $order = OrderClass::getById($deliveryOrder->ghsOrderId, true, 'id,sendType,sendStatus,deliveryId,purchaseId,customId,status');
 
                 if ($order) {
-                    $order->sendStatus = $sendStatus;
-                    $order->save();
-
                     // 确认送达或取消订单,更新主订单状态
                     if ($sendStatus == 5) {
                         OrderClass::confirmReach($order, ['staffId' => 0, 'staffName' => '']);
@@ -75,6 +72,9 @@ class OrderStatusCallBack
                     if ($sendStatus == -1 || $sendStatus == -2) {
                         OrderClass::cancelOrderSend($order, ['staffId' => 0, 'staffName' => '']);
                     }
+
+                    $order->sendStatus = $sendStatus;
+                    $order->save();
                 }
             }elseif(isset($deliveryOrder->hdOrderId)){ // 零售
                 $type = '零售';

+ 8 - 8
common/components/delivery/platform/shunfeng/CallBackHandler.php

@@ -125,25 +125,25 @@ class CallBackHandler
             util::checkRepeatCommit('ghs_' . $deliveryOrder->ghsOrderId . '_' . $sendStatus, 2);
             $order = OrderClass::getById($deliveryOrder->ghsOrderId, true);
             if ($order) {
-                $order->sendStatus = $sendStatus;
-                $order->status = $orderStatus;
-                $order->save();
-
                 if ($extraHandler) {
                     call_user_func($extraHandler, $order, $sendStatus, true);
                 }
+
+                $order->sendStatus = $sendStatus;
+                $order->status = $orderStatus;
+                $order->save();
             }
         } elseif (isset($deliveryOrder->hdOrderId)) { // 零售
             util::checkRepeatCommit('hd_' . $deliveryOrder->hdOrderId . '_' . $sendStatus, 2);
             $order = HdOrderClass::getById($deliveryOrder->hdOrderId, true);
             if ($order) {
-                $order->sendStatus = $sendStatus;
-                $order->status = $orderStatus;
-                $order->save();
-                
                 if ($extraHandler) {
                     call_user_func($extraHandler, $order, $sendStatus, false);
                 }
+
+                $order->sendStatus = $sendStatus;
+                $order->status = $orderStatus;
+                $order->save();
             }
         }