文件
mashangyoujiu/_ai_archive/scripts/test_fence_delete.php

122 行
3.7 KiB
PHP

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
/**
* 电子围栏删除功能测试脚本
* 测试异步删除电子围栏的功能
*/
// 引入必要的文件
require_once 'Application/Common/Common/function.php';
require_once 'ThinkPHP/ThinkPHP.php';
// 模拟测试数据
echo "=== 电子围栏删除功能测试 ===\n\n";
// 1. 测试StoreDeliveryFenceModel的getFenceData方法是否包含id字段
echo "1. 测试StoreDeliveryFenceModel的getFenceData方法\n";
try {
$FenceModel = new \Common\Model\StoreDeliveryFenceModel();
// 假设门店ID为1,测试获取围栏数据
$testStoreId = 1;
$fenceData = $FenceModel->getFenceData($testStoreId);
if (!empty($fenceData)) {
echo "✓ 成功获取围栏数据,数量: " . count($fenceData) . "\n";
// 检查第一个围栏是否包含id字段
$firstFence = $fenceData[0];
if (isset($firstFence['id'])) {
echo "✓ 围栏数据包含id字段: " . $firstFence['id'] . "\n";
} else {
echo "✗ 围栏数据缺少id字段\n";
}
if (isset($firstFence['tempId'])) {
echo "✓ 围栏数据包含tempId字段: " . $firstFence['tempId'] . "\n";
} else {
echo "✗ 围栏数据缺少tempId字段\n";
}
} else {
echo "- 门店ID {$testStoreId} 暂无围栏数据\n";
}
} catch (Exception $e) {
echo "✗ 测试失败: " . $e->getMessage() . "\n";
}
echo "\n";
// 2. 测试删除功能的逻辑
echo "2. 测试删除功能逻辑\n";
// 模拟前端传递的围栏数据结构
$testFences = [
[
'id' => 123, // 已保存的围栏,有真实ID
'fence_name' => '测试围栏1',
'tempId' => 'fence_123',
'is_active' => 1
],
[
'fence_name' => '新建围栏', // 新建的围栏,没有ID
'tempId' => 'temp_1',
'is_active' => 1
]
];
foreach ($testFences as $index => $fence) {
echo "测试围栏 {$index}: ";
if (isset($fence['id']) && !empty($fence['id'])) {
echo "✓ 有ID({$fence['id']}),需要异步删除\n";
} else {
echo "✓ 无ID,直接本地删除\n";
}
}
echo "\n";
// 3. 测试XcxController的deleteFence方法结构
echo "3. 检查XcxController的deleteFence方法\n";
try {
$reflection = new ReflectionClass('Retail\Controller\XcxController');
if ($reflection->hasMethod('deleteFence')) {
echo "✓ XcxController包含deleteFence方法\n";
$method = $reflection->getMethod('deleteFence');
if ($method->isPublic()) {
echo "✓ deleteFence方法是公开的\n";
} else {
echo "✗ deleteFence方法不是公开的\n";
}
} else {
echo "✗ XcxController缺少deleteFence方法\n";
}
} catch (Exception $e) {
echo "- 无法检查XcxController: " . $e->getMessage() . "\n";
}
echo "\n";
// 4. 模拟AJAX请求的数据结构
echo "4. 模拟AJAX删除请求\n";
$ajaxData = [
'url' => '/index.php/Retail/Xcx/deleteFence',
'method' => 'POST',
'data' => ['id' => 123],
'expected_response' => [
'status' => 1,
'msg' => '删除成功'
]
];
echo "请求URL: " . $ajaxData['url'] . "\n";
echo "请求方法: " . $ajaxData['method'] . "\n";
echo "请求数据: " . json_encode($ajaxData['data']) . "\n";
echo "期望响应: " . json_encode($ajaxData['expected_response']) . "\n";
echo "\n=== 测试完成 ===\n";
echo "请在浏览器中访问门店管理页面,测试以下功能:\n";
echo "1. 创建新围栏后点击删除(应该直接删除,无AJAX请求)\n";
echo "2. 对已保存的围栏点击删除(应该发送AJAX请求到后端)\n";
echo "3. 检查删除后围栏是否从列表中移除\n";
echo "4. 检查后端数据库中的围栏记录是否被删除\n";
?>