From 6851064d9ba3a21085c7bda0f096dc73405fd90d Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Mon, 14 Sep 2020 14:28:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E5=95=86=E5=AE=B6=E8=B4=A6?= =?UTF-8?q?=E6=88=B7=E6=B5=81=E6=B0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Commands/MigrateStoreFinancial.php | 223 ++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 app/Console/Commands/MigrateStoreFinancial.php diff --git a/app/Console/Commands/MigrateStoreFinancial.php b/app/Console/Commands/MigrateStoreFinancial.php new file mode 100644 index 0000000..53791f4 --- /dev/null +++ b/app/Console/Commands/MigrateStoreFinancial.php @@ -0,0 +1,223 @@ +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($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; + } + } + + $typeArr = $this->getType($type,$note); + + $userType = 5; + + $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' => 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'] = 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 = '商户提现打款'; + +}