Explorar el Código

到店订单直接完成

shish hace 7 meses
padre
commit
0fa2f0d7b7
Se han modificado 1 ficheros con 28 adiciones y 7 borrados
  1. 28 7
      app-hd/controllers/OrderController.php

+ 28 - 7
app-hd/controllers/OrderController.php

@@ -373,14 +373,27 @@ class OrderController extends BaseController
                     payUtil::thirdPay($payWayType, $capitalType, $orderSn, $totalFee, $attach, $transactionId);
                     $transaction->commit();
 
-                    //打印小票和语音播报
-                    $newOrder = OrderClass::getById($id, true);
-                    OrderClass::onlinePrint($newOrder);
-                    ShopExtClass::hdGatheringReport($newOrder);
+                    //解决重复通知
+                    $cacheKey = 'hd_shop_order_pay_check_' . $orderSn;
+                    $has = Yii::$app->redis->executeCommand('GET', [$cacheKey]);
+                    if (empty($has)) {
+                        Yii::$app->redis->executeCommand('SETEX', [$cacheKey, 300, 'has']);
+
+                        //打印小票和语音播报
+                        $newOrder = OrderClass::getById($id, true);
+                        OrderClass::onlinePrint($newOrder);
+                        ShopExtClass::hdGatheringReport($newOrder);
+
+                        //到店自取订单,并且是待取货状态,则自动完成取货,多处要同步修改,关键词 reach_shop_fetch_goods
+                        if ($newOrder->getGoods == 1 && $newOrder->sendType == 1 && $newOrder->status == 2) {
+                            $newOrder->status = 4;
+                            $newOrder->save();
+                        }
 
-                    $shopId = $newOrder->shopId ?? 0;
-                    $shop = ShopClass::getById($shopId, true);
-                    WxMessageClass::gatheringIncomeInform($shop, $newOrder);
+                        $shopId = $newOrder->shopId ?? 0;
+                        $shop = ShopClass::getById($shopId, true);
+                        WxMessageClass::gatheringIncomeInform($shop, $newOrder);
+                    }
 
                     util::success(['returnStatus' => 'SUCCESS']);
                 } else {
@@ -512,7 +525,15 @@ class OrderController extends BaseController
                 $has = Yii::$app->redis->executeCommand('GET', [$cacheKey]);
                 if (empty($has)) {
                     Yii::$app->redis->executeCommand('SETEX', [$cacheKey, 300, 'has']);
+
                     $newOrder = OrderClass::getById($id, true);
+
+                    //到店自取订单,并且是待取货状态,则自动完成取货,多处要同步修改,关键词 reach_shop_fetch_goods
+                    if ($newOrder->getGoods == 1 && $newOrder->sendType == 1 && $newOrder->status == 2) {
+                        $newOrder->status = 4;
+                        $newOrder->save();
+                    }
+
                     //打印小票
                     OrderClass::onlinePrint($newOrder);
                     //语音播报