Browse Source

数据迁移脚本修改

master
liangyuyan 5 years ago
parent
commit
41426b5b85
  1. 6
      app/Admin/Actions/Grid/v3/CouponForbidden.php
  2. 100
      app/Console/Commands/MigrateOrder.php
  3. 3
      app/Console/Commands/MigrateOrderStatistics.php
  4. 144
      app/Console/Commands/MigrateStore.php
  5. 264
      app/Console/Commands/MigrateStoreBalance.php
  6. 22
      app/Console/Commands/MigrateStoreFinancial.php
  7. 1
      app/Console/Commands/MigrateStoreWithdrawal.php
  8. 25
      app/Console/Commands/MigrateUser.php
  9. 2
      app/Console/Commands/MigrateUserAddr.php
  10. 11
      app/Console/Commands/MigrateUserCollection.php
  11. 5
      app/Console/Commands/SetStoreBalance.php
  12. 57
      app/Console/Commands/SetStoreUsers.php

6
app/Admin/Actions/Grid/v3/CouponForbidden.php

@ -17,11 +17,15 @@ class CouponForbidden extends RowAction
{ {
$id = $this->getKey(); $id = $this->getKey();
$coupon = CouponModel::getInfo($id); $coupon = CouponModel::getInfo($id);
if(!empty($coupon)){
if(empty($coupon)){
return $this->response()->success('找不到优惠券!');
}else if($coupon->status == 1){
$coupon->status = 3; $coupon->status = 3;
if($coupon->save()){ if($coupon->save()){
return $this->response()->success('禁用成功!','/coupon'); return $this->response()->success('禁用成功!','/coupon');
} }
}else if($coupon->status == 3){
return $this->response()->error('优惠券已禁用!');
} }
return $this->response()->success('禁用失败!'); return $this->response()->success('禁用失败!');
} }

100
app/Console/Commands/MigrateOrder.php

