setName('check:unread-message') ->setDescription('检查未读/未回复消息并自动迁移好友') ->addOption('minutes', 'm', \think\console\input\Option::VALUE_OPTIONAL, '未读/未回复分钟数,默认30分钟', 30) ->addOption('page-size', 'p', \think\console\input\Option::VALUE_OPTIONAL, '每页处理数量,默认100条', 100); } protected function execute(Input $input, Output $output) { $minutes = intval($input->getOption('minutes')); if ($minutes <= 0) { $minutes = 30; } $pageSize = intval($input->getOption('page-size')); if ($pageSize <= 0) { $pageSize = 100; } $output->writeln("开始检查未读/未回复消息(超过{$minutes}分钟,每页处理{$pageSize}条)..."); try { $friendTransferService = new FriendTransferService(); $result = $friendTransferService->checkAndTransferUnreadOrUnrepliedFriends($minutes, $pageSize); $output->writeln("检查完成:"); $output->writeln(" 总计需要迁移的好友数:{$result['total']}"); $output->writeln(" 成功迁移的好友数:{$result['transferred']}"); $output->writeln(" 迁移失败的好友数:{$result['failed']}"); if ($result['total'] > 0) { Log::info("未读/未回复消息检查完成:总计{$result['total']},成功{$result['transferred']},失败{$result['failed']}"); } } catch (\Exception $e) { $errorMsg = "检查未读/未回复消息异常:" . $e->getMessage(); $output->writeln("{$errorMsg}"); Log::error($errorMsg); } } }