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(
|
Map<String, Object> result = printerService.createVirtualOrder(
|
||||||
request.getSourceId(),
|
request.getSourceId(),
|
||||||
request.getScenicId(),
|
request.getScenicId(),
|
||||||
request.getPrinterId()
|
request.getPrinterId(),
|
||||||
|
request.getNeedEnhance()
|
||||||
);
|
);
|
||||||
return ApiResponse.success(result);
|
return ApiResponse.success(result);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -21,4 +21,9 @@ public class CreateVirtualOrderRequest {
|
|||||||
* 打印机ID(可选)
|
* 打印机ID(可选)
|
||||||
*/
|
*/
|
||||||
private Integer printerId;
|
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);
|
||||||
|
|
||||||
|
void setUserIsBuyItem(Long memberId, Long id, Long orderId, Boolean needEnhance);
|
||||||
|
|
||||||
FaceRecognizeResp useSample(Long userId, Long sampleId);
|
FaceRecognizeResp useSample(Long userId, Long sampleId);
|
||||||
|
|
||||||
List<SourceEntity> autoAddPhotosToPreferPrint(Long faceId);
|
List<SourceEntity> autoAddPhotosToPreferPrint(Long faceId);
|
||||||
@@ -118,4 +120,15 @@ public interface PrinterService {
|
|||||||
* @return 订单信息
|
* @return 订单信息
|
||||||
*/
|
*/
|
||||||
Map<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId);
|
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
|
@Override
|
||||||
public void setUserIsBuyItem(Long memberId, Long id, Long orderId) {
|
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) {
|
if (redisTemplate.opsForValue().get(USER_PHOTO_LIST_TO_PRINTER + memberId + ":" + orderId) != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1107,12 +1112,13 @@ public class PrinterServiceImpl implements PrinterService {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
final Boolean finalNeedEnhance = needEnhance;
|
||||||
Thread.ofVirtual().start(() -> {
|
Thread.ofVirtual().start(() -> {
|
||||||
userPhotoListByOrderId.forEach(item -> {
|
userPhotoListByOrderId.forEach(item -> {
|
||||||
PrinterEntity printer = printerMapper.getById(item.getPrinterId());
|
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();
|
Integer quantity = item.getQuantity();
|
||||||
@@ -1654,6 +1660,11 @@ 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance) {
|
||||||
// 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());
|
||||||
@@ -1759,7 +1770,7 @@ public class PrinterServiceImpl implements PrinterService {
|
|||||||
log.info("创建0元订单成功: orderId={}, virtualMemberId={}, faceId={}", orderId, virtualMemberId, faceId);
|
log.info("创建0元订单成功: orderId={}, virtualMemberId={}, faceId={}", orderId, virtualMemberId, faceId);
|
||||||
|
|
||||||
// 7. 触发购买后逻辑(调用setUserIsBuyItem)
|
// 7. 触发购买后逻辑(调用setUserIsBuyItem)
|
||||||
setUserIsBuyItem(virtualMemberId, memberPrintId.longValue(), orderId);
|
setUserIsBuyItem(virtualMemberId, memberPrintId.longValue(), orderId, needEnhance);
|
||||||
log.info("触发购买后逻辑完成: orderId={}", orderId);
|
log.info("触发购买后逻辑完成: orderId={}", orderId);
|
||||||
|
|
||||||
// 8. 返回结果
|
// 8. 返回结果
|
||||||
|
|||||||
Reference in New Issue
Block a user