master
cody 2 weeks ago
parent 5b504adad0
commit 8717fb8229

@ -16,7 +16,7 @@ class UpdateCompany extends Command
* *
* @var string * @var string
*/ */
protected $signature = 'update_company {--user_id=} {--address=0}'; protected $signature = 'update_company {--user_id=} {--address=0} {--market=0}';
/** /**
* The console command description. * The console command description.
@ -44,12 +44,17 @@ class UpdateCompany extends Command
{ {
$user_id = $this->option('user_id'); $user_id = $this->option('user_id');
$updateLocal = (int) $this->option('address'); $updateLocal = (int) $this->option('address');
$updateMarket = (int) $this->option('market');
// 更新公司信息 // 更新公司信息
$this->compnay($user_id); $this->compnay($user_id);
// 更新经纬度信息(可选) // 更新经纬度信息(可选)
if ($updateLocal) { if ($updateLocal) {
$this->local($user_id); $this->local($user_id);
} }
// 更新上市状态(可选)
if ($updateMarket) {
$this->updateMarketStatus();
}
return $this->info('全部更新完成'); return $this->info('全部更新完成');
} }
@ -194,4 +199,50 @@ class UpdateCompany extends Command
return $this->info('经纬度信息-全部更新完成'); return $this->info('经纬度信息-全部更新完成');
} }
/**
* 根据 company_tag 更新上市状态
* 判断是否包含上市代码标签,如 688001.SH、000001.SZ、830001.BJ 等
*/
public function updateMarketStatus()
{
$this->info('开始更新上市状态...');
// 获取所有有 company_tag 的公司
$companies = Company::whereNotNull('company_tag')
->where('company_tag', '!=', '')
->get();
$total = $companies->count();
if ($total == 0) {
return $this->info('没有需要更新上市状态的公司');
}
$bar = $this->output->createProgressBar($total);
$bar->start();
// 上市代码正则:数字.SH 或 数字.SZ 或 数字.BJ
$stockCodePattern = '/\d{6}\.(SH|SZ|BJ)/i';
$updatedCount = 0;
foreach ($companies as $company) {
$hasStockCode = preg_match($stockCodePattern, $company->company_tag);
$newMarketStatus = $hasStockCode ? 1 : 0;
// 只有状态变化才更新
if ($company->company_market != $newMarketStatus) {
$company->company_market = $newMarketStatus;
$company->save();
$updatedCount++;
$statusText = $newMarketStatus ? '上市' : '非上市';
$bar->setMessage("{$company->company_name} => {$statusText}", 'status');
}
$bar->advance();
}
$bar->finish();
$this->newLine();
return $this->info("上市状态更新完成,共更新 {$updatedCount} 个公司");
}
} }

Loading…
Cancel
Save