文件
mashangyoujiu/_ai_archive/scripts/debug_riders.php

103 行
3.5 KiB
PHP

<?php
// 调试骑手获取功能
// 初始化ThinkPHP
define('APP_PATH', './Application/');
define('RUNTIME_PATH', './Runtime/');
require './ThinkPHP/ThinkPHP.php';
echo "=== 调试骑手获取功能 ===\n\n";
try {
// 1. 检查骑手表数据
echo "1. 检查骑手表数据...\n";
$riderInfoModel = D('RiderInfo');
$allRiders = $riderInfoModel->select();
echo " 骑手总数: " . count($allRiders) . "\n";
if (!empty($allRiders)) {
echo " 前3个骑手信息:\n";
foreach (array_slice($allRiders, 0, 3) as $rider) {
echo " - ID: {$rider['id']}, 姓名: {$rider['name']}, 状态: {$rider['status']}, 工作状态: " . (isset($rider['work_status']) ? $rider['work_status'] : '未设置') . "\n";
}
}
// 2. 检查在线骑手
echo "\n2. 检查在线骑手...\n";
$onlineRiders = $riderInfoModel->where(['work_status' => 1, 'status' => 1])->select();
echo " 在线骑手数: " . count($onlineRiders) . "\n";
// 3. 测试getRiderList方法
echo "\n3. 测试getRiderList方法...\n";
$where = [
'work_status' => 1,
'status' => 1,
];
$riders = $riderInfoModel->getRiderList($where, '*');
echo " getRiderList返回数量: " . count($riders) . "\n";
// 4. 测试getAvailableRiders方法
echo "\n4. 测试getAvailableRiders方法...\n";
$riderOrderDispatch = new \Common\Business\RiderOrderDispatch();
$testOrder = [
'store_id' => 1,
'store_lat' => 39.9042,
'store_lng' => 116.4074,
'customer_lat' => 39.9142,
'customer_lng' => 116.4174,
'order_amount' => 50.00,
'delivery_fee' => 5.00
];
$result = $riderOrderDispatch->getAvailableRiders($testOrder);
echo " getAvailableRiders结果:\n";
echo " 状态: " . $result['status'] . "\n";
echo " 消息: " . $result['msg'] . "\n";
if (isset($result['data'])) {
echo " 数据数量: " . count($result['data']) . "\n";
}
// 5. 检查骑手表结构
echo "\n5. 检查骑手表结构...\n";
$db = M();
$tableName = $riderInfoModel->getTableName();
echo " 实际表名: {$tableName}\n";
$fields = $db->query("DESCRIBE {$tableName}");
echo " 骑手表字段:\n";
foreach ($fields as $field) {
echo " - {$field['Field']}: {$field['Type']}\n";
}
// 6. 详细调试getAvailableRiders失败原因
echo "\n6. 详细调试getAvailableRiders失败原因...\n";
// 手动调用getAvailableRidersForOrder方法
$reflection = new ReflectionClass($riderOrderDispatch);
$method = $reflection->getMethod('getAvailableRidersForOrder');
$method->setAccessible(true);
try {
$availableRiders = $method->invoke($riderOrderDispatch, $testOrder);
echo " getAvailableRidersForOrder返回数量: " . count($availableRiders) . "\n";
if (!empty($availableRiders)) {
echo " 可用骑手信息:\n";
foreach ($availableRiders as $rider) {
echo " - ID: {$rider['id']}, 姓名: {$rider['name']}, 工作状态: {$rider['work_status']}\n";
}
} else {
echo " 没有找到可用骑手\n";
}
} catch (Exception $e) {
echo " getAvailableRidersForOrder出错: " . $e->getMessage() . "\n";
}
} catch (Exception $e) {
echo "错误: " . $e->getMessage() . "\n";
echo "文件: " . $e->getFile() . "\n";
echo "行号: " . $e->getLine() . "\n";
}
echo "\n调试完成!\n";
?>