3.分组统计计数
HashMap<Long, Long> proxyNumMap = relations.stream().collect(Collectors.groupingBy(TbShopProductRelation::getShopUserId, HashMap::new, Collectors.counting()));
4 . 对 分页数据多条件分组
Wrapper wr = new EntityWrapper<>();
if (StringUtil.isNotNull(keyWords)) {
wr.like("role_name", keyWords);
}
Page pageEntity = new Page<>();
pageEntity.setCurrent(page < 1 ? 1 : page);
pageEntity.setSize(page < 1 ? 10 : pageSize);
Page tbMemberDeductionSettingPage = tbMemberDeductionSettingService.selectPage(pageEntity, wr);
List records = tbMemberDeductionSettingPage.getRecords();
if (records.isEmpty()) {
return new R<>(tbMemberDeductionSettingPage);
}
Page memberDeductionSettingDtoPage = new Page<>();
// 分组统计
Map<String, List> collect = records.stream().collect(Collectors.groupingBy(m -> m.getLevelId() + "_" + m.getUserTypeId()));
List settingDtos = collect.keySet().stream().map(m -> {
TbMemberDeductionSettingDto tbMemberDeductionSettingDto = new TbMemberDeductionSettingDto();
String[] s = m.split("_");
String levelId = s[0];
String userTypeId = s[1];
List tbMemberDeductionSettings = collect.get(m);
List collect1 = tbMemberDeductionSettings.stream().map(t -> {
MemberDeductionSettingDto memberDeductionSettingDto = new MemberDeductionSettingDto();
memberDeductionSettingDto.setId(t.getId());
memberDeductionSettingDto.setDeductionMoney(t.getDeductionMoney());
memberDeductionSettingDto.setDeductionTypeId(t.getDeductionTypeId());
memberDeductionSettingDto.setDeductionTypeName(t.getDeductionTypeName());
memberDeductionSettingDto.setDeductionValue(t.getDeductionValue());
return memberDeductionSettingDto;
}).collect(Collectors.toList());
tbMemberDeductionSettingDto.setRoleName(tbMemberDeductionSettings.get(0).getRoleName());
tbMemberDeductionSettingDto.setLevelName(tbMemberDeductionSettings.get(0).getLevelName());
tbMemberDeductionSettingDto.setLevelId(Integer.parseInt(levelId));
tbMemberDeductionSettingDto.setUserTypeId(Integer.parseInt(userTypeId));
tbMemberDeductionSettingDto.setList(collect1);
return tbMemberDeductionSettingDto;
}).collect(Collectors.toList());
memberDeductionSettingDtoPage.setRecords(settingDtos);
memberDeductionSettingDtoPage.setTotal(tbMemberDeductionSettingPage.getTotal());
return new R<>(memberDeductionSettingDtoPage);
5.累加int型
int orders= list.stream().mapToInt(IncomeInfoDto::getRecommendAnchorAssociateOrders).sum();
6.过滤分割集合
List collect = shopInfoList.stream().map(s -> {
UserAttentionDto userAttentionDto = new UserAttentionDto();
userAttentionDto.setUserId(userId);
return userAttentionDto;