0) { echo "✓ 获取时间段成功\n"; $firstSlot = $response['data']['slots'][0]; $appointmentTime = $firstSlot['time']; echo " 可用时间段数量: " . count($response['data']['slots']) . "\n"; echo " 第一个时间段: {$appointmentTime}\n\n"; // 测试2: 创建预约 echo "测试2: 创建预约\n"; $createData = [ 'patient_id' => $patientId, 'doctor_id' => $doctorId, 'appointment_date' => $testDate, 'period' => 'morning', 'appointment_time' => $appointmentTime, 'appointment_type' => 'video', 'remark' => '测试预约' ]; echo "URL: {$baseUrl}/doctor.appointment/create\n"; echo "数据: " . json_encode($createData, JSON_UNESCAPED_UNICODE) . "\n"; $url = "{$baseUrl}/doctor.appointment/create"; $response = makeRequest($url, 'POST', $createData, $token); echo "响应: " . json_encode($response, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n"; if (isset($response['data']['id'])) { $appointmentId = $response['data']['id']; echo "✓ 创建预约成功, ID: {$appointmentId}\n\n"; // 测试3: 获取预约详情 echo "测试3: 获取预约详情\n"; $url = "{$baseUrl}/doctor.appointment/detail?id={$appointmentId}"; $response = makeRequest($url, 'GET', null, $token); echo "响应: " . json_encode($response, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n"; if (isset($response['data']['id'])) { echo "✓ 获取详情成功\n\n"; } else { echo "✗ 获取详情失败\n\n"; } // 测试4: 取消预约 echo "测试4: 取消预约\n"; $url = "{$baseUrl}/doctor.appointment/cancel"; $response = makeRequest($url, 'POST', ['id' => $appointmentId], $token); echo "响应: " . json_encode($response, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n"; if ($response['code'] == 1) { echo "✓ 取消预约成功\n\n"; } else { echo "✗ 取消预约失败\n\n"; } } else { echo "✗ 创建预约失败: " . ($response['msg'] ?? '未知错误') . "\n\n"; } } else { echo "✗ 获取时间段失败或无可用时间段\n"; echo " 请确保:\n"; echo " 1. 数据库表已创建\n"; echo " 2. 医生ID={$doctorId}存在\n"; echo " 3. 该医生在{$testDate}有排班\n\n"; } // 测试5: 获取医生可用号源数 echo "测试5: 获取医生可用号源数\n"; $url = "{$baseUrl}/doctor.appointment/doctorAvailability?doctor_id={$doctorId}&date={$testDate}"; $response = makeRequest($url, 'GET', null, $token); echo "响应: " . json_encode($response, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n"; if (isset($response['data']['available_count'])) { echo "✓ 获取可用号源数成功: " . $response['data']['available_count'] . "\n\n"; } else { echo "✗ 获取可用号源数失败\n\n"; } // 测试6: 获取预约列表 echo "测试6: 获取预约列表\n"; $url = "{$baseUrl}/doctor.appointment/lists?page_no=1&page_size=10"; $response = makeRequest($url, 'GET', null, $token); echo "响应: " . json_encode($response, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n"; if (isset($response['data']['lists'])) { echo "✓ 获取列表成功, 记录数: " . count($response['data']['lists']) . "\n\n"; } else { echo "✗ 获取列表失败\n\n"; } echo "=== 测试完成 ===\n"; /** * 发送HTTP请求 */ function makeRequest($url, $method = 'GET', $data = null, $token = null) { $ch = curl_init(); if ($method == 'GET' && $data) { $url .= '?' . http_build_query($data); } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $headers = ['Content-Type: application/json']; if ($token) { $headers[] = 'token: ' . $token; } curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); if ($method == 'POST') { curl_setopt($ch, CURLOPT_POST, true); if ($data) { curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); } } $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if (curl_errno($ch)) { echo "CURL错误: " . curl_error($ch) . "\n"; curl_close($ch); return ['code' => 0, 'msg' => 'CURL错误']; } curl_close($ch); $result = json_decode($response, true); if (!$result) { echo "响应解析失败, HTTP状态码: {$httpCode}\n"; echo "原始响应: {$response}\n"; return ['code' => 0, 'msg' => '响应解析失败']; } return $result; }