argument('user_id'); $referrerId = (int)$this->argument('referrer_id'); $directTrigger = $this->option('direct'); $this->info("开始测试URS推荐关系创建事件"); $this->info("用户ID: {$userId}"); $this->info("推荐人ID: {$referrerId}"); $this->info("直接触发: " . ($directTrigger ? '是' : '否')); $this->line(''); try { if ($directTrigger) { // 直接触发事件进行测试 $this->info("直接触发UrsReferralCreatedEvent事件..."); event(new UrsReferralCreatedEvent($userId, $referrerId, 'test-code')); $this->info("✅ 事件已触发"); } else { // 通过同步逻辑来触发事件 $this->info("通过URS推荐关系同步逻辑触发事件..."); // 获取URS用户ID(这里假设农场用户ID就是URS用户ID,实际使用时需要映射) $ursUserId = $userId; $this->info("执行URS推荐关系同步: URS用户{$ursUserId} -> 农场用户{$userId}"); // 使用同步逻辑类 $syncLogic = new \App\Module\UrsPromotion\Logics\UrsReferralSyncLogic(); $result = $syncLogic->syncReferralRelations($ursUserId, $userId); $this->info("✅ 同步完成,结果: " . ($result ? '成功(首次进入)' : '失败或非首次进入')); } $this->line(''); $this->info("请查看日志了解事件处理结果:"); $this->info("tail -f storage/logs/laravel-" . date('Y-m-d') . ".log | grep -E '(URS推荐关系创建|DelayQueue)'"); $this->line(''); $this->info("如果事件处理正常,应该看到以下日志:"); $this->info("1. URS推荐关系创建事件已触发"); $this->info("2. URS推荐关系创建,更新推荐人达人等级"); $this->info("3. 开始URS推荐关系创建的DelayQueue向上传播"); $this->info("4. DelayQueue推荐关系任务添加成功"); } catch (\Exception $e) { $this->error("❌ 测试失败: " . $e->getMessage()); $this->error("错误详情: " . $e->getTraceAsString()); return 1; } return 0; } }