DrawRewardServiceImpl.java
//语法上:Map<Long, ActivityOrderEntity> orderMaps = orders.stream().collect(Collectors.groupingBy(ActivityOrderEntity::getUserId,Collectors.collectingAndThen(Collectors.reducing((c1, c2) -> c1.getRoundNum() > c2.getRoundNum() ? c1 : c2), Optional::get)));//推荐以下:Map<Long, ActivityOrderEntity> orderMaps = orders.stream().collect(Collectors.toMap(ActivityOrderEntity::getUserId,Function.identity(), (c1, c2) -> c1.getRoundNum() > c2.getRoundNum() ? c1 : c2));// 分组求和fundTradeFlowList.stream().filter(r -> FundBizCodeEnum.BUY.getCode().equals(r.getBizCode())).collect(Collectors.groupingBy(FundTradeFlowBO::getFundCode,Collectors.reducing(BigDecimal.ZERO, FundTradeFlowBO::getAmount, this::sumBigDecimal)));private BigDecimal sumBigDecimal(BigDecimal assetA, BigDecimal assetB) {if (assetA == null && assetB == null) {return BigDecimal.ZERO;}if (assetA == null) {return assetB;}if (assetB == null) {return assetA;}return assetA.add(assetB);}
