setName('qywx:sync_customer') ->setDescription('同步企业微信客户到本地数据库') ->addArgument('action', Argument::OPTIONAL, '执行操作(sync/status)', 'sync'); } protected function execute(Input $input, Output $output) { $action = $input->getArgument('action') ?: 'sync'; switch ($action) { case 'sync': $this->syncCustomers($output); break; case 'status': $this->showStatus($output); break; default: $output->error('未知操作: ' . $action); break; } } /** * 同步客户 */ private function syncCustomers(Output $output) { $output->info('开始同步企业微信客户...'); $result = CustomerLogic::syncCustomers(); if ($result === false) { $output->error('同步失败: ' . CustomerLogic::getError()); return; } $output->info('同步完成!'); $output->info('总计同步: ' . ($result['sync_count'] ?? 0) . ' 个客户'); $output->info('新增: ' . ($result['new_count'] ?? 0)); $output->info('更新: ' . ($result['update_count'] ?? 0)); } /** * 显示同步状态 */ private function showStatus(Output $output) { $stats = CustomerLogic::getStats(); $output->info('=== 企业微信客户同步状态 ==='); $output->info('客户总数: ' . $stats['total']); $output->info('今日新增: ' . $stats['today']); $output->info('同步状态: ' . $stats['syncStatusText']); $output->info('最后同步: ' . $stats['lastSync']); } }