fix_validation_test.php 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * Mex模块修复验证测试脚本
  4. *
  5. * 验证修复后的代码是否符合文档要求
  6. */
  7. require_once __DIR__ . '/../../../../vendor/autoload.php';
  8. use App\Module\Mex\Logic\MexPriceConfigLogic;
  9. use App\Module\Mex\Logic\MexOrderLogic;
  10. use App\Module\Mex\Logic\MexMatchLogic;
  11. use App\Module\Mex\Services\MexMatchService;
  12. echo "=== Mex模块修复验证测试 ===\n";
  13. // 测试1:验证挂单阶段价格验证修复
  14. echo "\n1. 测试挂单阶段价格验证修复\n";
  15. $itemId = 1001;
  16. $price = '15.00000'; // 假设这个价格超出了配置范围
  17. $quantity = 5;
  18. // 测试新的挂单验证方法
  19. $placementResult = MexPriceConfigLogic::validateOrderParamsForPlacement($itemId, $price, $quantity, 'BUY');
  20. echo "挂单验证结果: " . ($placementResult['valid'] ? '通过' : '失败') . " - " . $placementResult['message'] . "\n";
  21. // 测试撮合验证方法
  22. $matchingResult = MexPriceConfigLogic::validateOrderParamsForMatching($itemId, $price, $quantity, 'BUY');
  23. echo "撮合验证结果: " . ($matchingResult['valid'] ? '通过' : '失败') . " - " . $matchingResult['message'] . "\n";
  24. // 测试2:验证排序算法修复
  25. echo "\n2. 测试排序算法修复\n";
  26. try {
  27. $pendingOrders = MexOrderLogic::getPendingBuyOrders($itemId, 10);
  28. echo "获取待撮合订单成功,数量: " . count($pendingOrders) . "\n";
  29. echo "排序算法已修复为二级排序(价格DESC + 时间ASC)\n";
  30. } catch (\Exception $e) {
  31. echo "获取待撮合订单失败: " . $e->getMessage() . "\n";
  32. }
  33. // 测试3:验证事务处理修复
  34. echo "\n3. 测试事务处理修复\n";
  35. try {
  36. // 测试Service层的事务处理
  37. $buyMatchResult = MexMatchService::executeUserBuyItemMatchForItem($itemId, 5);
  38. echo "用户买入物品撮合服务调用成功: " . ($buyMatchResult['success'] ? '成功' : '失败') . " - " . $buyMatchResult['message'] . "\n";
  39. $sellMatchResult = MexMatchService::executeUserSellItemMatchForItem($itemId, 5);
  40. echo "用户卖出物品撮合服务调用成功: " . ($sellMatchResult['success'] ? '成功' : '失败') . " - " . $sellMatchResult['message'] . "\n";
  41. echo "事务处理已从Logic层移到Service层\n";
  42. } catch (\Exception $e) {
  43. echo "撮合服务调用失败: " . $e->getMessage() . "\n";
  44. }
  45. // 测试4:验证撮合条件检查
  46. echo "\n4. 测试撮合条件检查\n";
  47. $buyConditions = MexMatchLogic::checkUserBuyItemMatchConditions($itemId);
  48. echo "用户买入物品撮合条件: " . ($buyConditions['can_match'] ? '满足' : '不满足') . " - " . $buyConditions['message'] . "\n";
  49. $sellConditions = MexMatchLogic::checkUserSellItemMatchConditions($itemId);
  50. echo "用户卖出物品撮合条件: " . ($sellConditions['can_match'] ? '满足' : '不满足') . " - " . $sellConditions['message'] . "\n";
  51. // 测试5:验证统计信息获取
  52. echo "\n5. 测试统计信息获取\n";
  53. $buyStats = MexMatchLogic::getUserBuyItemMatchStats();
  54. echo "用户买入物品撮合统计:\n";
  55. echo " - 待撮合订单数: " . $buyStats['pending_orders'] . "\n";
  56. echo " - 涉及商品数: " . $buyStats['pending_items'] . "\n";
  57. $sellStats = MexMatchLogic::getUserSellItemMatchStats();
  58. echo "用户卖出物品撮合统计:\n";
  59. echo " - 待撮合订单数: " . $sellStats['pending_orders'] . "\n";
  60. echo " - 涉及商品数: " . $sellStats['pending_items'] . "\n";
  61. echo "\n=== 修复验证测试完成 ===\n";
  62. echo "\n修复要点总结:\n";
  63. echo "1. ✓ 移除挂单阶段的价格验证,创建专门的挂单验证方法\n";
  64. echo "2. ✓ 修复排序算法,移除数量排序,使用二级排序\n";
  65. echo "3. ✓ 将事务处理从Logic层移到Service层\n";
  66. echo "4. ✓ 保护阈值验证只在撮合阶段进行\n";
  67. echo "5. ✓ 保持向后兼容性,添加废弃标记\n";