| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <?php
- namespace App\Module\AppGame\Commands;
- use App\Module\AppGame\Handler\Public\Login4uHandler;
- use Illuminate\Console\Command;
- use Uraus\Kku\Request\RequestPublicLogin4u;
- use Uraus\Kku\Response;
- /**
- * 测试Login4u功能的命令
- */
- class TestLogin4uCommand extends Command
- {
- /**
- * 命令签名
- *
- * @var string
- */
- protected $signature = 'test:login4u {keylogin? : URS登录密钥}';
- /**
- * 命令描述
- *
- * @var string
- */
- protected $description = '测试URS login4u登录功能';
- /**
- * 执行命令
- *
- * @return int
- */
- public function handle(): int
- {
- $this->info('=== 测试URS Login4u功能 ===');
- // 获取测试用的keylogin
- $keylogin = $this->argument('keylogin') ?: $this->ask('请输入URS登录密钥(keylogin)');
-
- 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;
- }
- $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;
- }
- }
- }
|