argument('keylogin') ?: $this->ask('请输入URS登录密钥(keylogin)'); foreach ($list as $value) { $this->test1($value); } return Command::SUCCESS; } protected function test1($keylogin) { $this->info('=== 测试URS Login4u功能 ==='); if (empty($keylogin)) { $this->error('登录密钥不能为空'); return Command::FAILURE; } try { // 1. 测试Handler类是否存在 $this->info('1. 检查Handler类...'); if (!class_exists(\App\Module\AppGame\Handler\Public\Login4uHandler::class)) { $this->error('Login4uHandler类不存在'); return Command::FAILURE; } $this->line('✓ Login4uHandler类存在'); // 2. 测试Request和Response类是否存在 $this->info('2. 检查Protobuf类...'); if (!class_exists(\Uraus\Kku\Request\RequestPublicLogin4u::class)) { $this->error('RequestPublicLogin4u类不存在'); return Command::FAILURE; } $this->line('✓ RequestPublicLogin4u类存在'); if (!class_exists(\Uraus\Kku\Response\ResponsePublicLogin4u::class)) { $this->error('ResponsePublicLogin4u类不存在'); return Command::FAILURE; } $this->line('✓ ResponsePublicLogin4u类存在'); // 3. 测试URS服务是否可用 $this->info('3. 检查URS服务...'); if (!class_exists(\ThirdParty\Urs\Services\UrsService::class)) { $this->error('UrsService类不存在'); return Command::FAILURE; } $this->line('✓ UrsService类存在'); // 4. 测试UrsUserMappingService是否可用 $this->info('4. 检查UrsUserMappingService...'); if (!class_exists(\App\Module\UrsPromotion\Services\UrsUserMappingService::class)) { $this->error('UrsUserMappingService类不存在'); return Command::FAILURE; } $this->line('✓ UrsUserMappingService类存在'); // 5. 创建测试请求 $this->info('5. 创建测试请求...'); $request = new RequestPublicLogin4u(); $request->setKeylogin($keylogin); $this->line("✓ 测试请求创建成功,keylogin: {$keylogin}"); // 6. 创建Handler实例并测试 $this->info('6. 测试Handler处理...'); $response = new Response(); $handler = new Login4uHandler($response); $this->line('开始处理登录请求...'); $result = $handler->handle($request); // 7. 检查响应 $this->info('7. 检查响应结果...'); if (!$result instanceof \Uraus\Kku\Response\ResponsePublicLogin4u) { $this->error('响应类型错误,期望ResponsePublicLogin4u'); return Command::FAILURE; } dump($result->serializeToJsonString()); $token = $result->getToken(); $isProhibit = $result->getIsProhibit(); if (empty($token) || $isProhibit) { $this->error('登录失败'); $this->line("Token: {$token}"); $this->line("IsProhibit: " . ($isProhibit ? 'true' : 'false')); return Command::FAILURE; } $this->info('✓ 登录成功!'); $this->line("Token: {$token}"); $this->line("IsProhibit: " . ($isProhibit ? 'true' : 'false')); // 8. 检查最后登录信息 if ($result->hasLastLoginInfo()) { $lastLoginInfo = $result->getLastLoginInfo(); $this->line("最后登录时间: " . date('Y-m-d H:i:s', $lastLoginInfo->getLastLoginTimes())); } $this->info('=== 测试完成 ==='); return Command::SUCCESS; } catch (\Exception $e) { $this->error('测试失败: ' . $e->getMessage()); $this->line('错误详情: ' . $e->getTraceAsString()); return Command::FAILURE; } } }