ソースを参照

订单号问题

shish 2 年 前
コミット
2e67f5a6b6
1 ファイル変更19 行追加9 行削除
  1. 19 9
      app-mall/controllers/OrderController.php

+ 19 - 9
app-mall/controllers/OrderController.php

@@ -9,6 +9,7 @@ use bizMall\custom\classes\CustomClass;
 use bizMall\goods\classes\GoodsClass;
 use bizMall\order\classes\OrderClass;
 use bizMall\order\classes\OrderGoodsClass;
+use bizMall\order\classes\OrderItemClass;
 use bizMall\order\services\OrderService;
 use bizMall\promote\services\CouponService;
 use bizMall\saas\services\RegionService;
@@ -406,10 +407,26 @@ class OrderController extends BaseController
             util::fail('没有openId');
         }
 
-        $capitalType = dict::getDict('capitalType', 'xhOrder', 'id');
-
         $now = time();
         $expireTime = $now + 1800;
+        $updateData = [];
+        if (isset($order['modPrice']) && $order['modPrice'] == 0) {
+            $oldOrderSn = $orderSn;
+            $orderSn = orderSn::getOrderSn();
+            $updateData['orderSn'] = $orderSn;
+            OrderItemClass::updateByCondition(['orderSn' => $oldOrderSn], ['orderSn' => $orderSn]);
+        } else {
+            //已请求的不能再修改价格
+            $updateData['modPrice'] = 0;
+        }
+        if (empty($order['deadline'])) {
+            $updateData['deadline'] = $expireTime;
+        }
+        if (!empty($updateData)) {
+            OrderService::updateById($orderId, $updateData);
+        }
+
+        $capitalType = dict::getDict('capitalType', 'xhOrder', 'id');
 
         $sjExtend = WxOpenClass::getMallWxInfo();
         $shop = $this->shop;
@@ -441,13 +458,6 @@ class OrderController extends BaseController
             noticeUtil::push($errMsg, '15280215347');
             util::fail('支付失败');
         }
-        //已请求微信不能修改价格
-        $updateData = [];
-        $updateData['modPrice'] = 0;
-        if (empty($order['deadline'])) {
-            $updateData['deadline'] = $expireTime;
-        }
-        OrderService::updateById($orderId, $updateData);
 
         $newParams = isset($response['resp_data']['acc_resp_fields']) ? $response['resp_data']['acc_resp_fields'] : [];
         $appId = $newParams['app_id'] ?? '';