import 'package:chicken_farm/apis/system/_config.dart'; import 'package:chicken_farm/modes/system/config.dart'; class ConfigStore { static final ConfigStore _instance = ConfigStore._internal(); // static const String _localStorgeKey = 'vb_config_'; final Map _cache = {}; factory ConfigStore() => _instance; ConfigStore._internal(); Future getConfigValue(String configKey) async { final config = await getConfigByKey(configKey); return config?.configValue; } /// 根据配置key获取配置信息 /// 先从缓存中查找,如果缓存中没有则调用接口查询 Future getConfigByKey(String configKey) async { // 先从内存缓存中查找 if (_cache.containsKey(configKey)) { return _cache[configKey]; } // 再从本地存储中查找 // final cachedConfig = await StorageUtils.getObject>( // '$_localStorgeKey$configKey', // ); // if (cachedConfig != null) { // final config = ConfigModel.fromJson(cachedConfig); // _cache[configKey] = config; // return config; // } // 如果本地都没有,则调用接口查询 final config = await ConfigApi().getConfigKey(configKey); if (config != null) { // 存入缓存 _cache[configKey] = config; // await StorageUtils.setObject( // '$_localStorgeKey$configKey', // config.toJson(), // ); } return config; } /// 清除指定配置的缓存 void clearConfigCache(String configKey) { _cache.remove(configKey); //StorageUtils.remove('$_localStorgeKey$configKey'); } /// 清除所有配置缓存 void clearAll() { _cache.clear(); //StorageUtils.removeWithPrefix(_localStorgeKey); } }