| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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<String, ConfigModel> _cache = {};
- factory ConfigStore() => _instance;
- ConfigStore._internal();
- Future<String?> getConfigValue(String configKey) async {
- final config = await getConfigByKey(configKey);
- return config?.configValue;
- }
- /// 根据配置key获取配置信息
- /// 先从缓存中查找,如果缓存中没有则调用接口查询
- Future<ConfigModel?> getConfigByKey(String configKey) async {
- // 先从内存缓存中查找
- if (_cache.containsKey(configKey)) {
- return _cache[configKey];
- }
- // 再从本地存储中查找
- // final cachedConfig = await StorageUtils.getObject<Map<String, dynamic>>(
- // '$_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);
- }
- }
|