diff --git a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java index 1949d8ed..daa5a45f 100644 --- a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java @@ -66,6 +66,7 @@ import com.ycwl.basic.repository.DeviceRepository; import com.ycwl.basic.repository.FaceRepository; import com.ycwl.basic.repository.OrderRepository; import com.ycwl.basic.repository.ScenicRepository; +import com.ycwl.basic.repository.SourceRepository; import com.ycwl.basic.service.mobile.WxPayService; import com.ycwl.basic.service.pc.FaceService; import com.ycwl.basic.service.printer.PrinterService; @@ -160,6 +161,8 @@ public class PrinterServiceImpl implements PrinterService { private final ExecutorService preferPrintExecutor = Executors.newFixedThreadPool( Runtime.getRuntime().availableProcessors() * 2 ); + @Autowired + private SourceRepository sourceRepository; @Override public List listByScenicId(Long scenicId) { @@ -405,6 +408,21 @@ public class PrinterServiceImpl implements PrinterService { && item.getSourceId() != null && item.getSourceId() > 0) .mapToInt(MemberPrintResp::getQuantity) .sum(); + List normalAttrs = userPhotoList.stream() + .filter(item -> Objects.nonNull(item.getQuantity()) + && item.getSourceId() != null && item.getSourceId() > 0) + .map(MemberPrintResp::getSourceId) + .map(id -> { + SourceEntity source = sourceRepository.getSource(id); + if (source == null) { + return null; + } + return source.getDeviceId(); + }) + .filter(Objects::nonNull) + .distinct() + .map(String::valueOf) + .toList(); long mobileCount = userPhotoList.stream() .filter(item -> Objects.nonNull(item.getQuantity()) @@ -443,6 +461,7 @@ public class PrinterServiceImpl implements PrinterService { normalPhotoItem.setQuantity(Long.valueOf(normalCount).intValue()); normalPhotoItem.setPurchaseCount(1); normalPhotoItem.setScenicId(scenicId.toString()); + normalPhotoItem.setAttributeKeys(normalAttrs); productItems.add(normalPhotoItem); log.debug("普通照片打印数量: {}", normalCount); }