- 使用Lambda表达式简化循环操作:
List admins = adminService.queryAdminByTotalAdminId(admin.getAdminId());
List deviceEntityDtos = new ArrayList<>();
admins.forEach(admin2 -> {
List deviceEntities = queryAllBaseDevicesEntitiesByAdminId(admin2.getAdminId());
if (!deviceEntities.isEmpty()){
deviceEntities.forEach(deviceEntity -> {
DeviceEntityDto deviceEntityDto = new DeviceEntityDto();
BeanUtils.copyProperties(deviceEntity,deviceEntityDto);
int count = queryMobileDevicesByBindingIDByCount(deviceEntity.getDeviceId(),deviceEntity.getAdminId());
deviceEntityDto.setMobileCount(count);
deviceEntityDto.setAdminRealName(admin2.getRealName());
deviceEntityDto.setAdminPhone(admin2.getAdminPhone());
deviceEntityDtos.add(deviceEntityDto);
});
}
});
- 使用Stream API对数据进行过滤和转换:
List admins = adminService.queryAdminByTotalAdminId(admin.getAdminId());
List deviceEntityDtos = admins.stream()
.flatMap(admin2 -> queryAllBaseDevicesEntitiesByAdminId(admin2.getAdminId()).stream()
.filter(deviceEntity -> queryMobileDevicesByBindingIDByCount(deviceEntity.getDeviceId(), deviceEntity.getAdminId()) > 0)
.map(deviceEntity -> {
DeviceEntityDto deviceEntityDto = new DeviceEntityDto();
BeanUtils.copyProperties(deviceEntity, deviceEntityDto);
deviceEntityDto.setMobileCount(queryMobileDevicesByBindingIDByCount(deviceEntity.getDeviceId(), deviceEntity.getAdminId()));
deviceEntityDto.setAdminRealName(admin2.getRealName());
deviceEntityDto.setAdminPhone(admin2.getAdminPhone());
return deviceEntityDto;
}))
.collect(Collectors.toList())