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());
待优化的代码
最新推荐文章于 2022-04-27 18:03:54 发布