83 lines
2.3 KiB
PHP
83 lines
2.3 KiB
PHP
<?php
|
|
// 获取VIP客户最近的预约记录
|
|
header('Content-Type: application/json');
|
|
|
|
// 连接数据库
|
|
require 'db_connect.php';
|
|
|
|
// 检查是否提供了VIP ID
|
|
if (!isset($_GET['vip_id']) || empty($_GET['vip_id'])) {
|
|
echo json_encode(['error' => '未提供VIP客户ID']);
|
|
exit;
|
|
}
|
|
|
|
$vipId = intval($_GET['vip_id']);
|
|
|
|
// 尝试从数据库获取数据
|
|
$lastBooking = null;
|
|
try {
|
|
// 首先获取VIP客户的电话号码
|
|
$getVipPhone = "SELECT phone FROM vip_customers WHERE id = :vipId";
|
|
$stmtPhone = $pdo->prepare($getVipPhone);
|
|
$stmtPhone->bindParam(':vipId', $vipId, PDO::PARAM_INT);
|
|
$stmtPhone->execute();
|
|
$vipInfo = $stmtPhone->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if (!$vipInfo || !$vipInfo['phone']) {
|
|
echo json_encode(['has_booking' => false]);
|
|
exit;
|
|
}
|
|
|
|
$vipPhone = $vipInfo['phone'];
|
|
|
|
// 查询该VIP客户的最近一次预约
|
|
$sql = "SELECT
|
|
b.id,
|
|
b.start_time,
|
|
b.duration,
|
|
p.package_name
|
|
FROM
|
|
bookings b
|
|
LEFT JOIN
|
|
packages p ON b.package_id = p.id
|
|
WHERE
|
|
b.phone = :vipPhone
|
|
AND b.status != '已取消'
|
|
ORDER BY
|
|
b.start_time DESC
|
|
LIMIT 1";
|
|
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->bindParam(':vipPhone', $vipPhone, PDO::PARAM_STR);
|
|
$stmt->execute();
|
|
$lastBooking = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
} catch (PDOException $e) {
|
|
// 数据库查询失败,返回错误但继续执行
|
|
echo json_encode(['error' => '数据库查询失败: ' . $e->getMessage()]);
|
|
exit;
|
|
}
|
|
|
|
// 如果没有找到记录,返回空结果
|
|
if (!$lastBooking) {
|
|
echo json_encode(['has_booking' => false]);
|
|
exit;
|
|
}
|
|
|
|
// 格式化返回数据
|
|
// 从start_time中提取日期和时间
|
|
$startTime = new DateTime($lastBooking['start_time']);
|
|
$response = [
|
|
'has_booking' => true,
|
|
'appointment_date' => $startTime->format('Y-m-d'),
|
|
'appointment_time' => $startTime->format('H:i'),
|
|
'package_name' => $lastBooking['package_name'] ? $lastBooking['package_name'] : '自定义服务',
|
|
'duration' => $lastBooking['duration']
|
|
];
|
|
|
|
echo json_encode($response);
|
|
|
|
// 关闭数据库连接
|
|
$pdo = null;
|
|
|
|
// 系统现在只返回实际数据库中的预约记录数据
|