@ -19,7 +19,7 @@ class MigrateOrder extends Command
* *
* @var string * @var string
*/ */
protected $description = 'migrate order data';
protected $description = 'migrate 迁移订单数据';
/** /**
* Create a new command instance. * Create a new command instance.
@ -39,20 +39,38 @@ class MigrateOrder extends Command
public function handle() public function handle()
{ {
$oldOrderMain = 'ims_cjdc_order_main';
$oldOrder = 'ims_cjdc_order';
$oldOrderGood = 'ims_cjdc_order_goods';
$newOrderMain = 'lanzu_order_main';
$newOrder = 'lanzu_order';
$newOrderGood = 'lanzu_order_goods';
// main order // main order
$orderMain = DB::table('ims_cjdc_order_main')->get();
$orderMain = DB::table($oldOrderMain)->where('id',1)->get();
$bar = $this->output->createProgressBar(count($orderMain)); $bar = $this->output->createProgressBar(count($orderMain));
$bar->start(); $bar->start();
$mainIds = '已存在的订单id:';
$childIds = '已存在的订单id:';
foreach ($orderMain as $k => $main) { foreach ($orderMain as $k => $main) {
DB::beginTransaction(); DB::beginTransaction();
try { try {
// 查询记录是否存在
$exist_main = DB::table($newOrderMain)->where('id',$main->id)->exists();
if($exist_main){
$mainIds .= ','.$main->id;
continue;
}
// 主订单 // 主订单
$dataMain = [ $dataMain = [
'id' => $main->id,
'market_id' => $main->market_id ?? 0, 'market_id' => $main->market_id ?? 0,
'order_num' => $main->order_num ?? '', 'order_num' => $main->order_num ?? '',
'global_order_id' => $main->global_order_id ?? time().mt_rand(100000,999999),
'global_order_id' => $main->global_order_id ? $main->global_order_id : time().mt_rand(100000,999999),
'user_id' => $main->user_id ?? 0, 'user_id' => $main->user_id ?? 0,
'pay_type' => $main->pay_type ?? 0, 'pay_type' => $main->pay_type ?? 0,
'type' => $main->type ?? 0, 'type' => $main->type ?? 0,
@ -68,7 +86,7 @@ class MigrateOrder extends Command
'receive_time' => $main->jd_time ? strtotime($main->jd_time) : 0, 'receive_time' => $main->jd_time ? strtotime($main->jd_time) : 0,
'delivery_time' => 0, 'delivery_time' => 0,
'complete_time' => $main->complete_time ? strtotime($main->complete_time) : 0, 'complete_time' => $main->complete_time ? strtotime($main->complete_time) : 0,
'cancel_time' => $main->complete_time ? strtotime($main->complete_time) : 0,
'cancel_time' => $main->cancel_time ? strtotime($main->cancel_time) : 0,
'refund_time' => $main->refund_time ?? 0, 'refund_time' => $main->refund_time ?? 0,
'tel' => $main->tel ?? '', 'tel' => $main->tel ?? '',
'address' => $main->address ?? '', 'address' => $main->address ?? '',
@ -89,17 +107,24 @@ class MigrateOrder extends Command
'created_at' => $main->time_add ?? 0, 'created_at' => $main->time_add ?? 0,
'updated_at' => time(), 'updated_at' => time(),
]; ];
$newMainId = DB::table('lanzu_order_main')->insertGetId($dataMain);
$newMainId = DB::table($newOrderMain)->insertGetId($dataMain);
// 子订单 // 子订单
$orderChildren = DB::table('ims_cjdc_order')->where(['order_main_id' => $main->id])->get();
$orderChildren = DB::table($oldOrder)->where(['order_main_id' => $main->id])->get();
foreach ($orderChildren as $kChild => $child) { foreach ($orderChildren as $kChild => $child) {
// 查询记录是否存在
$exist_main = DB::table($newOrder)->where('id',$child->id)->exists();
if($exist_main){
$childIds .= ','.$child->id;
DB::rollBack();
continue;
}
// 子订单 // 子订单
$dataChild = [ $dataChild = [
'id' => $child->id,
'order_main_id' => $dataMain['global_order_id'] ?? 0, 'order_main_id' => $dataMain['global_order_id'] ?? 0,
'user_id' => $child->user_id ?? 0, 'user_id' => $child->user_id ?? 0,
'store_id' => $child->store_id ?? 0, 'store_id' => $child->store_id ?? 0,
'status' => 1,
'refund_time' => 0, 'refund_time' => 0,
'order_num' => $child->order_num ?? '', 'order_num' => $child->order_num ?? '',
'money' => $child->money ?? 0, 'money' => $child->money ?? 0,
@ -110,33 +135,43 @@ class MigrateOrder extends Command
'created_at' => $child->time_add ? strtotime($child->time_add) : 0, 'created_at' => $child->time_add ? strtotime($child->time_add) : 0,
'updated_at' => time(), 'updated_at' => time(),
]; ];
$newChildId = DB::table('lanzu_order')->insertGetId($dataChild);
if($child->state == 9){
$dataChild['status'] = 3;
}else if($child->state == 8){
$dataChild['status'] = 2;
}else{
$dataChild['status'] = 1;
}
$newChildId = DB::table($newOrder)->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' => '',
'note' => '',
];
$orderGoods = DB::table($oldOrderGood)->where(['order_id' => $child->id])->get();
if(count($orderGoods) > 0){
$dataGoods = [];
foreach ($orderGoods as $kGoods => $goods) {
// 订单商品
$dataGoods[] = [
'order_id' => $newChildId ?? 0,
'goods_id' => $goods->good_id ?? 0,
'number' => $goods->number ?? 0,
'status' => $dataChild['status'],
'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' => '',
'note' => '',
];
}
DB::table($newOrderGood)->insert($dataGoods);
} }
DB::table('lanzu_order_goods')->insert($dataGoods);
} }
$bar->advance(); $bar->advance();
DB::commit(); DB::commit();
@ -145,7 +180,8 @@ class MigrateOrder extends Command
DB::rollBack(); DB::rollBack();
} }
} }
var_dump($mainIds);
var_dump($childIds);
$bar->finish(); $bar->finish();
return 0; return 0;
} }

3
app/Console/Commands/MigrateOrderStatistics.php

@ -57,11 +57,10 @@ class MigrateOrderStatistics extends Command
$newData = []; $newData = [];
foreach ($oldData as $key => $value) { foreach ($oldData as $key => $value) {
$newData[] = [ $newData[] = [
'id' => $value->id,
'money' => $value->money ?? 0, 'money' => $value->money ?? 0,
'user_id' => $value->user_id ?? 0, 'user_id' => $value->user_id ?? 0,
'store_id' => $value->store_id ?? 0, 'store_id' => $value->store_id ?? 0,
'market_id' => $value->market_id ?? 0 ,
'market_id' => $value->market_id ?? 0,
'order_id' => $value->order_id ?? 0, 'order_id' => $value->order_id ?? 0,
'created_at' => $value->createtime ?? 0, 'created_at' => $value->createtime ?? 0,

144
app/Console/Commands/MigrateStore.php

@ -0,0 +1,144 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class MigrateStore extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'migrateData:store';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command 迁移店铺数据';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$oldTableName = 'ims_cjdc_store';
$newTableName = 'lanzu_store';
// $storeImgPath = 'QR_code/code_store_img/wx_store_';/* 商户小程序码 */
// $storePayPath = 'QR_code/code_pay_img/wx_pay_';/* 收银二维码 */
// 判断表是否存在
if(!Schema::hasTable($oldTableName)){
var_dump('旧表不存在');
return 0;
}
if(!Schema::hasTable($newTableName)){
var_dump('新表不存在');
return 0;
}
$oldData = DB::table($oldTableName)->orderBy('id','desc')->get();
$bar = $this->output->createProgressBar(count($oldData));
$bar->start();
$startTime = time();
$error = [];
$newData = [];
foreach ($oldData as $key => $value){
$storeId = $value->id ?? 0;
// 判断是否存在
$exist = DB::table($newTableName)->where('id',$storeId)->exists();
if($exist || $storeId == 0){
$error[] = ['store_id'=>$storeId,'msg'=>'已存在或者id为0'];
continue;
}
$storeData =[
'id'=>$storeId,
'market_id'=>$value->market_id ?? 0,
'is_open'=> $value->is_open == 1 ? 1 : 0,
'is_rest'=> $value->is_rest == 1 ? 1 : 0,
'status'=>$value->state ?? 0,
'category_id'=>$value->md_type ?? 0,
'user_id'=>$value->user_id ?? 0,
'admin_id'=>$value->admin_id ?? 0,
'mm_user_id'=>$value->mm_user_id ?? 0,
'sort'=>$value->number ?? 0,
'loudspeaker_imei'=>$value->loudspeaker_imei ?? '',
'name'=>$value->name ?? '',
'logo'=>$value->logo ?? '',
'announcement'=>$value->announcement ?? '',
'address' => $value->address ?? '',
'business_license'=> ($storeId == 365) ? '' :$value->yyzz ?? '',/* 因为365的数据的营业资质数据乱码,目前只有365这个店铺的有问题 */
'zm_img' => $value->zm_img ?? '',
'fm_img'=>$value->fm_img ?? '',
'tel' => $value->tel ?? '',
'link_name'=>$value->link_name ?? '',
'link_tel' => $value->link_tel ?? '',
'expire_time'=> $value->rzdq_time ? strtotime($value->rzdq_time) : 0,
'time1' => (empty($value->time) || $value->time == 'null')? '': $value->time,
'time2'=> (empty($value->time2) || $value->time2 == 'null')? '': $value->time2,
'time3' => (empty($value->time3) || $value->time3 == 'null')? '': $value->time3,
'time4'=> (empty($value->time4) || $value->time4 == 'null')? '': $value->time4,
'award_money' => $value->award_money ?? 0,
'sales'=>$value->score ?? 0,
'grade' => $value->sales ?? 0,
'code'=>$value->code ?? '',
'environment' => $value->environment ?? '',
'introduction'=> $value->details ? strip_tags($value->details) :'',
'store_applet_img' => '',
'cash_code_img' => '',
'created_at' => $value->time_add ? strtotime($value->time_add) : 0,
'updated_at' => time(),
];
// 获商户摊号
$stallInfo = '';
$res = preg_match('/[0-9]/', $value->name, $matches, PREG_OFFSET_CAPTURE);
if($res && count($matches)>0){
$stallInfo = substr($value->name,$matches[0][1]);
}
$storeData['stall_info'] = $stallInfo;
// 商户经纬度
if(!empty($value->coordinates)){
$coordinatesArr = explode(',',$value->coordinates);
$storeData['lng'] = $coordinatesArr[1];
$storeData['lat'] = $coordinatesArr[0];
}
$newData = $storeData;
$res = DB::table($newTableName)->insert($newData);
if(!$res){
$error[] = ['id'=>$storeId];
break;
}
$bar->advance();
}
$bar->finish();
var_dump([time()-$startTime]);
var_dump($error);
return 0;
}
}

