45 lines
1.5 KiB
PHP
45 lines
1.5 KiB
PHP
<?php
|
||
|
||
namespace App\Console\Commands;
|
||
|
||
use Illuminate\Console\Command;
|
||
use Modules\EcommerceFinance\Services\JushuitanShopBalanceImporter;
|
||
use Throwable;
|
||
|
||
class ImportJushuitanShopBalances extends Command
|
||
{
|
||
protected $signature = 'business:import-jushuitan-shop-balances
|
||
{path : 聚水潭店铺余额接口 JSON 或 XLSX/XLS 导出文件}
|
||
{--balance-date= : 导入日期,格式 YYYY-MM-DD;多日期导出必须指定}
|
||
{--scope=all : 来源范围,同一日期同一范围会被原子替换}
|
||
{--dry-run : 只校验和统计,不写入共享业务库}';
|
||
|
||
protected $description = '校验并导入聚水潭平台原始账单中的店铺余额快照';
|
||
|
||
public function handle(JushuitanShopBalanceImporter $importer): int
|
||
{
|
||
try {
|
||
$result = $importer->import(
|
||
(string) $this->argument('path'),
|
||
$this->option('balance-date') === null ? null : (string) $this->option('balance-date'),
|
||
(string) $this->option('scope'),
|
||
(bool) $this->option('dry-run'),
|
||
);
|
||
} catch (Throwable $exception) {
|
||
$this->error($exception->getMessage());
|
||
|
||
return self::FAILURE;
|
||
}
|
||
|
||
$this->info(sprintf(
|
||
'%s:%s 共 %d 条,替换原有 %d 条。',
|
||
$result['dry_run'] ? '校验完成' : '导入完成',
|
||
$result['balance_date'],
|
||
$result['total'],
|
||
$result['replaced'],
|
||
));
|
||
|
||
return self::SUCCESS;
|
||
}
|
||
}
|