stanley-king 2 years ago
parent
commit
42a3b765a6
1 changed files with 35 additions and 26 deletions
  1. 35 26
      admin/control/refill_order_manual.php

+ 35 - 26
admin/control/refill_order_manual.php

@@ -34,35 +34,44 @@ class refill_order_manualControl extends SystemControl
 
         $mod_order = Model('vr_order');
         $tran = new trans_wapper($mod_order, 'manual_success state trans');
-        $order_info = $mod_order->getOrderInfo(['order_id' => $order_id], '*', true, true);
-
-        $mod_refill = Model('refill_order');
-        $refill_info = $mod_refill->getOrderInfo(['order_id' => $order_id, 'inner_status' => 0, 'is_retrying' => 0]);
-        $fetch_order_ids = $this->check_fetch_order($order_id);
-
-        if (!empty($refill_info) && !empty($order_info) && !in_array($order_id, $fetch_order_ids)) {
-            $logic_vr_order = Logic("vr_order");
-            if ($type == 'success') {
-                $logic_vr_order->changeOrderStateSuccess($order_id, true);
-            } elseif ($type == 'cancel') {
-                $logic_vr_order->changeOrderStateCancel($order_info, '', "充值失败", true, true);
+
+        try
+        {
+            $order_info = $mod_order->getOrderInfo(['order_id' => $order_id], '*', true, true);
+            $mod_refill = Model('refill_order');
+            $refill_info = $mod_refill->getOrderInfo(['order_id' => $order_id, 'inner_status' => 0, 'is_retrying' => 0]);
+            $fetch_order_ids = $this->check_fetch_order($order_id);
+
+            if (!empty($refill_info) && !empty($order_info) && !in_array($order_id, $fetch_order_ids))
+            {
+                $logic_vr_order = Logic("vr_order");
+                if ($type == 'success') {
+                    $logic_vr_order->changeOrderStateSuccess($order_id, true);
+                } elseif ($type == 'cancel') {
+                    $logic_vr_order->changeOrderStateCancel($order_info, '', "充值失败", true, true);
+                } else {
+                    $tran->commit();
+                    showMessage('手动操作类型错误');
+                }
+                $this->manual_record([$refill_info], $type, $order_id, '手动强制处理');
+                $this->log("手动强制处理,订单号:{$order_info['order_sn']}");
+
+                if ($refill_info['notify_time'] == 0) {
+                    $mod_refill->edit($order_id, ['notify_state' => 1, 'notify_time' => time()]);
+                }
+                util::pop_queue_order($refill_info['mchid'], $refill_info['mch_order']);
+                $tran->commit();
+                QueueClient::push("NotifyMerchantComplete", ['order_id' => $order_id, 'manual' => true]);
+                showMessage('操作成功');
             } else {
                 $tran->commit();
-                showMessage('手动操作类型错误');
-            }
-            $this->manual_record([$refill_info], $type, $order_id, '手动强制处理');
-            $this->log("手动强制处理,订单号:{$order_info['order_sn']}");
-
-            if ($refill_info['notify_time'] == 0) {
-                $mod_refill->edit($order_id, ['notify_state' => 1, 'notify_time' => time()]);
+                showMessage('订单不存在,或不符合条件');
             }
-            util::pop_queue_order($refill_info['mchid'], $refill_info['mch_order']);
-            $tran->commit();
-            QueueClient::push("NotifyMerchantComplete", ['order_id' => $order_id, 'manual' => true]);
-            showMessage('操作成功');
-        } else {
-            $tran->commit();
-            showMessage('订单不存在,或不符合条件');
+        }
+        catch (Exception $ex)
+        {
+            $tran->rollback();
+            showMessage('事务失败,已经回滚.');
         }
     }