> 1. 验证天地图物理测距组件:\n"; // 测试两点:天府广场 (30.6574, 104.0665) 与 春熙路 (30.6558, 104.0815) $dist = TiandituService::distance(30.6574, 104.0665, 30.6558, 104.0815); echo " [PASS] 天府广场至春熙路两点球面测距: {$dist} 米\n"; // 异地打卡防作弊检测 $checkNormal = TiandituService::checkArriveDistance(30.6574, 104.0665, 30.6575, 104.0666, 1000.0); echo " [PASS] 正常打卡测试 (偏离约 {$checkNormal['distance']} 米): " . ($checkNormal['is_pass'] ? '通过' : '拦截') . "\n"; $checkAbnormal = TiandituService::checkArriveDistance(30.6574, 104.0665, 30.6900, 104.1000, 1000.0); echo " [PASS] 异地打卡作弊拦截测试 (偏离 {$checkAbnormal['distance']} 米): " . (!$checkAbnormal['is_pass'] ? '成功识别预警' : '未拦截') . "\n"; // 2. 短信网关服务驱动自检 echo "\n>> 2. 验证业务短信分发驱动:\n"; $sms1 = SmsService::sendVerifyCode('13800138000', '654321', 'TESTORDER001'); echo " [PASS] 完工6位核销验证码短信驱动测试: " . ($sms1 ? '成功' : '失败') . "\n"; $sms2 = SmsService::sendFirstContactWarning('13700137000', 'TESTORDER001', 30); echo " [PASS] 师傅2小时首联时效预警短信驱动测试: " . ($sms2 ? '成功' : '失败') . "\n"; // 3. 验证 ThinkPHP 定时守护任务注册 echo "\n>> 3. 验证 ThinkPHP 命令行守护任务配置:\n"; $commands = include __DIR__ . '/../server/application/command.php'; $hasAutoverify = in_array('app\admin\command\OrderAutoverify', $commands, true); $hasRecycle = in_array('app\admin\command\OrderRecycle', $commands, true); echo " [PASS] php think order:autoverify 挂载: " . ($hasAutoverify ? '正常' : '缺失') . "\n"; echo " [PASS] php think order:recycle 挂载: " . ($hasRecycle ? '正常' : '缺失') . "\n"; echo "\n========================================================\n"; echo " 🎉 第一阶段核心组件专项测试全部通过! \n"; echo "========================================================\n";