You've already forked FrameTour-BE
feat(printer): 添加图像增强功能支持
- 在CreateVirtualOrderRequest中新增needEnhance字段 - 修改createVirtualOrder方法支持图像增强参数传递 - 更新setUserIsBuyItem方法以支持图像增强选项 - 在processPhotoWithPipeline调用中传入图像增强参数 - 为虚拟订单创建流程添加图像增强功能支持
This commit is contained in:
@@ -64,7 +64,8 @@ public class SourceController {
|
||||
Map<String, Object> result = printerService.createVirtualOrder(
|
||||
request.getSourceId(),
|
||||
request.getScenicId(),
|
||||
request.getPrinterId()
|
||||
request.getPrinterId(),
|
||||
request.getNeedEnhance()
|
||||
);
|
||||
return ApiResponse.success(result);
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -21,4 +21,9 @@ public class CreateVirtualOrderRequest {
|
||||
* 打印机ID(可选)
|
||||
*/
|
||||
private Integer printerId;
|
||||
|
||||
/**
|
||||
* 是否需要图像增强(可选,默认不增强)
|
||||
*/
|
||||
private Boolean needEnhance;
|
||||
}
|
||||
|
||||
@@ -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<SourceEntity> autoAddPhotosToPreferPrint(Long faceId);
|
||||
@@ -118,4 +120,15 @@ public interface PrinterService {
|
||||
* @return 订单信息
|
||||
*/
|
||||
Map<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId);
|
||||
|
||||
/**
|
||||
* 创建虚拟用户0元订单(支持图像增强选项)
|
||||
*
|
||||
* @param sourceId source记录ID
|
||||
* @param scenicId 景区ID
|
||||
* @param printerId 打印机ID(可选)
|
||||
* @param needEnhance 是否需要图像增强(可选)
|
||||
* @return 订单信息
|
||||
*/
|
||||
Map<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance);
|
||||
}
|
||||
@@ -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<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId) {
|
||||
return createVirtualOrder(sourceId, scenicId, printerId, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> 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. 返回结果
|
||||
|
||||
Reference in New Issue
Block a user