From bead72c7b50276a6b22458cb0510a64afee7da52 Mon Sep 17 00:00:00 2001 From: denghy Date: Mon, 13 May 2019 10:47:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=80=80=E8=B4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Domains/Real/Commands/Sync/RefundSync.php | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/Domains/Real/Commands/Sync/RefundSync.php b/app/Domains/Real/Commands/Sync/RefundSync.php index b8862dcc..0e5551be 100644 --- a/app/Domains/Real/Commands/Sync/RefundSync.php +++ b/app/Domains/Real/Commands/Sync/RefundSync.php @@ -42,14 +42,18 @@ class RefundSync extends Command ->where('created_at', '<=', $item->create_time) ->update(['refunded_at' => $item->create_time]); - DB::table('virtual_order_cards_partition') - ->leftJoin('cards', 'cards.sim', '=', 'virtual_order_cards_partition.sim') - ->whereIn('virtual_order_cards_partition.sim', $item->sim) - ->where('virtual_order_cards_partition.created_at', '<=', $item->create_time) - ->where(function ($query) use ($item) { - $query->whereNull('cards.virtual_activated_at')->orWhere('cards.virtual_activated_at', '>=', $item->create_time); - }) - ->update(['virtual_order_cards_partition.refunded_at' => $item->create_time]); + $simArrayText = implode(',', $item->sim); + + $sql = " + UPDATE virtual_order_cards_partition AS v + SET refunded_at = '%s' + FROM cards AS c + WHERE c.sim = v.sim + AND v.sim IN (%s) + AND v.created_at <= '%s' + "; + + DB::select(sprintf($sql, $item->create_time, $simArrayText, $item->create_time)); } });