264
app/Console/Commands/MigrateStoreBalance.php

@ -32,72 +32,157 @@ class MigrateStoreBalance extends Command
parent::__construct(); parent::__construct();
} }
/**
* Execute the console command.
*
* @return int
*/
public function handle()
public function getBalanceById($id)
{ {
$oldAccountTableName = 'ims_cjdc_store_account';
$oldStoreTableName = 'ims_cjdc_store';
$oldStoreSetTableName = 'ims_cjdc_storeset';
$oldStoreTypeTableName = 'ims_cjdc_storetype';
$oldOrderTableName = 'ims_cjdc_order';
$oldWithdrawalTableName = 'ims_cjdc_withdrawal';
$newBalanceTableName = 'lanzu_user_balance';
// 查询店铺
$stores = DB::table($oldStoreTableName)->select('id','md_type','ps_poundage','award_money')->where('id',$id)->get();
// 判断表是否存在
if(!Schema::hasTable($oldAccountTableName)){
var_dump('旧表不存在');
return 0;
}
if(!Schema::hasTable($newBalanceTableName)){
var_dump('新表不存在');
return 0;
if(count($stores) <= 0){
var_dump('店铺不存在');
return ;
} }
// 流水算法
$newData = $this->countStore($oldAccountTableName);
// 订单算法
// $newData = $this->countOrder();
//店铺设置
$storeSets = DB::table($oldStoreSetTableName)
->select('id','store_id','is_poundage','poundage','dn_poundage','dm_poundage','yd_poundage')
->where('store_id',$id)->first();
// var_dump($newData);
// var_dump(count($newData));
// return 0;
// 所有分类
$storeTypes = DB::table($oldStoreTypeTableName)->get()->toArray();
$storeTypeArr = array_column($storeTypes,null,'id');
$bar = $this->output->createProgressBar(count($newData));
$bar->start();
$startTime = time();
$error = [];
foreach($stores as $key => $value){
$storeId = $value->id;
foreach($newData as $store_id => $money){
$exist = DB::table($newBalanceTableName)->where('source_id',$store_id)->where('user_type',5)->exists();
if($exist){
$error[] = ['store_id'=>$store_id,'money'=>$money,'msg'=>'已存在'];
// $saveData = [
// 'balance' => number_format($money,2,'.',''),
// 'updated_at' => time()
// ];
// $res = DB::table($newBalanceTableName)->where('source_id',$store_id)->where('user_type',5)->increment('balance',$saveData['balance']);
// if(!$res){
// $error[] = ['store_id'=>$store_id,'money'=>$money];
// }
// 获取商家手续费 % 如果商家设置有自己的手续费则用商家的
if(!empty($storeSets) && $storeSets->is_poundage == 1){
$poundage = $storeSets;
}else{ }else{
$saveData = [
'source_id' => $store_id,
'user_type' => 5,
'balance' => number_format($money,2,'.',''),
'updated_at' => time()
];
$res = DB::table($newBalanceTableName)->insert($saveData);
if(!$res){
$error[] = ['store_id'=>$store_id,'money'=>$money];
}
$poundage = $storeTypeArr[$value->md_type];
} }
$bar->advance();
// 商家订单金额
// type '1.外卖2.店内3.预定4.当面付',
// pay_type '1.微信支付2.余额支付3.积分支付4.货到付款',
// state '1.待付款2.待结单3.等待送达4.完成5.已评价6.取消7.拒绝8.退款中9.已退款10.退款拒绝',
// 外卖
$wmOrder = DB::table($oldOrderTableName)
->select(DB::raw('sum(money) as total_money'),DB::raw('sum(ps_money) as ps_money'),DB::raw('sum(yhq_money2) as hb_money'))
->where('store_id',$storeId)
->where('type',1)
->whereIn('state',[4,5,10])
->whereIn('pay_type',[1,2])
->first();
// 店内
$dnOrder = DB::table($oldOrderTableName)
->select(DB::raw('sum(money) as total_money'),DB::raw('sum(yhq_money2) as hb_money'))
->where('store_id',$storeId)
->where('type',2)
->where('dn_state',2)
->whereIn('pay_type',[1,2])
->first();
// 当面
$dmOrder = DB::table($oldOrderTableName)
->select(DB::raw('sum(money) as total_money'))
->where('store_id',$storeId)
->where('type',4)
->where('dm_state',2)
->whereIn('pay_type',[1,2])
->first();
// 预约
$yyOrder = DB::table($oldOrderTableName)
->select(DB::raw('sum(money) as total_money'))
->where('store_id',$storeId)
->where('type',3)
->where('yy_state',3)
->whereIn('pay_type',[1,2])
->first();
// 提现
$txTotal = DB::table($oldWithdrawalTableName)
->select(DB::raw('sum(tx_cost) as total'))
->where('store_id',$storeId)
->whereIn('state',[1,2])
->first();
// 商家奖励
$awardTotal = empty($value->award_money) ? 0 : $value->award_money;
// 商户配送手续费
$psMoney = number_format(floatval($wmOrder->ps_money)*floatval($value->ps_poundage)/100,2,'.','');
// 不计算拼团和抢购的订单,目前没有这样的订单,在另外的订单表
// 计算 金额 = 奖励 + 订单(外卖+店内+当面+预约) - 手续费 - 提现 - 配送费
$balance = $awardTotal
+ ($wmOrder->total_money + $wmOrder->hb_money + $dnOrder->total_money + $dnOrder->hb_money + $dmOrder->total_money + $yyOrder->total_money )
- ((
($wmOrder->total_money + $wmOrder->ps_money + $wmOrder->hb_money) * floatval($poundage->poundage)
+ ($dnOrder->total_money + $dnOrder->hb_money ) * floatval($poundage->dn_poundage)
+ $dmOrder->total_money * floatval($poundage->dm_poundage)
+ $yyOrder->total_money * floatval($poundage->yd_poundage)
)/100)
- $txTotal->total
- $psMoney;
// $newData[$storeId] = number_format($balance,2,'.','');
} }
$bar->finish();
var_dump([time()-$startTime]);
var_dump($error);
return 0;
return number_format($balance,2,'.','');
}
/**
* Execute the console command.
* 单个店铺处理
* @return int
*/
public function handle()
{
$oldStoreTableName = 'ims_cjdc_store';
$newBalanceTableName = 'lanzu_user_balance';
$store_id = 2 ; // 店铺id
$balance = $this->getBalanceById($store_id);
// var_dump(number_format($balance,2,'.',''));
// return ;
$res = 1;
$userId = 0;// 店铺的提现用户id
$storeInfo = DB::table($oldStoreTableName)->select('user_id')->find($store_id);
if(empty($storeInfo) || empty($storeInfo->user_id)){
$res = ['store_id'=>$store_id,'balance'=>$balance,'msg'=>'店铺的用户不存在'];
var_dump($res);
return ;
}
$userId = $storeInfo->user_id;
$exist = DB::table($newBalanceTableName)->where('source_id',$userId)->where('user_type',5)->exists();
if($exist){
$res = ['store_id'=>$store_id,'balance'=>$balance,'msg'=>'已存在'];
}else{
$saveData = [
'source_id' => $userId,
'user_type' => 5,
'balance' => $balance,
'created_at' => time(),
'updated_at' => time()
];
// var_dump($saveData);
$res = DB::table($newBalanceTableName)->insert($saveData);
if(!$res){
$res = ['store_id'=>$store_id,'user_id'=>$userId,'balance'=>$balance,'msg'=>'添加失败'];
}
};
var_dump($res);
return ;
} }
/** /**
@ -135,7 +220,7 @@ class MigrateStoreBalance extends Command
$newData = []; $newData = [];
// 查询所有店铺 // 查询所有店铺
$stores = DB::table($oldStoreTableName)->select('id','md_type','ps_poundage','award_money')->get();
$stores = DB::table($oldStoreTableName)->select('id','md_type','ps_poundage','award_money')->where('id',)->get();
//店铺设置 //店铺设置
$storeSets = DB::table($oldStoreSetTableName)->select('id','store_id','is_poundage','poundage','dn_poundage','dm_poundage','yd_poundage')->get()->toArray(); $storeSets = DB::table($oldStoreSetTableName)->select('id','store_id','is_poundage','poundage','dn_poundage','dm_poundage','yd_poundage')->get()->toArray();
@ -225,4 +310,73 @@ class MigrateStoreBalance extends Command
return $newData; return $newData;
} }
/**
* 旧的处理方式
*/
public function old()
{
$oldAccountTableName = 'ims_cjdc_store_account';
$newBalanceTableName = 'lanzu_user_balance';
// 判断表是否存在
if(!Schema::hasTable($oldAccountTableName)){
var_dump('旧表不存在');
return 0;
}
if(!Schema::hasTable($newBalanceTableName)){
var_dump('新表不存在');
return 0;
}
// 流水算法
$newData = $this->countStore($oldAccountTableName);
// 订单算法
// $newData = $this->countOrder();
var_dump($newData);
var_dump(count($newData));
return 0;
$storeList = DB::table($newBalanceTableName)->pluck('user_id','id');
$bar = $this->output->createProgressBar(count($newData));
$bar->start();
$startTime = time();
$error = [];
foreach($newData as $store_id => $money){
$userId = 0;
if(!isset($storeList[$store_id])){
$error[] = ['store_id'=>$store_id,'money'=>$money,'msg'=>'店铺的用户不存在'];
}
$exist = DB::table($newBalanceTableName)->where('source_id',$userId)->where('user_type',5)->exists();
if($exist){
$error[] = ['store_id'=>$store_id,'money'=>$money,'msg'=>'已存在'];
// $saveData = [
// 'balance' => number_format($money,2,'.',''),
// 'updated_at' => time()
// ];
// $res = DB::table($newBalanceTableName)->where('source_id',$store_id)->where('user_type',5)->increment('balance',$saveData['balance']);
// if(!$res){
// $error[] = ['store_id'=>$store_id,'money'=>$money];
// }
}else{
$saveData = [
'source_id' => $userId,
'user_type' => 5,
'balance' => number_format($money,2,'.',''),
'updated_at' => time()
];
// $res = DB::table($newBalanceTableName)->insert($saveData);
// if(!$res){
// $error[] = ['store_id'=>$store_id,'money'=>$money];
// }
}
$bar->advance();
}
$bar->finish();
var_dump([time()-$startTime]);
var_dump($error);
return 0;
}
} }

