| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- <?php
- namespace App\Module\Mex\Service;
- use App\Module\Mex\Dto\MexConfigDto;
- use App\Module\Mex\Enums\MexConfigGroup;
- use App\Module\Mex\Logic\MexConfigLogic;
- /**
- * Mex配置服务层
- */
- class MexConfigService
- {
- /**
- * 获取配置值
- *
- * @param string $key 配置键名
- * @param mixed $default 默认值
- * @return mixed
- */
- public static function get(string $key, $default = null)
- {
- return MexConfigLogic::get($key, $default);
- }
- /**
- * 设置配置值
- *
- * @param string $key 配置键名
- * @param mixed $value 配置值
- * @return bool
- */
- public static function set(string $key, $value): bool
- {
- return MexConfigLogic::set($key, $value);
- }
- /**
- * 获取布尔值配置
- *
- * @param string $key 配置键名
- * @param bool $default 默认值
- * @return bool
- */
- public static function getBool(string $key, bool $default = false): bool
- {
- return MexConfigLogic::getBool($key, $default);
- }
- /**
- * 获取整数配置
- *
- * @param string $key 配置键名
- * @param int $default 默认值
- * @return int
- */
- public static function getInt(string $key, int $default = 0): int
- {
- return MexConfigLogic::getInt($key, $default);
- }
- /**
- * 获取浮点数配置
- *
- * @param string $key 配置键名
- * @param float $default 默认值
- * @return float
- */
- public static function getFloat(string $key, float $default = 0.0): float
- {
- return MexConfigLogic::getFloat($key, $default);
- }
- /**
- * 获取字符串配置
- *
- * @param string $key 配置键名
- * @param string $default 默认值
- * @return string
- */
- public static function getString(string $key, string $default = ''): string
- {
- return MexConfigLogic::getString($key, $default);
- }
- /**
- * 获取数组配置
- *
- * @param string $key 配置键名
- * @param array $default 默认值
- * @return array
- */
- public static function getArray(string $key, array $default = []): array
- {
- return MexConfigLogic::getArray($key, $default);
- }
- /**
- * 获取分组配置
- *
- * @param MexConfigGroup $group 配置分组
- * @return array
- */
- public static function getGroupConfigs(MexConfigGroup $group): array
- {
- return MexConfigLogic::getGroupConfigs($group);
- }
- /**
- * 批量设置配置
- *
- * @param array $configs 配置数组 [key => value]
- * @return array 设置结果 [key => success]
- */
- public static function setBatch(array $configs): array
- {
- return MexConfigLogic::setBatch($configs);
- }
- /**
- * 重置配置为默认值
- *
- * @param string $key 配置键名
- * @return bool
- */
- public static function reset(string $key): bool
- {
- return MexConfigLogic::reset($key);
- }
- /**
- * 检查配置是否存在
- *
- * @param string $key 配置键名
- * @return bool
- */
- public static function exists(string $key): bool
- {
- return MexConfigLogic::exists($key);
- }
- /**
- * 检查配置是否启用
- *
- * @param string $key 配置键名
- * @return bool
- */
- public static function isEnabled(string $key): bool
- {
- return MexConfigLogic::isEnabled($key);
- }
- /**
- * 启用/禁用配置
- *
- * @param string $key 配置键名
- * @param bool $enabled 是否启用
- * @return bool
- */
- public static function setEnabled(string $key, bool $enabled): bool
- {
- return MexConfigLogic::setEnabled($key, $enabled);
- }
- /**
- * 清除配置缓存
- *
- * @param string|null $key 配置键名,为空时清除所有缓存
- */
- public static function clearCache(?string $key = null): void
- {
- MexConfigLogic::clearCache($key);
- }
- /**
- * 验证配置值
- *
- * @param string $key 配置键名
- * @param mixed $value 配置值
- * @return array
- */
- public static function validateValue(string $key, $value): array
- {
- return MexConfigLogic::validateValue($key, $value);
- }
- // === 业务相关的配置快捷方法 ===
- /**
- * 检查系统是否启用
- *
- * @return bool
- */
- public static function isSystemEnabled(): bool
- {
- return self::getBool('system.enabled', true);
- }
- /**
- * 检查是否为维护模式
- *
- * @return bool
- */
- public static function isMaintenanceMode(): bool
- {
- return self::getBool('system.maintenance_mode', false);
- }
- /**
- * 检查是否允许买入
- *
- * @return bool
- */
- public static function isBuyAllowed(): bool
- {
- return self::getBool('trading.allow_buy', true);
- }
- /**
- * 检查是否允许卖出
- *
- * @return bool
- */
- public static function isSellAllowed(): bool
- {
- return self::getBool('trading.allow_sell', true);
- }
- /**
- * 检查撮合功能是否启用
- *
- * @return bool
- */
- public static function isMatchingEnabled(): bool
- {
- return self::getBool('matching.enabled', true);
- }
- /**
- * 获取撮合间隔时间
- *
- * @return int
- */
- public static function getMatchingInterval(): int
- {
- return self::getInt('matching.match_interval', 30);
- }
- /**
- * 获取最大订单金额
- *
- * @return float
- */
- public static function getMaxOrderAmount(): float
- {
- return self::getFloat('trading.max_order_amount', 100000.0);
- }
- /**
- * 获取最小订单金额
- *
- * @return float
- */
- public static function getMinOrderAmount(): float
- {
- return self::getFloat('trading.min_order_amount', 0.01);
- }
- /**
- * 获取最大订单数量
- *
- * @return int
- */
- public static function getMaxOrderQuantity(): int
- {
- return self::getInt('trading.max_order_quantity', 10000);
- }
- /**
- * 获取最小订单数量
- *
- * @return int
- */
- public static function getMinOrderQuantity(): int
- {
- return self::getInt('trading.min_order_quantity', 1);
- }
- /**
- * 检查是否启用频率限制
- *
- * @return bool
- */
- public static function isRateLimitEnabled(): bool
- {
- return self::getBool('security.rate_limit_enabled', true);
- }
- /**
- * 获取每分钟最大订单数
- *
- * @return int
- */
- public static function getMaxOrdersPerMinute(): int
- {
- return self::getInt('security.max_orders_per_minute', 10);
- }
- /**
- * 获取每小时最大订单数
- *
- * @return int
- */
- public static function getMaxOrdersPerHour(): int
- {
- return self::getInt('security.max_orders_per_hour', 100);
- }
- /**
- * 检查是否启用价格保护
- *
- * @return bool
- */
- public static function isPriceProtectionEnabled(): bool
- {
- return self::getBool('market.price_protection', true);
- }
- /**
- * 检查是否启用缓存
- *
- * @return bool
- */
- public static function isCacheEnabled(): bool
- {
- return self::getBool('performance.cache_enabled', true);
- }
- /**
- * 获取缓存过期时间
- *
- * @return int
- */
- public static function getCacheTtl(): int
- {
- return self::getInt('performance.cache_ttl', 3600);
- }
- /**
- * 检查是否启用自动生成每日价格趋势
- *
- * @return bool
- */
- public static function isAutoGenerateDailyTrendsEnabled(): bool
- {
- return self::getBool('pricing.auto_generate_daily_trends', true);
- }
- /**
- * 获取所有配置(用于管理界面)
- *
- * @return \Illuminate\Support\Collection
- */
- public static function getAllConfigs()
- {
- return MexConfigLogic::getAllConfigs();
- }
- }
|