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"; ?>