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 633bc99a..9e5ba95d 100644 --- a/src/main/java/com/ycwl/basic/controller/pc/SourceController.java +++ b/src/main/java/com/ycwl/basic/controller/pc/SourceController.java @@ -65,7 +65,8 @@ public class SourceController { request.getSourceId(), request.getScenicId(), request.getPrinterId(), - request.getNeedEnhance() + request.getNeedEnhance(), + request.getPrintImgUrl() ); 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 08ee4829..b78ed5af 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 @@ -26,4 +26,9 @@ public class CreateVirtualOrderRequest { * 是否需要图像增强(可选,默认不增强) */ private Boolean needEnhance; + + /** + * 打印图片URL(可选,如果提供则使用此URL进行打印) + */ + private String printImgUrl; } 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 32769c4f..666d5f6b 100644 --- a/src/main/java/com/ycwl/basic/service/printer/PrinterService.java +++ b/src/main/java/com/ycwl/basic/service/printer/PrinterService.java @@ -131,4 +131,16 @@ public interface PrinterService { * @return 订单信息 */ Map createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance); + + /** + * 创建虚拟用户0元订单(支持图像增强选项和自定义打印图片URL) + * + * @param sourceId source记录ID + * @param scenicId 景区ID + * @param printerId 打印机ID(可选) + * @param needEnhance 是否需要图像增强(可选) + * @param printImgUrl 打印图片URL(可选,如果提供则使用此URL进行打印) + * @return 订单信息 + */ + Map createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance, String printImgUrl); } \ 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 75b52c88..d4e022fe 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 @@ -1638,11 +1638,16 @@ public class PrinterServiceImpl implements PrinterService { @Override public Map createVirtualOrder(Long sourceId, Long scenicId, Integer printerId) { - return createVirtualOrder(sourceId, scenicId, printerId, null); + return createVirtualOrder(sourceId, scenicId, printerId, null, null); } @Override public Map createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance) { + return createVirtualOrder(sourceId, scenicId, printerId, needEnhance, null); + } + + @Override + public Map createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance, String printImgUrl) { // 1. 查询source记录 SourceEntity source = sourceMapper.getEntity(sourceId); FaceSampleEntity faceSample = faceSampleMapper.getEntity(source.getFaceSampleId()); @@ -1674,7 +1679,7 @@ public class PrinterServiceImpl implements PrinterService { log.info("创建人脸记录成功: faceId={}, virtualMemberId={}, origUrl={}", faceId, virtualMemberId, source.getUrl()); // 4. 创建member_print记录(参考addUserPhotoFromSource方法) - Integer memberPrintId = addUserPhoto(virtualMemberId, scenicId, source.getUrl(), faceId, sourceId); + Integer memberPrintId = addUserPhoto(virtualMemberId, scenicId, (printImgUrl != null && !printImgUrl.isEmpty()) ? printImgUrl : source.getUrl(), faceId, sourceId); if (memberPrintId == null) { throw new BaseException("创建member_print记录失败"); } @@ -1762,3 +1767,4 @@ public class PrinterServiceImpl implements PrinterService { return result; } } +