新增功能
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
<?php
|
||||
/**
|
||||
* 预约API测试脚本
|
||||
* 使用方法: php test_appointment_api.php
|
||||
*/
|
||||
|
||||
// 测试配置
|
||||
$baseUrl = 'http://localhost/adminapi'; // 修改为你的实际地址
|
||||
$token = 'your_admin_token_here'; // 修改为实际的管理员token
|
||||
|
||||
// 测试数据
|
||||
$doctorId = 1;
|
||||
$patientId = 1;
|
||||
$testDate = date('Y-m-d', strtotime('+1 day'));
|
||||
|
||||
echo "=== 医生预约API测试 ===\n\n";
|
||||
|
||||
// 测试1: 获取可用时间段
|
||||
echo "测试1: 获取可用时间段\n";
|
||||
echo "URL: {$baseUrl}/doctor.appointment/availableSlots\n";
|
||||
echo "参数: doctor_id={$doctorId}, appointment_date={$testDate}, period=morning\n";
|
||||
|
||||
$url = "{$baseUrl}/doctor.appointment/availableSlots?doctor_id={$doctorId}&appointment_date={$testDate}&period=morning";
|
||||
$response = makeRequest($url, 'GET', null, $token);
|
||||
echo "响应: " . json_encode($response, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n";
|
||||
|
||||
if (isset($response['data']['slots']) && count($response['data']['slots']) > 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;
|
||||
}
|
||||
Reference in New Issue
Block a user