import 'dart:convert'; import 'package:shared_preferences/shared_preferences.dart'; import '../kt_model/kt_goods_bean.dart'; class KtPurchaseRestoreUtil { static final KtPurchaseRestoreUtil _instance = KtPurchaseRestoreUtil._internal(); factory KtPurchaseRestoreUtil() => _instance; KtPurchaseRestoreUtil._internal(); static const String _cacheKey = 'restore_goods_list'; /// 保存失败的goods到本地缓存 Future cacheFailedGoods(KtGoodsBean goods) async { final prefs = await SharedPreferences.getInstance(); List goodsList = prefs.getStringList(_cacheKey) ?? []; goodsList.add(json.encode(goods.toJson())); print('-----goods.toJson:${goods.toJson()}'); await prefs.setStringList(_cacheKey, goodsList); } /// 读取本地缓存的goods列表 Future> getCachedGoodsList() async { final prefs = await SharedPreferences.getInstance(); List goodsList = prefs.getStringList(_cacheKey) ?? []; return goodsList.map((e) => KtGoodsBean.fromJson(json.decode(e))).toList(); } /// 清除本地缓存 Future clearCachedGoods() async { final prefs = await SharedPreferences.getInstance(); await prefs.remove(_cacheKey); } /// 移除指定goods Future removeGoods(KtGoodsBean goods) async { final prefs = await SharedPreferences.getInstance(); List goodsList = prefs.getStringList(_cacheKey) ?? []; goodsList.removeWhere((e) { final g = KtGoodsBean.fromJson(json.decode(e)); return g.id == goods.id; }); await prefs.setStringList(_cacheKey, goodsList); } }