122 行
3.7 KiB
PHP
122 行
3.7 KiB
PHP
<?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";
|
||
?>
|