From c4bf26a007a8d93f5cb50cb0905160be4384fca0 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Sat, 12 Sep 2020 14:52:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E5=95=86=E6=88=B7=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E5=92=8C=E7=94=A8=E6=88=B7=E6=B5=81=E6=B0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/v3/StoreController.php | 2 +- app/Console/Commands/MigrateShoppingCart.php | 4 +- app/Console/Commands/MigrateStore.php | 8 +- app/Console/Commands/MigrateStoreAccount.php | 207 ++++++++++++------- app/Console/Commands/MigrateUserAccount.php | 192 +++++++++++++++++ 5 files changed, 331 insertions(+), 82 deletions(-) create mode 100644 app/Console/Commands/MigrateUserAccount.php diff --git a/app/Admin/Controllers/v3/StoreController.php b/app/Admin/Controllers/v3/StoreController.php index 163f4bc..9bef23b 100644 --- a/app/Admin/Controllers/v3/StoreController.php +++ b/app/Admin/Controllers/v3/StoreController.php @@ -241,7 +241,7 @@ class StoreController extends AdminController $storeUsersModel->register_type = 4; $storeUsersModel->status = 2; $storeUsersModel->salt = $this->random(8); - $storeUsersModel->password = $this->stringHash(substr($form->link_tel,-1,5),$storeUsersModel->salt); + $storeUsersModel->password = $this->stringHash(substr($form->link_tel,-6),$storeUsersModel->salt); $storeUsersModel->remark = '入驻店铺注册'; $storeUsersModel->save(); } diff --git a/app/Console/Commands/MigrateShoppingCart.php b/app/Console/Commands/MigrateShoppingCart.php index 4b8ca02..a4f3efb 100644 --- a/app/Console/Commands/MigrateShoppingCart.php +++ b/app/Console/Commands/MigrateShoppingCart.php @@ -20,7 +20,7 @@ class MigrateShoppingCart extends Command * * @var string */ - protected $description = 'Command 迁移购物车数据'; + protected $description = 'Command 迁移购物车数据,旧数据不迁移'; /** * Create a new command instance. @@ -51,7 +51,7 @@ class MigrateShoppingCart extends Command var_dump('新表不存在'); return 0; } - +return 0; $oldData = DB::table($oldTableName)->orderBy('id','asc')->get(); $oldStoreData = DB::table($oldStoreTableName)->pluck('market_id','id'); $bar = $this->output->createProgressBar(count($oldData)); diff --git a/app/Console/Commands/MigrateStore.php b/app/Console/Commands/MigrateStore.php index d09bfc4..67fd1e1 100644 --- a/app/Console/Commands/MigrateStore.php +++ b/app/Console/Commands/MigrateStore.php @@ -92,10 +92,10 @@ class MigrateStore extends Command 'link_name'=>$value->link_name, 'link_tel' => $value->link_tel, 'expire_time'=> strtotime($value->rzdq_time), - 'time1' => $value->time, - 'time2'=>$value->time2, - 'time3' => $value->time3, - 'time4'=>$value->time4, + '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, 'sales'=>$value->score, diff --git a/app/Console/Commands/MigrateStoreAccount.php b/app/Console/Commands/MigrateStoreAccount.php index 8cdbccb..f960267 100644 --- a/app/Console/Commands/MigrateStoreAccount.php +++ b/app/Console/Commands/MigrateStoreAccount.php @@ -40,6 +40,7 @@ class MigrateStoreAccount extends Command public function handle() { $oldTableName = 'ims_cjdc_store_account'; + $oldStoreTableName = 'ims_cjdc_store'; $newTableName = 'lanzu_financial_record'; // 判断表是否存在 if(!Schema::hasTable($oldTableName)){ @@ -51,102 +52,92 @@ class MigrateStoreAccount extends Command return 0; } - $desc='用户店铺首单奖励'; - $comment='用户当面付商户奖励'; - - $desc='新用户下单奖励'; - $comment='用户当面付商户奖励'; - - $desc = '线上外卖订单收入'; - $comment = '用户订单完成'; - - $desc = '线下当面付订单收入'; - $comment = '用户订单完成'; - - $desc = '线上订单退款'; - $comment = '线上订单退款到微信'; - - $desc = '商户提现'; - $comment = '商户提现打款'; - $oldData = DB::table($oldTableName)->orderBy('id','asc')->get(); + $oldStoreData = DB::table($oldStoreTableName)->pluck('user_id','id'); $bar = $this->output->createProgressBar(count($oldData)); $bar->start(); $startTime = time(); $error = []; foreach ($oldData as $key => $value){ + $type = $value->type; + $note = $value->note; $storeId = $value->store_id; $userId = $value->user_id; - if(empty($userId) || empty($storeId)){ - $error[] = ['user_id'=>$userId,'store_id'=>$storeId]; - break; + if(empty($storeId) || empty($type) || empty($note)){ + $error[] = ['id'=>$value->id]; + continue; + } + if(empty($userId)){ + if(isset($oldStoreData[$storeId])){ + $userId = $oldStoreData[$storeId]; + }else{ + $error[] = ['id'=>$value->id,'msg'=>'找不到用户']; + continue; + } } - $userType = 0; - $moneyType = 0; + + $typeArr = $this->getType($type,$note); + + $userType = 5; + + $money = $value->money; + $moneyType = $typeArr['money_type']; + $sourceId = $value->order_id; - $sourceType = 0; + $sourceType = $typeArr['source_type']; + + $desc = $typeArr['desc']; + $comment = $typeArr['comment']; + + $newData =[ + 'user_id'=>$userId, + 'user_type'=>$userType, + + 'money'=>$money, + 'money_type'=>$moneyType, + + 'source_id'=>$sourceId, + 'source_type'=>$sourceType, + + 'desc'=>$desc, + 'comment'=>$comment, + 'status'=>1, + + 'created_at' => strtotime($value->time), + 'updated_at' => time(), + ]; + // 判断是否存在 总账 $exist = DB::table($newTableName) ->where('user_id',$userId) - ->where('user_type',5) - ->where('source_id',$value->order_id) - ->where('source_type',0) - ->where('money_type') + ->where('user_type',$userType) + ->where('source_id',$sourceId) + ->where('source_type',$sourceType) + ->where('money',$money) + ->where('money_type',$moneyType) ->exists(); - $desc = ''; - $comment = ''; - if(!$exist){ - $newData =[ - 'user_id'=>$userId, - 'user_type'=>$userType, - - 'money'=>$value->money, - 'money_type'=>$moneyType, - - 'source_id'=>$sourceId, - 'source_type'=>$sourceType, - - 'desc'=>$desc, - 'comment'=>$comment, - 'status'=>1, - - 'created_at' => time(), - 'updated_at' => time(), - ]; - $res = DB::table($newTableName)->insert($newData); - if(!$res){ - $error[] = ['id'=>$userId]; + if(!$exist){ + if(!DB::table($newTableName)->insert($newData)){ + $error[] = ['id'=>$value->id,'msg'=>'总账添加失败']; break; } } - // 判断是否存在 详细账 + // 判断是否存在 用户账 $mod = bcmod((string)$userId, '5', 0); $newSubTableName = $newTableName.'_'.$mod; - $existSub = DB::table($newSubTableName)->where('id',$userId)->exists(); + $existSub = DB::table($newSubTableName) + ->where('user_id',$userId) + ->where('user_type',$userType) + ->where('source_id',$sourceId) + ->where('source_type',$sourceType) + ->where('money',$money) + ->where('money_type',$moneyType) + ->exists(); if(!$existSub){ - $newData =[ - 'id'=>$userId, - 'nick_name'=>$value->name, - - 'avatar'=>$value->img, - 'openid'=>$value->openid, - - 'total_score'=>$value->total_score, - 'wallet'=>$value->wallet, - - 'real_name'=>$value->user_name, - 'tel'=>$value->user_tel, - 'unionid'=>$value->unionid, - - 'created_at' => strtotime($value->join_time), - 'updated_at' => $value->updated_at, - ]; - - $res = DB::table($newSubTableName)->insert($newData); - if(!$res){ - $error[] = ['id'=>$userId]; + if(!DB::table($newSubTableName)->insert($newData)){ + $error[] = ['id'=>$value->id,'msg'=>'用户账添加失败']; break; } } @@ -159,8 +150,74 @@ class MigrateStoreAccount extends Command return 0; } - public function getMoneyType($type,$note) + public function getType($type,$note) { + $array = []; + // 1加,2减 + switch($type){ + case 1: + if($note == '用户下单成功,平台奖励'){ + $array['money_type'] = 5; + $array['source_type'] = 1; + $array['desc'] = '用户店铺首单奖励'; + $array['comment'] = '用户当面付商户奖励'; + + }else if($note == '新用户下单成功,平台奖励'){ + $array['money_type'] = 4; + $array['source_type'] = 1; + $array['desc'] = '新用户下单奖励'; + $array['comment'] = '用户当面付商户奖励'; + }else if($note == '当面付订单收入'){ + $array['money_type'] = 7; + $array['source_type'] = 1; + $array['desc'] = '线下当面付订单收入'; + $array['comment'] = '用户订单完成'; + + }else if($note == '线上订单' || $note == '线上订单收入' || $note == '线上订单收入-测试'){ + $array['money_type'] = 6; + $array['source_type'] = 1; + $array['desc'] = '线上外卖订单收入'; + $array['comment'] = '用户订单完成'; + } + break; + case 2: + if($note == '提现到微信'){ + $array['money_type'] = 105; + $array['source_type'] = 2; + $array['desc'] = '商户提现'; + $array['comment'] = '商户提现打款'; + + } + break; + default: + break; + } + return $array; } + + // 用户下单成功,平台奖励 + // $desc='用户店铺首单奖励'; + // $comment='用户当面付商户奖励'; + + // 新用户下单成功,平台奖励 + // $desc='新用户下单奖励'; + // $comment='用户当面付商户奖励'; + + // 线上订单 + // $desc = '线上外卖订单收入'; + // $comment = '用户订单完成'; + + // 当面付订单收入 + // $desc = '线下当面付订单收入'; + // $comment = '用户订单完成'; + + // 线上订单退款 + // $desc = '线上订单退款'; + // $comment = '线上订单退款到微信'; + + // 提现到微信 + // $desc = '商户提现'; + // $comment = '商户提现打款'; + } diff --git a/app/Console/Commands/MigrateUserAccount.php b/app/Console/Commands/MigrateUserAccount.php new file mode 100644 index 0000000..902280f --- /dev/null +++ b/app/Console/Commands/MigrateUserAccount.php @@ -0,0 +1,192 @@ +orderBy('id','asc')->get(); + + $bar = $this->output->createProgressBar(count($oldData)); + $bar->start(); + $startTime = time(); + $error = []; + foreach ($oldData as $key => $value){ + $type = $value->type; + $note = $value->note; + $userId = $value->user_id; + if(empty($userId) || empty($type) || empty($note)){ + $error[] = ['id'=>$value->id]; + continue; + } + + $typeArr = $this->getType($type,$note); + + $userType = 1; + + $money = $value->money; + $moneyType = $typeArr['money_type']; + + $sourceId = $value->order_id; + $sourceType = $typeArr['source_type']; + + $desc = $typeArr['desc']; + $comment = $typeArr['comment']; + + $newData =[ + 'user_id'=>$userId, + 'user_type'=>$userType, + + 'money'=>$money, + 'money_type'=>$moneyType, + + 'source_id'=>$sourceId, + 'source_type'=>$sourceType, + + 'desc'=>$desc, + 'comment'=>$comment, + 'status'=>1, + + 'created_at' => $moneyType == 8 ? $value->time : strtotime($value->time), + 'updated_at' => time(), + ]; + + // 判断是否存在 总账 + $exist = DB::table($newTableName) + ->where('user_id',$userId) + ->where('user_type',$userType) + ->where('source_id',$sourceId) + ->where('source_type',$sourceType) + ->where('money',$money) + ->where('money_type',$moneyType) + ->exists(); + + if(!$exist){ + if(!DB::table($newTableName)->insert($newData)){ + $error[] = ['id'=>$value->id,'msg'=>'总账添加失败']; + break; + } + } + + // 判断是否存在 用户账 + $mod = bcmod((string)$userId, '5', 0); + $newSubTableName = $newTableName.'_'.$mod; + $existSub = DB::table($newSubTableName) + ->where('user_id',$userId) + ->where('user_type',$userType) + ->where('source_id',$sourceId) + ->where('source_type',$sourceType) + ->where('money',$money) + ->where('money_type',$moneyType) + ->exists(); + if(!$existSub){ + if(!DB::table($newSubTableName)->insert($newData)){ + $error[] = ['id'=>$value->id,'msg'=>'用户账添加失败']; + break; + } + } + + $bar->advance(); + } + $bar->finish(); + var_dump([time()-$startTime]); + var_dump($error); + return 0; + } + + public function getType($type,$note) + { + $array = []; + // 1加,2减 + switch($type){ + case 1: + if($note == '当面付订单'){ + $array['money_type'] = 100; + $array['source_type'] = 1; + $array['desc'] = '用户下单(线下)'; + $array['comment'] = '用户下单'; + + }else if($note == '外卖订单'){ + $array['money_type'] = 101; + $array['source_type'] = 1; + $array['desc'] = '用户下单(线上)'; + $array['comment'] = '用户下单'; + } + break; + case 2: + if($note == '订单退款'){ + $array['money_type'] = 8; + $array['source_type'] = 1; + $array['desc'] = '线上订单退款'; + $array['comment'] = '线上订单退款到微信'; + + } + break; + default: + break; + } + return $array; + } + + // 当面付订单 + // $desc='用户下单(线下)', + // $comment='用户下单' + + // 外卖订单 + // $desc='用户下单(线上)', + // $comment='用户下单' + + // 订单退款 + // $desc = '线上订单退款', + // $comment = '线上订单退款到微信' + + // 后台充值 + // 在线充值 + // 订单拒绝 +}