[ // FUND_CURRENCY_TYPE::ZUANSHI self::CAN => FUND_TYPE::FUND2, // 钻石可用账户 self::FREEZE => FUND_TYPE::FUND3, // 钻石冻结账户 ] ]; /** * 获取币种适配 * * @param FUND_CURRENCY_TYPE $currencyType 币种类型 * @return array 账户类型映射数组 */ public static function get(FUND_CURRENCY_TYPE $currencyType): array { return self::$currencyMapping[$currencyType->value] ?? []; } /** * 使用币种数字获取账户映射 * * @param int $currencyTypeValue 币种类型值 * @return array 账户类型映射数组 */ public static function get4n(int $currencyTypeValue): array { $currencyType = FUND_CURRENCY_TYPE::tryFrom($currencyTypeValue); if (!$currencyType) { return []; } return self::get($currencyType); } /** * 获取默认币种 * * @return FUND_CURRENCY_TYPE 默认币种(钻石) */ public static function getDefaultCurrency(): FUND_CURRENCY_TYPE { return self::DEFAULT_CURRENCY; } /** * 获取默认币种的账户映射 * * @return array 默认币种的账户类型映射数组 */ public static function getDefaultMapping(): array { return self::get(self::DEFAULT_CURRENCY); } /** * 获取指定币种的可用账户类型 * * @param FUND_CURRENCY_TYPE $currencyType 币种类型 * @return FUND_TYPE|null 可用账户类型 */ public static function getAvailableAccountType(FUND_CURRENCY_TYPE $currencyType): ?FUND_TYPE { $mapping = self::get($currencyType); return $mapping[self::CAN] ?? null; } /** * 获取指定币种的冻结账户类型 * * @param FUND_CURRENCY_TYPE $currencyType 币种类型 * @return FUND_TYPE|null 冻结账户类型 */ public static function getFrozenAccountType(FUND_CURRENCY_TYPE $currencyType): ?FUND_TYPE { $mapping = self::get($currencyType); return $mapping[self::FREEZE] ?? null; } /** * 检查币种是否支持 * * @param FUND_CURRENCY_TYPE $currencyType 币种类型 * @return bool 是否支持 */ public static function isCurrencySupported(FUND_CURRENCY_TYPE $currencyType): bool { return isset(self::$currencyMapping[$currencyType->value]); } /** * 获取所有支持的币种列表 * * @return array 支持的币种ID列表 */ public static function getSupportedCurrencies(): array { return array_keys(self::$currencyMapping); } }