value; $results['default_currency_name'] = $defaultCurrency->name; // 测试钻石币种映射 $diamondMapping = FundLogic::get(FUND_CURRENCY_TYPE::ZUANSHI); $results['diamond_mapping'] = [ 'available' => $diamondMapping[FundLogic::CAN]->value ?? null, 'frozen' => $diamondMapping[FundLogic::FREEZE]->value ?? null, ]; // 测试金币币种映射 $goldMapping = FundLogic::get(FUND_CURRENCY_TYPE::JINBI); $results['gold_mapping'] = [ 'available' => $goldMapping[FundLogic::CAN]->value ?? null, 'frozen' => $goldMapping[FundLogic::FREEZE]->value ?? null, ]; // 测试支持的币种列表 $results['supported_currencies'] = FundLogic::getSupportedCurrencies(); // 测试币种支持检查 $results['currency_support'] = [ 'diamond' => FundLogic::isCurrencySupported(FUND_CURRENCY_TYPE::ZUANSHI), 'gold' => FundLogic::isCurrencySupported(FUND_CURRENCY_TYPE::JINBI), ]; return $results; } /** * 测试订单创建的币种支持 */ public static function testOrderCreationWithCurrency(): array { $results = []; // 模拟测试数据 $userId = 1001; $itemId = 10001; $quantity = 10; $price = '2.50000'; try { // 测试使用钻石币种创建卖出订单 $diamondSellResult = MexOrderLogic::createSellOrder( $userId, $itemId, $quantity, $price, FUND_CURRENCY_TYPE::ZUANSHI ); $results['diamond_sell_order'] = [ 'success' => $diamondSellResult['success'] ?? false, 'message' => $diamondSellResult['message'] ?? 'Unknown error', 'order_id' => $diamondSellResult['order_id'] ?? null, ]; } catch (\Exception $e) { $results['diamond_sell_order'] = [ 'success' => false, 'message' => $e->getMessage(), 'order_id' => null, ]; } try { // 测试使用金币币种创建买入订单 $goldBuyResult = MexOrderLogic::createBuyOrder( $userId, $itemId, $quantity, $price, FUND_CURRENCY_TYPE::JINBI ); $results['gold_buy_order'] = [ 'success' => $goldBuyResult['success'] ?? false, 'message' => $goldBuyResult['message'] ?? 'Unknown error', 'order_id' => $goldBuyResult['order_id'] ?? null, ]; } catch (\Exception $e) { $results['gold_buy_order'] = [ 'success' => false, 'message' => $e->getMessage(), 'order_id' => null, ]; } try { // 测试使用默认币种(钻石)创建订单 $defaultCurrencyResult = MexOrderLogic::createSellOrder( $userId, $itemId, $quantity, $price ); $results['default_currency_order'] = [ 'success' => $defaultCurrencyResult['success'] ?? false, 'message' => $defaultCurrencyResult['message'] ?? 'Unknown error', 'order_id' => $defaultCurrencyResult['order_id'] ?? null, ]; } catch (\Exception $e) { $results['default_currency_order'] = [ 'success' => false, 'message' => $e->getMessage(), 'order_id' => null, ]; } return $results; } /** * 测试账户余额查询的币种支持 */ public static function testAccountBalanceWithCurrency(): array { $results = []; try { // 测试钻石币种的仓库余额 $diamondBalance = MexAccountLogic::getWarehouseFundBalance(FUND_CURRENCY_TYPE::ZUANSHI); $results['diamond_warehouse_balance'] = $diamondBalance; } catch (\Exception $e) { $results['diamond_warehouse_balance'] = 'Error: ' . $e->getMessage(); } try { // 测试金币币种的仓库余额 $goldBalance = MexAccountLogic::getWarehouseFundBalance(FUND_CURRENCY_TYPE::JINBI); $results['gold_warehouse_balance'] = $goldBalance; } catch (\Exception $e) { $results['gold_warehouse_balance'] = 'Error: ' . $e->getMessage(); } try { // 测试默认币种的仓库余额 $defaultBalance = MexAccountLogic::getWarehouseFundBalance(); $results['default_warehouse_balance'] = $defaultBalance; } catch (\Exception $e) { $results['default_warehouse_balance'] = 'Error: ' . $e->getMessage(); } return $results; } /** * 运行所有测试 */ public static function runAllTests(): array { return [ 'fund_logic_mapping' => self::testFundLogicMapping(), 'order_creation' => self::testOrderCreationWithCurrency(), 'account_balance' => self::testAccountBalanceWithCurrency(), 'test_time' => date('Y-m-d H:i:s'), ]; } }