From fb49707d545305800001e088e37cec61b050d39c Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Fri, 14 Nov 2025 09:57:17 +0800 Subject: [PATCH] update --- app/Console/Commands/UpdateCompany.php | 52 ++++++++++++++++++++------ 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/app/Console/Commands/UpdateCompany.php b/app/Console/Commands/UpdateCompany.php index ae86aa3..0c673c6 100755 --- a/app/Console/Commands/UpdateCompany.php +++ b/app/Console/Commands/UpdateCompany.php @@ -43,7 +43,7 @@ class UpdateCompany extends Command public function handle() { $user_id = $this->option('user_id'); - $updateLocal = (int)$this->option('address'); + $updateLocal = (int) $this->option('address'); // 更新公司信息 $this->compnay($user_id); // 更新经纬度信息(可选) @@ -65,17 +65,29 @@ class UpdateCompany extends Command // 批量更新 $users = User::whereNotNull('company_name')->get(); } + + $total = $users->count(); + if ($total == 0) { + return $this->info('没有需要更新的用户'); + } + + $this->info("开始更新公司信息,共 {$total} 个用户"); + $bar = $this->output->createProgressBar($total); + $bar->start(); + $YuanheRepository = new YuanheRepository(); foreach ($users as $user) { // 获取公司详细信息 $result = $YuanheRepository->companyInfo(['enterpriseName' => $user->company_name]); if (!$result) { - $this->info($user->company_name . '公司不存在'); + $bar->setMessage($user->company_name . ' 公司不存在', 'status'); + $bar->advance(); continue; } // 如果$result['enterpriseName']存在数字,跳过 if (preg_match('/\d/', $result['enterpriseName'])) { - $this->info($user->company_name . '公司名称包含数字,跳过'); + $bar->setMessage($user->company_name . ' 公司名称包含数字,跳过', 'status'); + $bar->advance(); continue; } $where = ['company_name' => $result['enterpriseName']]; @@ -106,7 +118,7 @@ class UpdateCompany extends Command 'stock_type' => $result['stockType'], 'company_tag' => implode(',', $result['tagList']), // 更新日期 - 'update_date' => $result['updatedDate']??null, + 'update_date' => $result['updatedDate'] ?? null, // 管理平台 'project_users' => $result['projectUsers'] ?? null, ]; @@ -114,8 +126,12 @@ class UpdateCompany extends Command // 更新用户关联 $user->company_id = $company->id; $user->save(); - $this->info($result['enterpriseName'] . '-更新成功'); + $bar->setMessage($result['enterpriseName'] . ' 更新成功', 'status'); + $bar->advance(); } + + $bar->finish(); + $this->newLine(); return $this->info('公司信息-全部更新完成'); } @@ -128,7 +144,7 @@ class UpdateCompany extends Command // 强制单个更新 $user = User::find($user_id); if (empty($user->company_id)) { - return false; + return $this->error('用户没有关联公司'); } $companys = Company::where('id', $user->company_id)->get(); } else { @@ -138,19 +154,33 @@ class UpdateCompany extends Command ->where('company_address', '!=', '') ->get(); } + + $total = $companys->count(); + if ($total == 0) { + return $this->info('没有需要更新经纬度的公司'); + } + + $this->info("开始更新经纬度信息,共 {$total} 个公司"); + $bar = $this->output->createProgressBar($total); + $bar->start(); + // 每3个数据分一个chunk 。接口限制了一秒只能3次请求 - $companys = $companys->chunk(3); - foreach ($companys as $company) { - foreach ($company as $item) { + $companysChunk = $companys->chunk(3); + foreach ($companysChunk as $companyChunk) { + foreach ($companyChunk as $item) { $local = Company::addressTolocation($item->company_address); $item->company_longitude = $local['lng']; $item->company_latitude = $local['lat']; $item->save(); - $this->info($item->company_name . "-{$local['lng']}-{$local['lat']}-经纬度信息更新成功"); + $bar->setMessage($item->company_name . " 经纬度({$local['lng']}, {$local['lat']})更新成功", 'status'); + $bar->advance(); } sleep(1); } - return true; + + $bar->finish(); + $this->newLine(); + return $this->info('经纬度信息-全部更新完成'); } }