You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
5.8 KiB
146 lines
5.8 KiB
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use Illuminate\Console\Command;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class MigrateOrder extends Command
|
|
{
|
|
/**
|
|
* The name and signature of the console command.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $signature = 'migrateData:order';
|
|
|
|
/**
|
|
* The console command description.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $description = 'migrate order data';
|
|
|
|
/**
|
|
* Create a new command instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
|
|
/**
|
|
* Execute the console command.
|
|
*
|
|
* @return int
|
|
*/
|
|
public function handle()
|
|
{
|
|
|
|
// main order
|
|
$orderMain = DB::table('ims_cjdc_order_main')->get();
|
|
|
|
$bar = $this->output->createProgressBar(count($orderMain));
|
|
$bar->start();
|
|
|
|
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);
|
|
|
|
// 子订单
|
|
$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);
|
|
|
|
// 订单商品
|
|
$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;
|
|
}
|
|
}
|