feat(printer): 添加自定义打印图片URL功能

- 在CreateVirtualOrderRequest中新增printImgUrl字段
- 修改createVirtualOrder方法支持自定义打印图片URL参数
- 实现当提供printImgUrl时优先使用该URL进行打印
- 更新服务接口和实现类以支持新的参数传递
- 添加相应的文档注释说明新功能特性
This commit is contained in:
2026-01-16 18:30:39 +08:00
parent 83c831887e
commit 830dd17071
4 changed files with 27 additions and 3 deletions

View File

@@ -65,7 +65,8 @@ public class SourceController {
request.getSourceId(), request.getSourceId(),
request.getScenicId(), request.getScenicId(),
request.getPrinterId(), request.getPrinterId(),
request.getNeedEnhance() request.getNeedEnhance(),
request.getPrintImgUrl()
); );
return ApiResponse.success(result); return ApiResponse.success(result);
} catch (Exception e) { } catch (Exception e) {

View File

@@ -26,4 +26,9 @@ public class CreateVirtualOrderRequest {
* 是否需要图像增强(可选,默认不增强) * 是否需要图像增强(可选,默认不增强)
*/ */
private Boolean needEnhance; private Boolean needEnhance;
/**
* 打印图片URL(可选,如果提供则使用此URL进行打印)
*/
private String printImgUrl;
} }

View File

@@ -131,4 +131,16 @@ public interface PrinterService {
* @return 订单信息 * @return 订单信息
*/ */
Map<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance); Map<String, Object> 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<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance, String printImgUrl);
} }

View File

@@ -1638,11 +1638,16 @@ public class PrinterServiceImpl implements PrinterService {
@Override @Override
public Map<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId) { public Map<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId) {
return createVirtualOrder(sourceId, scenicId, printerId, null); return createVirtualOrder(sourceId, scenicId, printerId, null, null);
} }
@Override @Override
public Map<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance) { public Map<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance) {
return createVirtualOrder(sourceId, scenicId, printerId, needEnhance, null);
}
@Override
public Map<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance, String printImgUrl) {
// 1. 查询source记录 // 1. 查询source记录
SourceEntity source = sourceMapper.getEntity(sourceId); SourceEntity source = sourceMapper.getEntity(sourceId);
FaceSampleEntity faceSample = faceSampleMapper.getEntity(source.getFaceSampleId()); FaceSampleEntity faceSample = faceSampleMapper.getEntity(source.getFaceSampleId());
@@ -1674,7 +1679,7 @@ public class PrinterServiceImpl implements PrinterService {
log.info("创建人脸记录成功: faceId={}, virtualMemberId={}, origUrl={}", faceId, virtualMemberId, source.getUrl()); log.info("创建人脸记录成功: faceId={}, virtualMemberId={}, origUrl={}", faceId, virtualMemberId, source.getUrl());
// 4. 创建member_print记录(参考addUserPhotoFromSource方法) // 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) { if (memberPrintId == null) {
throw new BaseException("创建member_print记录失败"); throw new BaseException("创建member_print记录失败");
} }
@@ -1762,3 +1767,4 @@ public class PrinterServiceImpl implements PrinterService {
return result; return result;
} }
} }