Browse Source

订单迁移数据

master
weigang 6 years ago
parent
commit
35e17ce0d0
  1. 119
      app/Console/Commands/MigrateOrder.php
  2. 80
      app/Console/Commands/MigrateOrderGoods.php
  3. 96
      app/Console/Commands/MigrateOrderMain.php

119
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;

80
app/Console/Commands/MigrateOrderGoods.php

@ -1,80 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class MigrateOrderGoods extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'migrateData:orderGoods';
/**
* The console command description.
*
* @var string
*/
protected $description = 'migrate order goods data';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
// get old data from old table
$oldData = DB::table('ims_cjdc_order_goods')->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;
}
}

96
app/Console/Commands/MigrateOrderMain.php

@ -1,96 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class MigrateOrderMain extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'migrateData:orderMain';
/**
* The console command description.
*
* @var string
*/
protected $description = 'migrate order main data';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
// get old data from old table
$oldData = DB::table('ims_cjdc_order_main')->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;
}
}
Loading…
Cancel
Save