shish 5 лет назад
Родитель
Сommit
77932e7d75
2 измененных файлов с 24 добавлено и 13 удалено
  1. 6 1
      app-ghs/controllers/OrderController.php
  2. 18 12
      biz-ghs/order/services/OrderService.php

+ 6 - 1
app-ghs/controllers/OrderController.php

@@ -3,6 +3,7 @@
 namespace ghs\controllers;
 
 use bizGhs\express\services\DadaExpressServices;
+use bizHd\purchase\classes\PurchaseClass;
 use bizHd\wx\classes\WxOpenClass;
 use bizGhs\custom\classes\CustomClass;
 use bizGhs\order\classes\OrderClass;
@@ -220,7 +221,11 @@ class OrderController extends BaseController
         $id = $get['id'] ?? 0;
         $info = OrderService::getById($id, true);
         OrderClass::valid($info, $this->shopId);
-        OrderService::withoutSend($info);
+
+        $purchaseId = $info->purchaseId;
+        $purchase = PurchaseClass::getById($purchaseId, true);
+
+        OrderService::withoutSend($info, $purchase);
         util::complete();
     }
 

+ 18 - 12
biz-ghs/order/services/OrderService.php

@@ -76,11 +76,19 @@ class OrderService extends BaseService
         self::payAfter($return, $payWay);
         PurchaseService::payAfter($purchase, $payWay);
 
+        if (isset($return->sendType) == false) {
+            util::fail('没有找到配送方式');
+        }
+        //自取订单直接完成
+        if ($return->sendType == OrderClass::SEND_TYPE_NO) {
+            self::withoutSend($return, $purchase);
+        }
+
         return $return->attributes;
     }
 
     //自取免配送流程处理 ssh 2021.1.24
-    public static function withoutSend($order)
+    public static function withoutSend($order, $purchase)
     {
         if (isset($order->status) == false) {
             util::fail('没有订单状态');
@@ -88,7 +96,6 @@ class OrderService extends BaseService
         if ($order->status == OrderClass::ORDER_STATUS_COMPLETE) {
             util::fail('订单已完成');
         }
-
         //自取订单,订单直接完成。【现在有三个地方有订单完成操作】
         $shopId = $order->shopId ?? 0;
         $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
@@ -98,7 +105,6 @@ class OrderService extends BaseService
         $shop->unSendOrder -= 1;
         $shop->sendingOrder += 1;
         $shop->save();
-
         //自取免配送
         $order->sendType = OrderClass::SEND_TYPE_NO;
         $order->save();
@@ -106,6 +112,15 @@ class OrderService extends BaseService
         //订单完成
         self::finish($order, $shop);
 
+        $purchaseShopId = $purchase->shopId;
+        $purchaseShop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $purchaseShopId])->one();
+        if (empty($purchaseShop)) {
+            util::fail('没有找到门店');
+        }
+        $purchaseShop->cgUnSend -= 1;
+        $purchaseShop->cgSending += 1;
+        $purchaseShop->save();
+
         OrderSendClass::withoutSend($order);
 
         return OrderClass::TOTAL_FLOW;
@@ -459,15 +474,6 @@ class OrderService extends BaseService
         $time = date("Y-m-d H:i:s");
         $placeData = ['payTime' => $time, 'orderSn' => $orderSn, 'orderId' => $orderId];
         OrderSendClass::placeOrder($placeData);
-
-        if (isset($order->sendType) == false) {
-            util::fail('没有找到配送方式');
-        }
-
-        if ($order->sendType == OrderClass::SEND_TYPE_NO) {
-            self::withoutSend($order);
-        }
-
     }
 
 }