<?php
require_once 'conn.php';
checkLogin();

// 检查是否为管理员,非管理员无权删除
if (!checkIfAdmin()) {
    echo "<script>alert('您没有权限删除订单,只有管理员才能执行此操作'); window.location.href='order.php';</script>";
    exit;
}

// 获取订单ID
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
$keys = urlencode($_GET['keys'] ?? '');
$page = $_GET['page'] ?? 1;

// 验证参数
if ($id <= 0) {
    echo "<script>alert('无效的订单ID');location.href='order.php?keys=$keys&Page=$page';</script>";
    exit;
}

// 验证订单存在
$checkSql = "SELECT id FROM orders WHERE id = $id";
$checkResult = mysqli_query($conn, $checkSql);

if (mysqli_num_rows($checkResult) === 0) {
    echo "<script>alert('订单不存在');location.href='order.php?keys=$keys&Page=$page';</script>";
    exit;
}

// 开始事务处理
mysqli_autocommit($conn, FALSE);
$error = false;

try {
    // 先删除订单项目
    $deleteItemsSql = "DELETE FROM order_items WHERE order_id = $id";
    if (!mysqli_query($conn, $deleteItemsSql)) {
        throw new Exception("删除订单项目失败: " . mysqli_error($conn));
    }
    
    // 删除订单主表
    $deleteOrderSql = "DELETE FROM orders WHERE id = $id";

    if (!mysqli_query($conn, $deleteOrderSql)) {
        throw new Exception("删除订单失败: " . mysqli_error($conn));
    }
    
    // 提交事务
    mysqli_commit($conn);
    echo "<script>alert('订单删除成功');location.href='order.php?keys=$keys&Page=$page';</script>";
} catch (Exception $e) {
    // 回滚事务
    mysqli_rollback($conn);
    echo "<script>alert('删除订单时发生错误: " . $e->getMessage() . "');location.href='order.php?keys=$keys&Page=$page';</script>";
}

// 恢复自动提交
mysqli_autocommit($conn, TRUE);
exit;
?>