import 'package:zhiying_base_widget/pages/login_page/model/login_model.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; import 'package:zhiying_comm/util/shared_prefe_util.dart'; import 'package:zhiying_comm/util/empty_util.dart'; import 'package:zhiying_comm/util/global_config.dart'; /// 登陆数据管理工具类 class LoginUtil{ static final String _URL = '/api/v1/sign/in'; static void init() async{ String key = _getCacheKey(); /// 清除数据缓存 await SharedPreferencesUtil.setNetCacheResult(key, ''); } /// 获取数据 static Future<LoginModel> getLoginModel() async{ var cache = await _fetchCachePageData(); if (!EmptyUtil.isEmpty(cache)) return cache; var result = await _fetchNetPageData(); if(!EmptyUtil.isEmpty(result)) return result; return null; } /// 获取缓存的key static String _getCacheKey(){ return NetUtil.getRequestParamsCachedKey(null, _URL); } /// 获取缓存的页面数据 static Future<LoginModel> _fetchCachePageData() async { var result = await NetUtil.getRequestCachedData(_URL); if (!EmptyUtil.isEmpty(result)) { LoginModel model = LoginModel.fromJson(result); return model; } return null; } /// 获取页面数据 static Future<LoginModel> _fetchNetPageData() async { var result = await NetUtil.post(_URL, method: NetMethod.GET); if (NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) { LoginModel model = LoginModel.fromJson(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]); return model; } return null; } }