怎么利用QQ空间给网站做排名,手机网站建设 苏州,廊坊网站制作网站,公司网页设计模板图片MapObject, ListObject返回满足条件的数据
当一个表查询多次时#xff0c;为了减少数据库的查询操作#xff0c;可以使用stream流来进行条件筛选#xff0c;获取所需要的数据。
例#xff1a;
MapLong, ListPurchaseOrder orderMap…MapObject, ListObject返回满足条件的数据
当一个表查询多次时为了减少数据库的查询操作可以使用stream流来进行条件筛选获取所需要的数据。
例
MapLong, ListPurchaseOrder orderMap orderService.list(Wrappers.PurchaseOrderlambdaQuery().select(PurchaseOrder::getId,PurchaseOrder::getSupplierId,PurchaseOrder::getCreateTime,PurchaseOrder::getTotalPrice).in(PurchaseOrder::getSupplierId, supplierIds).notIn(PurchaseOrder::getOrderStatus, orderStatus)).stream().collect(Collectors.groupingBy(PurchaseOrder::getSupplierId));// 减少数据库查询操作创建一个新的 Map用于存储供应商ID及其符合条件的订单列表
MapLong, ListPurchaseOrder thisYearCumulativeMap orderMap.entrySet().stream().map(entry - { // 对原始订单映射操作得到新的 Entry供应商ID和符合条件的订单列表// 获取供应商IDLong supplierId entry.getKey();// 过滤订单列表只保留符合条件的订单ListPurchaseOrder orders entry.getValue().stream().filter(order - {// 获取订单创建时间可能为nullOptionalDate optionalDate Optional.ofNullable(order.getCreateTime());// 如果创建时间存在则判断是否在本年度范围内return optionalDate.map(createTime -createTime.after(DateUtils.stringToDate(DateUtils.getStartOfYear())) createTime.before(DateUtils.stringToDate(DateUtils.getEndDayOfYear()))).orElse(false); // 如果创建时间为null则返回false}).collect(Collectors.toList()); // 将符合条件的订单收集为列表return new AbstractMap.SimpleEntry(supplierId, orders); // 返回新的 Entry包含供应商ID和符合条件的订单列表}).filter(entry - !entry.getValue().isEmpty()) //过滤掉没有符合条件的订单的供应商.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); //将最终的结果收集为新的 Map