|
|
@@ -2,107 +2,161 @@ import 'dart:convert'; |
|
|
|
import 'package:zhiying_comm/zhiying_comm.dart'; |
|
|
|
|
|
|
|
class GoodsDetailsPageRepository { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// 获取上个页面传进来的数据 |
|
|
|
Future<List<Map<String, dynamic>>> fetchParentPageData(final Map<String, dynamic> model) async { |
|
|
|
try { |
|
|
|
if (!EmptyUtil.isEmpty(model) && model.containsKey('detail_data') && !EmptyUtil.isEmpty(model['detail_data'])) { |
|
|
|
String provider = model['provider']?.toString(); |
|
|
|
String goodId = model['good_id']?.toString(); |
|
|
|
if (!EmptyUtil.isEmpty(provider) && !EmptyUtil.isEmpty(goodId)) { |
|
|
|
Map<String, dynamic> detailData = model['detail_data']; |
|
|
|
return _baseDataProcess(goodId, provider, detailData); |
|
|
|
// Logger.log('商品类型 = $provider, 商品ID = $goodId'); |
|
|
|
// List<Map<String, dynamic>> _pageData = []; |
|
|
|
// List<dynamic> modLists = detailData['mod_list']; |
|
|
|
// for (int i = 0; i < modLists.length; i++) { |
|
|
|
// Map<String, dynamic> item = modLists[i]; |
|
|
|
// Map<String, dynamic> data = item['data']; |
|
|
|
// Map<String, dynamic> baseData = {'provider': provider, 'good_id': goodId}; |
|
|
|
// data.addAll(baseData); |
|
|
|
// item['data'] = data; |
|
|
|
// _pageData.add(item); |
|
|
|
// } |
|
|
|
// return _pageData; |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (e, s) { |
|
|
|
Logger.error(e, s); |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
/// 获取数据 |
|
|
|
Future<List<Map<String, dynamic>>> fetchInitModData(final Map<String, dynamic> model) async{ |
|
|
|
|
|
|
|
String provider = model['provider']; |
|
|
|
String goodId = model['good_id']; |
|
|
|
Future<List<Map<String, dynamic>>> fetchInitModData(final Map<String, dynamic> model) async { |
|
|
|
try { |
|
|
|
String provider = model['provider']; |
|
|
|
String goodId = model['good_id']; |
|
|
|
if (!EmptyUtil.isEmpty(provider) && !EmptyUtil.isEmpty(goodId)) { |
|
|
|
Logger.log('商品类型 = $provider, 商品ID = $goodId'); |
|
|
|
var result = await NetUtil.post('/api/v1/detail/$provider/$goodId', method: NetMethod.GET); |
|
|
|
if (NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) { |
|
|
|
return _baseDataProcess(goodId, provider, result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]); |
|
|
|
// List<Map<String, dynamic>> _pageData = []; |
|
|
|
|
|
|
|
List<Map<String, dynamic>> _pageData = []; |
|
|
|
/// 合并数据 |
|
|
|
List<dynamic> modLists = result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list']; |
|
|
|
for(int i = 0; i < modLists.length; i++){ |
|
|
|
Map<String, dynamic> item = modLists[i]; |
|
|
|
Map<String, dynamic> data = item['data']; |
|
|
|
Map<String, dynamic> style = jsonDecode(item['style']); |
|
|
|
// List<dynamic> modLists = result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list']; |
|
|
|
// for (int i = 0; i < modLists.length; i++) { |
|
|
|
// Map<String, dynamic> item = modLists[i]; |
|
|
|
// Map<String, dynamic> data = item['data']; |
|
|
|
// Map<String, dynamic> style = jsonDecode(item['style']); |
|
|
|
// |
|
|
|
// Map<String, dynamic> baseData = {'provider': provider, 'good_id': goodId}; |
|
|
|
// style.addAll(baseData); |
|
|
|
// |
|
|
|
// if (!EmptyUtil.isEmpty(data)) { |
|
|
|
// style.addAll(data); |
|
|
|
// item['data'] = jsonEncode(style); |
|
|
|
// _pageData.add(item); |
|
|
|
// } else { |
|
|
|
// item['data'] = jsonEncode(style); |
|
|
|
// _pageData.add(item); |
|
|
|
// } |
|
|
|
// } |
|
|
|
// |
|
|
|
// return _pageData; |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (e, s) { |
|
|
|
Logger.error(e, s); |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
Map<String, dynamic> baseData = {'provider': provider, 'good_id': goodId}; |
|
|
|
style.addAll(baseData); |
|
|
|
/// 数据处理 |
|
|
|
List<Map<String, dynamic>> _baseDataProcess(String goodId, String provider, final Map<String, dynamic> model) { |
|
|
|
if (!EmptyUtil.isEmpty(provider) && !EmptyUtil.isEmpty(goodId) && !EmptyUtil.isEmpty(model)) { |
|
|
|
try { |
|
|
|
List<Map<String, dynamic>> _pageData = []; |
|
|
|
Map<String, dynamic> baseData = {'provider': provider, 'good_id': goodId}; |
|
|
|
List<dynamic> modLists = model['mod_list']; |
|
|
|
for (int i = 0; i < modLists.length; i++) { |
|
|
|
Map<String, dynamic> item = modLists[i]; |
|
|
|
Map<String, dynamic> data = item['data'] is String ? jsonDecode(item['data']) : item['data']; |
|
|
|
Map<String, dynamic> style = jsonDecode(item['style']); |
|
|
|
style.addAll(baseData); |
|
|
|
|
|
|
|
if(!EmptyUtil.isEmpty(data)){ |
|
|
|
style.addAll(data); |
|
|
|
item['data'] = jsonEncode(style); |
|
|
|
_pageData.add(item); |
|
|
|
}else{ |
|
|
|
item['data'] = jsonEncode(style); |
|
|
|
_pageData.add(item); |
|
|
|
} |
|
|
|
if (!EmptyUtil.isEmpty(data)) { |
|
|
|
style.addAll(data); |
|
|
|
item['data'] = jsonEncode(style); |
|
|
|
_pageData.add(item); |
|
|
|
} else { |
|
|
|
item['data'] = jsonEncode(style); |
|
|
|
_pageData.add(item); |
|
|
|
} |
|
|
|
|
|
|
|
return _pageData; |
|
|
|
} |
|
|
|
return _pageData; |
|
|
|
} catch (e, s) { |
|
|
|
Logger.error(e, s); |
|
|
|
} |
|
|
|
}catch(e){ |
|
|
|
Logger.log(e); |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
///【弃用】获取mod数据 把子mod数据塞在data中 |
|
|
|
// Future<List<Map<String, dynamic>>> fetchModData(final Map<String, dynamic> model) async{ |
|
|
|
// String provider = model['provider']; |
|
|
|
// String goodId = model['good_id']; |
|
|
|
// try { |
|
|
|
// if (!EmptyUtil.isEmpty(provider) && !EmptyUtil.isEmpty(goodId)) { |
|
|
|
// Logger.log('商品类型 = $provider, 商品ID = $goodId'); |
|
|
|
// var result = await NetUtil.post('/api/v1/detail/$provider/$goodId', method: NetMethod.GET); |
|
|
|
// if(NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) { |
|
|
|
// for (int i = 0; i < _pageData.length; i++) { |
|
|
|
// //result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list'][i]; |
|
|
|
// Map<String, dynamic> resultData = result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list'][i]; |
|
|
|
// Map<String, dynamic> data = jsonDecode(_pageData[i]['data']); |
|
|
|
// if(!EmptyUtil.isEmpty(data)){ |
|
|
|
// data.addAll(resultData); |
|
|
|
// _pageData[i]['data'] = jsonEncode(data); |
|
|
|
// }else{ |
|
|
|
// _pageData[i]['data'] = (null != resultData && resultData.length > 0) ? jsonEncode(resultData) : ''; |
|
|
|
// } |
|
|
|
// } |
|
|
|
// return _pageData; |
|
|
|
// } |
|
|
|
// } |
|
|
|
// }catch(e){ |
|
|
|
// Logger.log(e); |
|
|
|
// } |
|
|
|
// return null; |
|
|
|
// } |
|
|
|
// |
|
|
|
// ///【弃用】初始化 |
|
|
|
// Future<List<Map<String, dynamic>>> fetchInitData(Map<String, dynamic> model) async { |
|
|
|
// int id = 13; |
|
|
|
// var result = await NetUtil.post('/api/v1/mod', method: NetMethod.POST, params: {'ids': [id]}); |
|
|
|
// try { |
|
|
|
// if(NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) { |
|
|
|
// return _loadData(id, result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]); |
|
|
|
// } |
|
|
|
// } catch (e) { |
|
|
|
// Logger.log(e); |
|
|
|
// } |
|
|
|
// return null; |
|
|
|
// } |
|
|
|
// |
|
|
|
// ///【弃用】处理数据 |
|
|
|
// List<Map<String, dynamic>> _loadData(int id, dynamic data) { |
|
|
|
// String key = id.toString(); |
|
|
|
// Map<String, dynamic> json = Map<String, dynamic>.from(data); |
|
|
|
// if (json.containsKey(key)) { |
|
|
|
// List<dynamic> list = json[key]; |
|
|
|
// _pageData = list.map((item) { |
|
|
|
// return Map<String, dynamic>.from(item); |
|
|
|
// }).toList(); |
|
|
|
// return _pageData; |
|
|
|
// } |
|
|
|
// return null; |
|
|
|
// } |
|
|
|
// Future<List<Map<String, dynamic>>> fetchModData(final Map<String, dynamic> model) async{ |
|
|
|
// String provider = model['provider']; |
|
|
|
// String goodId = model['good_id']; |
|
|
|
// try { |
|
|
|
// if (!EmptyUtil.isEmpty(provider) && !EmptyUtil.isEmpty(goodId)) { |
|
|
|
// Logger.log('商品类型 = $provider, 商品ID = $goodId'); |
|
|
|
// var result = await NetUtil.post('/api/v1/detail/$provider/$goodId', method: NetMethod.GET); |
|
|
|
// if(NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) { |
|
|
|
// for (int i = 0; i < _pageData.length; i++) { |
|
|
|
// //result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list'][i]; |
|
|
|
// Map<String, dynamic> resultData = result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list'][i]; |
|
|
|
// Map<String, dynamic> data = jsonDecode(_pageData[i]['data']); |
|
|
|
// if(!EmptyUtil.isEmpty(data)){ |
|
|
|
// data.addAll(resultData); |
|
|
|
// _pageData[i]['data'] = jsonEncode(data); |
|
|
|
// }else{ |
|
|
|
// _pageData[i]['data'] = (null != resultData && resultData.length > 0) ? jsonEncode(resultData) : ''; |
|
|
|
// } |
|
|
|
// } |
|
|
|
// return _pageData; |
|
|
|
// } |
|
|
|
// } |
|
|
|
// }catch(e){ |
|
|
|
// Logger.log(e); |
|
|
|
// } |
|
|
|
// return null; |
|
|
|
// } |
|
|
|
// |
|
|
|
// ///【弃用】初始化 |
|
|
|
// Future<List<Map<String, dynamic>>> fetchInitData(Map<String, dynamic> model) async { |
|
|
|
// int id = 13; |
|
|
|
// var result = await NetUtil.post('/api/v1/mod', method: NetMethod.POST, params: {'ids': [id]}); |
|
|
|
// try { |
|
|
|
// if(NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) { |
|
|
|
// return _loadData(id, result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]); |
|
|
|
// } |
|
|
|
// } catch (e) { |
|
|
|
// Logger.log(e); |
|
|
|
// } |
|
|
|
// return null; |
|
|
|
// } |
|
|
|
// |
|
|
|
// ///【弃用】处理数据 |
|
|
|
// List<Map<String, dynamic>> _loadData(int id, dynamic data) { |
|
|
|
// String key = id.toString(); |
|
|
|
// Map<String, dynamic> json = Map<String, dynamic>.from(data); |
|
|
|
// if (json.containsKey(key)) { |
|
|
|
// List<dynamic> list = json[key]; |
|
|
|
// _pageData = list.map((item) { |
|
|
|
// return Map<String, dynamic>.from(item); |
|
|
|
// }).toList(); |
|
|
|
// return _pageData; |
|
|
|
// } |
|
|
|
// return null; |
|
|
|
// } |
|
|
|
|
|
|
|
} |