1. 使用场景
本次使用是通过条件查询出所需要的多个字段后,对其进行处理(一个条件查询多个下拉框内容,并对每个下拉框内容封装对象,进行返回)
2. 代码
点击查看代码
//获取所有需要的数据
List<User> user= userService.getByName(command.getName());
//新建一个list用于存放处理过的数据
List<CustomerCode> codeList = new ArrayList<>();
//使用流转成map,循环塞值,把每一个有值的实体类放入list中,最后转成list集合
user.stream().map(users -> {
CustomerCode code = new CustomerCode();
if (Objects.nonNull(conditions.getCustomerCodeName())) {
code.setId(conditions.getCustomerCodeId());
code.setName(conditions.getCustomerCodeName());
codeList.add(code);
}
return code;
}).collect(Collectors.toList());
//新建list,对已经存入值的list进行去重
List<CustomerCode> codes = new ArrayList<>();
//判断list是否为空,必须判断是否为空,否则这里会报错
if (codeList.size() > 0) {
//使用treeset通过name对list进行去重
codes = codeList.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(
Comparator.comparing(
CustomerCode::getName))), ArrayList::new));
}