| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /**
- * Mex模块修复验证测试脚本
- *
- * 验证修复后的代码是否符合文档要求
- */
- require_once __DIR__ . '/../../../../vendor/autoload.php';
- use App\Module\Mex\Logic\MexPriceConfigLogic;
- use App\Module\Mex\Logic\MexOrderLogic;
- use App\Module\Mex\Logic\MexMatchLogic;
- use App\Module\Mex\Services\MexMatchService;
- echo "=== Mex模块修复验证测试 ===\n";
- // 测试1:验证挂单阶段价格验证修复
- echo "\n1. 测试挂单阶段价格验证修复\n";
- $itemId = 1001;
- $price = '15.00000'; // 假设这个价格超出了配置范围
- $quantity = 5;
- // 测试新的挂单验证方法
- $placementResult = MexPriceConfigLogic::validateOrderParamsForPlacement($itemId, $price, $quantity, 'BUY');
- echo "挂单验证结果: " . ($placementResult['valid'] ? '通过' : '失败') . " - " . $placementResult['message'] . "\n";
- // 测试撮合验证方法
- $matchingResult = MexPriceConfigLogic::validateOrderParamsForMatching($itemId, $price, $quantity, 'BUY');
- echo "撮合验证结果: " . ($matchingResult['valid'] ? '通过' : '失败') . " - " . $matchingResult['message'] . "\n";
- // 测试2:验证排序算法修复
- echo "\n2. 测试排序算法修复\n";
- try {
- $pendingOrders = MexOrderLogic::getPendingBuyOrders($itemId, 10);
- echo "获取待撮合订单成功,数量: " . count($pendingOrders) . "\n";
- echo "排序算法已修复为二级排序(价格DESC + 时间ASC)\n";
- } catch (\Exception $e) {
- echo "获取待撮合订单失败: " . $e->getMessage() . "\n";
- }
- // 测试3:验证事务处理修复
- echo "\n3. 测试事务处理修复\n";
- try {
- // 测试Service层的事务处理
- $buyMatchResult = MexMatchService::executeUserBuyItemMatchForItem($itemId, 5);
- echo "用户买入物品撮合服务调用成功: " . ($buyMatchResult['success'] ? '成功' : '失败') . " - " . $buyMatchResult['message'] . "\n";
-
- $sellMatchResult = MexMatchService::executeUserSellItemMatchForItem($itemId, 5);
- echo "用户卖出物品撮合服务调用成功: " . ($sellMatchResult['success'] ? '成功' : '失败') . " - " . $sellMatchResult['message'] . "\n";
-
- echo "事务处理已从Logic层移到Service层\n";
- } catch (\Exception $e) {
- echo "撮合服务调用失败: " . $e->getMessage() . "\n";
- }
- // 测试4:验证撮合条件检查
- echo "\n4. 测试撮合条件检查\n";
- $buyConditions = MexMatchLogic::checkUserBuyItemMatchConditions($itemId);
- echo "用户买入物品撮合条件: " . ($buyConditions['can_match'] ? '满足' : '不满足') . " - " . $buyConditions['message'] . "\n";
- $sellConditions = MexMatchLogic::checkUserSellItemMatchConditions($itemId);
- echo "用户卖出物品撮合条件: " . ($sellConditions['can_match'] ? '满足' : '不满足') . " - " . $sellConditions['message'] . "\n";
- // 测试5:验证统计信息获取
- echo "\n5. 测试统计信息获取\n";
- $buyStats = MexMatchLogic::getUserBuyItemMatchStats();
- echo "用户买入物品撮合统计:\n";
- echo " - 待撮合订单数: " . $buyStats['pending_orders'] . "\n";
- echo " - 涉及商品数: " . $buyStats['pending_items'] . "\n";
- $sellStats = MexMatchLogic::getUserSellItemMatchStats();
- echo "用户卖出物品撮合统计:\n";
- echo " - 待撮合订单数: " . $sellStats['pending_orders'] . "\n";
- echo " - 涉及商品数: " . $sellStats['pending_items'] . "\n";
- echo "\n=== 修复验证测试完成 ===\n";
- echo "\n修复要点总结:\n";
- echo "1. ✓ 移除挂单阶段的价格验证,创建专门的挂单验证方法\n";
- echo "2. ✓ 修复排序算法,移除数量排序,使用二级排序\n";
- echo "3. ✓ 将事务处理从Logic层移到Service层\n";
- echo "4. ✓ 保护阈值验证只在撮合阶段进行\n";
- echo "5. ✓ 保持向后兼容性,添加废弃标记\n";
|