22
app/Console/Commands/MigrateStoreFinancial.php

@ -59,12 +59,12 @@ class MigrateStoreFinancial extends Command
$startTime = time(); $startTime = time();
$error = []; $error = [];
foreach ($oldData as $key => $value){ foreach ($oldData as $key => $value){
$type = $value->type;
$note = $value->note;
$storeId = $value->store_id;
$userId = $value->user_id;
$type = $value->type ?? 0;
$note = $value->note ?? '';
$storeId = $value->store_id ?? 0;
$userId = $value->user_id ?? 0;
if(empty($storeId) || empty($type) || empty($note)){ if(empty($storeId) || empty($type) || empty($note)){
$error[] = ['id'=>$value->id];
$error[] = ['id'=>$value->id,'msg'=>'数据错误或者为空'];
continue; continue;
} }
if(empty($userId)){ if(empty($userId)){
@ -117,7 +117,10 @@ class MigrateStoreFinancial extends Command
->where('money_type',$moneyType) ->where('money_type',$moneyType)
->exists(); ->exists();
if(!$exist){
if($exist){
$error[] = ['id'=>$value->id,'msg'=>'总帐已存在'];
continue;
}else{
if(!DB::table($newTableName)->insert($newData)){ if(!DB::table($newTableName)->insert($newData)){
$error[] = ['id'=>$value->id,'msg'=>'总账添加失败']; $error[] = ['id'=>$value->id,'msg'=>'总账添加失败'];
break; break;
@ -135,7 +138,10 @@ class MigrateStoreFinancial extends Command
->where('money',$money) ->where('money',$money)
->where('money_type',$moneyType) ->where('money_type',$moneyType)
->exists(); ->exists();
if(!$existSub){
if($existSub){
$error[] = ['id'=>$value->id,'msg'=>'已存在'];
continue;
}else{
if(!DB::table($newSubTableName)->insert($newData)){ if(!DB::table($newSubTableName)->insert($newData)){
$error[] = ['id'=>$value->id,'msg'=>'用户账添加失败']; $error[] = ['id'=>$value->id,'msg'=>'用户账添加失败'];
break; break;
@ -146,7 +152,7 @@ class MigrateStoreFinancial extends Command
} }
$bar->finish(); $bar->finish();
var_dump([time()-$startTime]); var_dump([time()-$startTime]);
var_dump($error);
var_dump(count($error));
return 0; return 0;
} }

1
app/Console/Commands/MigrateStoreWithdrawal.php

@ -62,6 +62,7 @@ class MigrateStoreWithdrawal extends Command
// 判断是否存在 // 判断是否存在
$exist = DB::table($newTableName)->where('id',$withdrawalId)->exists(); $exist = DB::table($newTableName)->where('id',$withdrawalId)->exists();
if($exist){ if($exist){
$error[] = ['id'=>$withdrawalId,'msg'=>'已存在'];
continue; continue;
} }
$newData =[ $newData =[

25
app/Console/Commands/MigrateUser.php

@ -55,35 +55,36 @@ class MigrateUser extends Command
$bar = $this->output->createProgressBar(count($oldData)); $bar = $this->output->createProgressBar(count($oldData));
$bar->start(); $bar->start();
$startTime = time(); $startTime = time();
$error = [];
$error = '用户已存在:';
foreach ($oldData as $key => $value){ foreach ($oldData as $key => $value){
$userId = $value->id;
$userId = $value->id ?? 0;
// 判断是否存在 // 判断是否存在
$exist = DB::table($newTableName)->where('id',$userId)->exists(); $exist = DB::table($newTableName)->where('id',$userId)->exists();
if($exist){ if($exist){
$error .= ','.$value->id;
continue; continue;
} }
$newData =[ $newData =[
'id'=>$userId, 'id'=>$userId,
'nick_name'=>$value->name,
'nick_name'=>$value->name ?? '',
'avatar'=>$value->img,
'openid'=>$value->openid,
'avatar'=>$value->img ?? '',
'openid'=>$value->openid ?? '',
'total_score'=>$value->total_score,
'wallet'=>$value->wallet,
'total_score'=>$value->total_score ?? 0,
'wallet'=>$value->wallet ?? 0,
'real_name'=>$value->user_name,
'tel'=>$value->user_tel,
'real_name'=>$value->user_name ?? '',
'tel'=>$value->user_tel ?? '',
'unionid'=>$value->unionid, 'unionid'=>$value->unionid,
'created_at' => strtotime($value->join_time),
'updated_at' => $value->updated_at,
'created_at' => $value->join_time ?? time(),
'updated_at' => time(),
]; ];
$res = DB::table($newTableName)->insert($newData); $res = DB::table($newTableName)->insert($newData);
if(!$res){ if(!$res){
$error[] = ['id'=>$userId];
$error[] = ['id'=>$userId,'msg'=>'添加失败'];
break; break;
} }
$bar->advance(); $bar->advance();

2
app/Console/Commands/MigrateUserAddr.php

@ -60,7 +60,7 @@ class MigrateUserAddr extends Command
foreach ($oldData as $key => $value) { foreach ($oldData as $key => $value) {
$addressArr = explode('|',$value->address); $addressArr = explode('|',$value->address);
$address = $addressArr[0];
$address = isset($addressArr[0])?$addressArr[0]:'';
$doorplate = isset($addressArr[1])?$addressArr[1]:''; $doorplate = isset($addressArr[1])?$addressArr[1]:'';
$newData[] = [ $newData[] = [

11
app/Console/Commands/MigrateUserCollection.php

@ -57,23 +57,24 @@ class MigrateUserCollection extends Command
$bar = $this->output->createProgressBar(count($oldData)); $bar = $this->output->createProgressBar(count($oldData));
$bar->start(); $bar->start();
$startTime = time(); $startTime = time();
$error = [];
$error = '已存在:';
foreach ($oldData as $key => $value){ foreach ($oldData as $key => $value){
$collectionId = $value->id;
$collectionId = $value->id ?? 0;
// 判断是否存在 // 判断是否存在
$exist = DB::table($newTableName)->where('id',$collectionId)->exists(); $exist = DB::table($newTableName)->where('id',$collectionId)->exists();
if($exist){ if($exist){
$error .= ','.$collectionId;
continue; continue;
} }
// 店铺存在 // 店铺存在
if(isset($oldStoreData[$value->store_id])){ if(isset($oldStoreData[$value->store_id])){
$newData =[ $newData =[
'id'=>$collectionId, 'id'=>$collectionId,
'store_id'=>$value->store_id,
'user_id'=>$value->user_id,
'store_id'=>$value->store_id ?? 0,
'user_id'=>$value->user_id ?? 0,
'market_id'=> isset($oldStoreData[$value->store_id])?$oldStoreData[$value->store_id]:0, 'market_id'=> isset($oldStoreData[$value->store_id])?$oldStoreData[$value->store_id]:0,
'created_at' => $value->time,
'created_at' => $value->time ?? time(),
'updated_at' => time(), 'updated_at' => time(),
]; ];

5
app/Console/Commands/SetStoreBalance.php

@ -53,13 +53,13 @@ class SetStoreBalance extends Command
foreach ($oldData as $key => $value){ foreach ($oldData as $key => $value){
// 查询店铺是否存在balance // 查询店铺是否存在balance
$exist = DB::table($newTableName) $exist = DB::table($newTableName)
->where('source_id',$value->id)
->where('source_id',$value->user_id)
->where('user_type',5) ->where('user_type',5)
->first(); ->first();
if(empty($exist)){ if(empty($exist)){
$newData[] = [ $newData[] = [
'source_id' => $value->id,
'source_id' => $value->user_id,
'user_type' => 5, 'user_type' => 5,
'balance' => 0, 'balance' => 0,
'created_at' => time(), 'created_at' => time(),
@ -68,6 +68,7 @@ class SetStoreBalance extends Command
}else{ }else{
$data[] = [ $data[] = [
'store_id' => $value->id, 'store_id' => $value->id,
'user_id' => $value->user_id,
'balance_id' => $exist->id 'balance_id' => $exist->id
]; ];
} }

57
app/Console/Commands/SetStoreUsers.php

@ -41,31 +41,54 @@ class SetStoreUsers extends Command
*/ */
public function handle() public function handle()
{ {
// 如果表不存在则创建
// if(!Schema::hasTable('lanzu_store_users')){
// Schema::create('lanzu_store_users',function (Blueprint $table){
// $table->id();
// });
// }
$account = DB::table('ims_cjdc_account')->get();
$oldAccount = 'ims_cjdc_account';
$oldTable = 'ims_users';
$newTable = 'lanzu_store_users';
$oldData = DB::table($oldTable)->get();
$account = DB::table($oldAccount)->select('uid','role','storeid')->get()->toArray();
$accountArr = array_column($account,null,'uid');
$bar = $this->output->createProgressBar(count($account)); $bar = $this->output->createProgressBar(count($account));
$bar->start(); $bar->start();
$accountStr = '已经存在的账号id:';
$newData = [];
foreach ($oldData as $k => $v){
foreach ($account as $ka => $va){
$data = [];
$storeUsers = DB::table('lanzu_store_users')->find($va->uid);
if(!empty($storeUsers)){
$data =[
'user_category'=>$va->role,
'store_id'=>$va->storeid
$exist = DB::table($newTable)->where('id',$v->uid)->exists();
if($exist){
$accountStr .= ','.$v->uid;
}else{
$newData[] =[
'id' => $v->uid,
'openid' => $v->openid ?? '',
'username' => $v->username ?? '',
'password' => $v->password ?? '',
'salt' => $v->salt ?? '',
'register_type' => 0,
'status' => $v->status ?? 0,
'join_ip' => $v->joinip ?? '',
'last_visit_time' => $v->lastvisit ?? 0,
'last_ip' => $v->lastip ?? '',
'token' => $v->token ?? '',
'token_expire' => $v->token_expire ?? '',
'remark' => $v->remark ?? '',
'created_at' => $v->joindate ?? 0,
'updated_at' => time(),
'user_category'=> isset($accountArr[$v->uid]) ? $accountArr[$v->uid]->role ?? 0 : 0,
'store_id'=> isset($accountArr[$v->uid]) ? $accountArr[$v->uid]->storeid ?? 0 : 0,
]; ];
DB::table('lanzu_store_users')->where('id',$va->uid)->update($data);
} }
$bar->advance();
} }
DB::table($newTable)->insert($newData);
$bar->finish(); $bar->finish();
var_dump($accountStr);
return 0; return 0;
} }
} }
Loading…
Cancel
Save