List<ActiveSub> activeSubs = ActiveSubMapperUtil.selectSubActiveShopList(activeSub, isInValidityPeriod, page, pageSize);
List<Integer> activeIds = activeSubs.stream().map(ActiveSub::getId).collect(Collectors.toList());
List<Map> maps = CommodityMapperUtil.selectQuantityAndWinRateByActiveId(activeIds);
List<ActiveSubModel> activeSubModels = activeSubs.stream().map(activeSubTemp -> {
Optional<Map> mapOptional = maps.stream().filter(map ->
activeSubTemp.getId().toString().equals(String.valueOf(map.get("activeId")))).findAny();
ActiveSubModel activeSubModel = new ActiveSubModel();
if (mapOptional.isPresent()) {
activeSubModel.setTotalQuantity(Integer.valueOf(String.valueOf(mapOptional.get().get("totalQuantity"))));
activeSubModel.setTotalWinRate(Integer.valueOf(String.valueOf(mapOptional.get().get("totalWinRate"))));
} else {
activeSubModel.setTotalQuantity(0);
activeSubModel.setTotalWinRate(0);
}
/**
* 不建議使用Apache BeanUtils進行屬性的copy,性能較差。可以使用Spring BeanUtils,Cglib BeanCopier。
* BeanCopier beanCopier = BeanCopier.create(ActiveSub.class, ActiveSubModel.class, false);
* beanCopier.copy(activeSubTemp, activeSubModel, null);
* return activeSubModel;
*/
BeanUtils.copyProperties(activeSubTemp, activeSubModel);
return activeSubModel;
}).collect(Collectors.toList());
待優化的代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.