ソースを参照

后台-订单-撤回订单列表,撤回撤回订单

xupuyuan 10 ヶ月 前
コミット
585e0933de
共有1 個のファイルを変更した18 個の追加6 個の削除を含む
  1. 18 6
      app/controller/admin/order/Order.php

+ 18 - 6
app/controller/admin/order/Order.php

@@ -516,14 +516,26 @@ class Order extends BaseController
516 516
     {
517 517
         $backupTable = 'backup_' . $table;
518 518
         $rows = Db::name($backupTable)->where($where)->select()->toArray();
519
-        if ($rows) {
520
-            foreach ($rows as &$row) {
521
-                unset($row['backup_time']);
522
-            }
523
-            Db::name($table)->insertAll($rows);
524
-            Db::name($backupTable)->where($where)->delete();
519
+        if (empty($rows)) {
520
+            return;
521
+        }
522
+        $cols = Db::query("SHOW COLUMNS FROM `{$table}`");
523
+        $targetCols = array_column($cols, 'Field');
524
+        $targetColsFlip = array_flip($targetCols);
525
+        foreach ($rows as &$row) {
526
+            if (isset($row['backup_time'])) unset($row['backup_time']);
527
+            if (isset($row['del_time'])) unset($row['del_time']);
528
+            $row = array_intersect_key($row, $targetColsFlip);
525 529
         }
530
+        unset($row);
531
+        $rows = array_filter($rows, function($r) { return !empty($r); });
532
+        if (empty($rows)) {
533
+            return;
534
+        }
535
+        Db::name($table)->insertAll($rows);
536
+        Db::name($backupTable)->where($where)->delete();
526 537
     }
538
+
527 539
     private function easterUserAward($table, array $where){
528 540
         $backupTable = 'backup_' . $table;
529 541
         $row = Db::name($backupTable)->where($where)->where('user', 1)->field('pv, vr, score, contribute, annuity,uid')->find();