diff --git a/src/main/java/com/ycwl/basic/controller/pc/SourceController.java b/src/main/java/com/ycwl/basic/controller/pc/SourceController.java index c152a5f0..633bc99a 100644 --- a/src/main/java/com/ycwl/basic/controller/pc/SourceController.java +++ b/src/main/java/com/ycwl/basic/controller/pc/SourceController.java @@ -64,7 +64,8 @@ public class SourceController { Map result = printerService.createVirtualOrder( request.getSourceId(), request.getScenicId(), - request.getPrinterId() + request.getPrinterId(), + request.getNeedEnhance() ); return ApiResponse.success(result); } catch (Exception e) { diff --git a/src/main/java/com/ycwl/basic/model/printer/req/CreateVirtualOrderRequest.java b/src/main/java/com/ycwl/basic/model/printer/req/CreateVirtualOrderRequest.java index ba7d4f20..08ee4829 100644 --- a/src/main/java/com/ycwl/basic/model/printer/req/CreateVirtualOrderRequest.java +++ b/src/main/java/com/ycwl/basic/model/printer/req/CreateVirtualOrderRequest.java @@ -21,4 +21,9 @@ public class CreateVirtualOrderRequest { * 打印机ID(可选) */ private Integer printerId; + + /** + * 是否需要图像增强(可选,默认不增强) + */ + private Boolean needEnhance; } diff --git a/src/main/java/com/ycwl/basic/service/printer/PrinterService.java b/src/main/java/com/ycwl/basic/service/printer/PrinterService.java index dceb1b97..32769c4f 100644 --- a/src/main/java/com/ycwl/basic/service/printer/PrinterService.java +++ b/src/main/java/com/ycwl/basic/service/printer/PrinterService.java @@ -60,6 +60,8 @@ public interface PrinterService { void setUserIsBuyItem(Long memberId, Long id, Long orderId); + void setUserIsBuyItem(Long memberId, Long id, Long orderId, Boolean needEnhance); + FaceRecognizeResp useSample(Long userId, Long sampleId); List autoAddPhotosToPreferPrint(Long faceId); @@ -118,4 +120,15 @@ public interface PrinterService { * @return 订单信息 */ Map createVirtualOrder(Long sourceId, Long scenicId, Integer printerId); + + /** + * 创建虚拟用户0元订单(支持图像增强选项) + * + * @param sourceId source记录ID + * @param scenicId 景区ID + * @param printerId 打印机ID(可选) + * @param needEnhance 是否需要图像增强(可选) + * @return 订单信息 + */ + Map createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance); } \ No newline at end of file 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 4c22772b..6f1f3c64 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 @@ -1089,6 +1089,11 @@ public class PrinterServiceImpl implements PrinterService { @Override public void setUserIsBuyItem(Long memberId, Long id, Long orderId) { + setUserIsBuyItem(memberId, id, orderId, null); + } + + @Override + public void setUserIsBuyItem(Long memberId, Long id, Long orderId, Boolean needEnhance) { if (redisTemplate.opsForValue().get(USER_PHOTO_LIST_TO_PRINTER + memberId + ":" + orderId) != null) { return; } @@ -1107,12 +1112,13 @@ public class PrinterServiceImpl implements PrinterService { } catch (Exception e) { throw new RuntimeException(e); } + final Boolean finalNeedEnhance = needEnhance; Thread.ofVirtual().start(() -> { userPhotoListByOrderId.forEach(item -> { PrinterEntity printer = printerMapper.getById(item.getPrinterId()); // 使用管线处理照片 - String printUrl = processPhotoWithPipeline(item, item.getScenicId(), qrCodeFile); + String printUrl = processPhotoWithPipeline(item, item.getScenicId(), qrCodeFile, finalNeedEnhance); // 根据数量创建多个打印任务 Integer quantity = item.getQuantity(); @@ -1654,6 +1660,11 @@ public class PrinterServiceImpl implements PrinterService { @Override public Map createVirtualOrder(Long sourceId, Long scenicId, Integer printerId) { + return createVirtualOrder(sourceId, scenicId, printerId, null); + } + + @Override + public Map createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance) { // 1. 查询source记录 SourceEntity source = sourceMapper.getEntity(sourceId); FaceSampleEntity faceSample = faceSampleMapper.getEntity(source.getFaceSampleId()); @@ -1759,7 +1770,7 @@ public class PrinterServiceImpl implements PrinterService { log.info("创建0元订单成功: orderId={}, virtualMemberId={}, faceId={}", orderId, virtualMemberId, faceId); // 7. 触发购买后逻辑(调用setUserIsBuyItem) - setUserIsBuyItem(virtualMemberId, memberPrintId.longValue(), orderId); + setUserIsBuyItem(virtualMemberId, memberPrintId.longValue(), orderId, needEnhance); log.info("触发购买后逻辑完成: orderId={}", orderId); // 8. 返回结果