From 35e17ce0d0787411b1449367bd4049e67bbf2124 Mon Sep 17 00:00:00 2001 From: weigang Date: Fri, 4 Sep 2020 09:09:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=BF=81=E7=A7=BB=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Console/Commands/MigrateOrder.php | 119 ++++++++++++++++----- app/Console/Commands/MigrateOrderGoods.php | 80 -------------- app/Console/Commands/MigrateOrderMain.php | 96 ----------------- 3 files changed, 95 insertions(+), 200 deletions(-) delete mode 100644 app/Console/Commands/MigrateOrderGoods.php delete mode 100644 app/Console/Commands/MigrateOrderMain.php diff --git a/app/Console/Commands/MigrateOrder.php b/app/Console/Commands/MigrateOrder.php index 8acef0f..ff806c3 100644 --- a/app/Console/Commands/MigrateOrder.php +++ b/app/Console/Commands/MigrateOrder.php @@ -39,35 +39,106 @@ class MigrateOrder extends Command public function handle() { - // get old data from old table - $oldData = DB::table('ims_cjdc_order')->get(); + // main order + $orderMain = DB::table('ims_cjdc_order_main')->get(); - $bar = $this->output->createProgressBar(count($oldData)); + $bar = $this->output->createProgressBar(count($orderMain)); $bar->start(); - $newData = []; - foreach ($oldData as $key => $value) { - $newData[] = [ - 'order_main_id' => $value->order_main_id ?? 0, - 'user_id' => $value->user_id ?? 0, - 'store_id' => $value->store_id ?? 0, - 'status' => 1, - 'refund_time' => 0, - 'order_num' => $value->order_num ?? '', - 'money' => $value->money ?? 0, - 'oid' => $value->oid ?? 0, - 'refuse_refund_note' => '', - 'refund_note' => '', - 'note' => $value->note ?? '', - 'created_at' => $value->time_add ? strtotime($value->time_add) : 0, - 'updated_at' => $value->time_add ? strtotime($value->time_add) : 0, - ]; + foreach ($orderMain as $k => $main) { + DB::beginTransaction(); + try { + // 主订单 + $dataMain = [ + 'market_id' => $main->market_id ?? 0, + 'order_num' => $main->order_num ?? '', + 'global_order_id' => $main->global_order_id ?? 0, + 'user_id' => $main->user_id ?? 0, + 'pay_type' => $main->pay_type ?? 0, + 'type' => $main->type ?? 0, + 'order_type' => $main->order_type ?? 0, + 'shipping_type' => $main->dada_status == 0 ? 1 : 2, + 'money' => $main->money ?? 0, + 'total_money' => $main->total_money ?? 0, + 'services_money' => 0, + 'coupon_money' => $main->yhq_money2 ?? 0, + 'delivery_money' => $main->dada_fee ?? 0, + 'state' => $main->state ?? 0, + 'pay_time' => $main->pay_time ? strtotime($main->pay_time) : 0, + 'receive_time' => $main->jd_time ? strtotime($main->jd_time) : 0, + 'delivery_time' => 0, + 'complete_time' => $main->complete_time ? strtotime($main->complete_time) : 0, + 'cancel_time' => $main->complete_time ? strtotime($main->complete_time) : 0, + 'refund_time' => $main->refund_time ?? 0, + 'tel' => $main->tel ?? '', + 'address' => $main->address ?? '', + 'lat' => $main->lat ?? '', + 'lng' => $main->lng ?? '', + 'name' => $main->name ?? '', + 'print_num' => $main->print_num ?? 0, + 'plat' => $main->plat ?? 0, + 'refuse_refund_note' => $main->refuse_refund_note ?? '', + 'delivery_time_note' => $main->delivery_time ?? '', + 'total_refund_note' => $main->total_refund_note ?? '', + 'note' => $main->note ?? '', + 'created_at' => $main->time_add ?? 0, + 'updated_at' => 0, + ]; + $newMainId = DB::table('lanzu_order_main')->insertGetId($dataMain); - $bar->advance(); - } + // 子订单 + $orderChildren = DB::table('ims_cjdc_order')->where(['order_main_id' => $main->id])->get(); + foreach ($orderChildren as $kChild => $child) { + // 子订单 + $dataChild = [ + 'order_main_id' => $newMainId ?? 0, + 'user_id' => $child->user_id ?? 0, + 'store_id' => $child->store_id ?? 0, + 'status' => 1, + 'refund_time' => 0, + 'order_num' => $child->order_num ?? '', + 'money' => $child->money ?? 0, + 'oid' => $child->oid ?? 0, + 'refuse_refund_note' => '', + 'refund_note' => '', + 'note' => $child->note ?? '', + 'created_at' => $child->time_add ? strtotime($child->time_add) : 0, + 'updated_at' => $child->time_add ? strtotime($child->time_add) : 0, + ]; + $newChildId = DB::table('lanzu_order')->insertGetId($dataChild); - // insert new data to new table - DB::table('lanzu_order')->insert($newData); + // 订单商品 + $orderGoods = DB::table('ims_cjdc_order_goods')->where(['order_id' => $child->id])->get(); + $dataGoods = []; + foreach ($orderGoods as $kGoods => $goods) { + // 订单商品 + $dataGoods[] = [ + 'order_id' => $newChildId ?? 0, + 'goods_id' => $goods->good_id ?? 0, + 'number' => $goods->number ?? 0, + 'status' => 1, + 'price' => $goods->money ?? 0, + 'original_price' => $goods->money2 ?? 0, + 'vip_price' => $goods->vip_money ?? 0, + 'name' => $goods->name ?? '', + 'goods_unit' => $goods->good_unit ?? '', + 'cover_img' => $goods->img ?? '', + 'spec' => json_encode([]), + 'refund_time' => 0, + 'created_at' => time(), + 'updated_at' => time(), + 'refuse_refund_note' => '', + ]; + } + DB::table('lanzu_order_goods')->insert($dataGoods); + } + $bar->advance(); + DB::commit(); + } catch (\Exception $e) { + $this->info(json_encode(['order_id' => $main->id, 'exception' => $e->getMessage()])); + DB::rollBack(); + } + } $bar->finish(); return 0; diff --git a/app/Console/Commands/MigrateOrderGoods.php b/app/Console/Commands/MigrateOrderGoods.php deleted file mode 100644 index 855b78a..0000000 --- a/app/Console/Commands/MigrateOrderGoods.php +++ /dev/null @@ -1,80 +0,0 @@ -get(); - - $bar = $this->output->createProgressBar(count($oldData)); - $bar->start(); - - $newData = []; - foreach ($oldData as $key => $value) { - - $goods =DB::table('ims_cjdc_goods')->find($value->good_id); - - $newData[] = [ - 'order_id' => $value->order_id ?? 0, - 'goods_id' => $value->good_id ?? 0, - 'number' => $value->number ?? 0, - 'status' => 1, - 'price' => $value->money ?? 0, - 'original_price' => $goods->money2 ?? 0, - 'vip_price' => $goods->vip_money ?? 0, - 'name' => $value->name ?? '', - 'goods_unit' => $value->good_unit ?? '', - 'cover_img' => $value->img ?? '', - 'spec' => json_encode([]), - 'refund_time' => 0, - 'created_at' => time(), - 'updated_at' => time(), - 'refuse_refund_note' => '', - ]; - - $bar->advance(); - } - - // insert new data to new table - DB::table('lanzu_order_goods')->insert($newData); - - $bar->finish(); - return 0; - } -} diff --git a/app/Console/Commands/MigrateOrderMain.php b/app/Console/Commands/MigrateOrderMain.php deleted file mode 100644 index 7c497d0..0000000 --- a/app/Console/Commands/MigrateOrderMain.php +++ /dev/null @@ -1,96 +0,0 @@ -get(); - - $bar = $this->output->createProgressBar(count($oldData)); - $bar->start(); - - $newData = []; - foreach ($oldData as $key => $value) { - - $newData[] = [ - 'market_id' => $value->market_id ?? 0, - 'order_num' => $value->order_num ?? '', - 'global_order_id' => $value->global_order_id ?? 0, - 'user_id' => $value->user_id ?? 0, - 'pay_type' => $value->pay_type ?? 0, - 'type' => $value->type ?? 0, - 'order_type' => $value->order_type ?? 0, - 'shipping_type' => $value->dada_status==0 ? 1 : 2, - 'money' => $value->money ?? 0, - 'total_money' => $value->total_money ?? 0, - 'services_money' => 0, - 'coupon_money' => $value->yhq_money2 ?? 0, - 'delivery_money' => $value->dada_fee ?? 0, - 'state' => $value->state ?? 0, - 'pay_time' => $value->pay_time ? strtotime($value->pay_time) : 0, - 'receive_time' => $value->jd_time ? strtotime($value->jd_time) : 0, - 'delivery_time' => 0, - 'complete_time' => $value->complete_time ? strtotime($value->complete_time) : 0, - 'cancel_time' => $value->complete_time ? strtotime($value->complete_time) : 0, - 'refund_time' => $value->refund_time ?? 0, - 'tel' => $value->tel ?? '', - 'address' => $value->address ?? '', - 'lat' => $value->lat ?? '', - 'lng' => $value->lng ?? '', - 'name' => $value->name ?? '', - 'print_num' => $value->print_num ?? 0, - 'plat' => $value->plat ?? 0, - 'refuse_refund_note' => $value->refuse_refund_note ?? '', - 'delivery_time_note' => $value->delivery_time ?? '', - 'total_refund_note' => $value->total_refund_note ?? '', - 'note' => $value->note ?? '', - 'created_at' => $value->time_add ?? 0, - 'updated_at' => 0, - ]; - - $bar->advance(); - } - - // insert new data to new table - DB::table('lanzu_order_main')->insert($newData); - - $bar->finish(); - return 0; - } -}