ソースを参照

生成订单后付款优化

evoxwht 3 年 前
コミット
2219f2cdfc
1 ファイル変更10 行追加9 行削除
  1. 10 9
      crmeb/app/api/controller/v1/order/StoreOrderController.php

+ 10 - 9
crmeb/app/api/controller/v1/order/StoreOrderController.php

@@ -393,26 +393,27 @@ class StoreOrderController
         if ($order['pink_id'] && $services->isPinkStatus($order['pink_id'])) {
         if ($order['pink_id'] && $services->isPinkStatus($order['pink_id'])) {
             return app('json')->fail('该订单已失效!');
             return app('json')->fail('该订单已失效!');
         }
         }
-        if (!Cache::get('pay_' . $order['order_id'])) {
+        $isChannel = $this->getChennel[$from];
+        //缓存不存在 || 切换另一端支付
+        if (!Cache::get('pay_' . $order['order_id']) || $isChannel != $order['is_channel']) {
             switch ($from) {
             switch ($from) {
                 case 'weixin':
                 case 'weixin':
-                    if ($type == 1) {
-                        $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
-                    } elseif (in_array($order->is_channel, [1, 2, 3])) {//0
+                    if ($type == 1 || in_array($order['is_channel'], [1, 2, 3, 4])) {//0
                         $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
                         $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
                     }
                     }
                     break;
                     break;
                 case 'weixinh5':
                 case 'weixinh5':
-                    if ($type == 1) {
-                        $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
-                    } elseif (in_array($order->is_channel, [0, 1, 3])) {
+                    if ($type == 1 || in_array($order['is_channel'], [0, 1, 3, 4])) {
                         $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
                         $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
                     }
                     }
                     break;
                     break;
                 case 'routine':
                 case 'routine':
-                    if ($type == 1) {
+                    if ($type == 1 || in_array($order['is_channel'], [0, 2, 3, 4])) {
                         $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
                         $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
-                    } elseif (in_array($order->is_channel, [0, 2, 3])) {
+                    }
+                    break;
+                case 'app':
+                    if ($type == 1 || in_array($order['is_channel'], [0, 1, 2, 3])) {
                         $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
                         $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
                     }
                     }
                     break;
                     break;