Explorar o código

测试与bug修复:: 把订单的状态从取消状态变成待付款状态,并重新占用库存

shizhongqi hai 1 ano
pai
achega
9ac257a698
Modificáronse 2 ficheiros con 35 adicións e 7 borrados
  1. 31 2
      app-hd/controllers/TestController.php
  2. 4 5
      biz-hd/order/classes/OrderClass.php

+ 31 - 2
app-hd/controllers/TestController.php

@@ -2,11 +2,40 @@
 
 namespace hd\controllers;
 
-use bizHd\wx\services\WxOpenService;
-use common\components\miniUtil;
+use bizHd\order\classes\OrderClass;
+use common\components\util;
 use Yii;
 
 class TestController extends BaseController
 {
+    public function actionTestPayAfter()
+    {
+        $get = Yii::$app->request->get();
+        $id = $get['order_id'];
+        $order = OrderClass::getById($id, true);
+        if (empty($order)) {
+            util::fail('没有找到订单');
+        }
+        if ($order->mainId != $this->mainId) {
+            util::fail('不是你的订单');
+        }
 
+        $payWay = 1; // balancePay
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try {
+            $actPrice = $order->actPrice;
+            $order->debtPrice = $actPrice;
+            $order->remainDebtPrice = $actPrice;
+            $order->debt = 1;
+            $order->save();
+            OrderClass::payAfter($order, $payWay);
+            $transaction->commit();
+            util::complete('付款成功');
+        } catch (\Exception $exception) {
+            $transaction->rollBack();
+            Yii::info("付款失败原因:" . $exception->getMessage());
+            util::fail('操作失败');
+        }
+    }
 }

+ 4 - 5
biz-hd/order/classes/OrderClass.php

@@ -248,7 +248,6 @@ class OrderClass extends BaseClass
         $order->save();
 
         self::payAfter($order, $payWay);
-
     }
 
     //订单完成 ssh 2021.4.20
@@ -268,12 +267,11 @@ class OrderClass extends BaseClass
             if (!empty($shop)) {
                 // HdRefundClass::onlyRefundAmount($shop, $order);
                 // 恢复取消的订单,即:把订单的状态从取消状态变成待付款状态
-                $res = self::revoverOrderToPay($order);
+                $res = self::recoverOrderToPay($order);
                 if ($res == false) {
                     noticeUtil::push('恢复取消的订单失败,订单号:' . $orderSn, '15280215347');
                 }
             }
-            util::stop("SUCCESS");
         }
         if ($order->payStatus == 1) {
             noticeUtil::push('注意散客订单:' . $orderSn . ',已经付过款了,无需重复请求和操作', '15280215347');
@@ -538,13 +536,14 @@ class OrderClass extends BaseClass
     }
 
     // 恢复订单 -- 即:把订单的状态从取消状态变成待付款状态
-    public static function revoverOrderToPay($order)
+    public static function recoverOrderToPay($order)
     {
         if ($order->status != 5) {
             return false;
         }
+        $now = time();
         $order->status = 1;
-        $order->deadline = date("Y-m-d H:i:s", strtotime("+1 day"));
+        $order->deadline = $now + 86400;
         $order->save();
 
         // 重新占用库存(与取消订单时的库存回滚相反)