From 830dd17071c274f93e8f33786e1651fdf21b3267 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 16 Jan 2026 18:30:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(printer):=20=E6=B7=BB=E5=8A=A0=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=89=93=E5=8D=B0=E5=9B=BE=E7=89=87URL?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在CreateVirtualOrderRequest中新增printImgUrl字段 - 修改createVirtualOrder方法支持自定义打印图片URL参数 - 实现当提供printImgUrl时优先使用该URL进行打印 - 更新服务接口和实现类以支持新的参数传递 - 添加相应的文档注释说明新功能特性 --- .../ycwl/basic/controller/pc/SourceController.java | 3 ++- .../model/printer/req/CreateVirtualOrderRequest.java | 5 +++++ .../ycwl/basic/service/printer/PrinterService.java | 12 ++++++++++++ .../service/printer/impl/PrinterServiceImpl.java | 10 ++++++++-- 4 files changed, 27 insertions(+), 3 deletions(-) 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; } } +