You've already forked FrameTour-BE
feat(printer): 添加照片属性键功能支持
- 引入SourceRepository依赖以获取设备ID - 在打印服务中新增对照片来源属性的处理逻辑 - 根据用户照片列表生成唯一的设备ID集合 - 将生成的属性键列表关联到普通照片项中 - 优化打印数量统计逻辑,确保数据准确性 - 增强打印任务构建时的数据完整性校验
This commit is contained in:
@@ -66,6 +66,7 @@ import com.ycwl.basic.repository.DeviceRepository;
|
|||||||
import com.ycwl.basic.repository.FaceRepository;
|
import com.ycwl.basic.repository.FaceRepository;
|
||||||
import com.ycwl.basic.repository.OrderRepository;
|
import com.ycwl.basic.repository.OrderRepository;
|
||||||
import com.ycwl.basic.repository.ScenicRepository;
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
|
import com.ycwl.basic.repository.SourceRepository;
|
||||||
import com.ycwl.basic.service.mobile.WxPayService;
|
import com.ycwl.basic.service.mobile.WxPayService;
|
||||||
import com.ycwl.basic.service.pc.FaceService;
|
import com.ycwl.basic.service.pc.FaceService;
|
||||||
import com.ycwl.basic.service.printer.PrinterService;
|
import com.ycwl.basic.service.printer.PrinterService;
|
||||||
@@ -160,6 +161,8 @@ public class PrinterServiceImpl implements PrinterService {
|
|||||||
private final ExecutorService preferPrintExecutor = Executors.newFixedThreadPool(
|
private final ExecutorService preferPrintExecutor = Executors.newFixedThreadPool(
|
||||||
Runtime.getRuntime().availableProcessors() * 2
|
Runtime.getRuntime().availableProcessors() * 2
|
||||||
);
|
);
|
||||||
|
@Autowired
|
||||||
|
private SourceRepository sourceRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PrinterResp> listByScenicId(Long scenicId) {
|
public List<PrinterResp> listByScenicId(Long scenicId) {
|
||||||
@@ -405,6 +408,21 @@ public class PrinterServiceImpl implements PrinterService {
|
|||||||
&& item.getSourceId() != null && item.getSourceId() > 0)
|
&& item.getSourceId() != null && item.getSourceId() > 0)
|
||||||
.mapToInt(MemberPrintResp::getQuantity)
|
.mapToInt(MemberPrintResp::getQuantity)
|
||||||
.sum();
|
.sum();
|
||||||
|
List<String> normalAttrs = userPhotoList.stream()
|
||||||
|
.filter(item -> Objects.nonNull(item.getQuantity())
|
||||||
|
&& item.getSourceId() != null && item.getSourceId() > 0)
|
||||||
|
.map(MemberPrintResp::getSourceId)
|
||||||
|
.map(id -> {
|
||||||
|
SourceEntity source = sourceRepository.getSource(id);
|
||||||
|
if (source == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return source.getDeviceId();
|
||||||
|
})
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.map(String::valueOf)
|
||||||
|
.toList();
|
||||||
|
|
||||||
long mobileCount = userPhotoList.stream()
|
long mobileCount = userPhotoList.stream()
|
||||||
.filter(item -> Objects.nonNull(item.getQuantity())
|
.filter(item -> Objects.nonNull(item.getQuantity())
|
||||||
@@ -443,6 +461,7 @@ public class PrinterServiceImpl implements PrinterService {
|
|||||||
normalPhotoItem.setQuantity(Long.valueOf(normalCount).intValue());
|
normalPhotoItem.setQuantity(Long.valueOf(normalCount).intValue());
|
||||||
normalPhotoItem.setPurchaseCount(1);
|
normalPhotoItem.setPurchaseCount(1);
|
||||||
normalPhotoItem.setScenicId(scenicId.toString());
|
normalPhotoItem.setScenicId(scenicId.toString());
|
||||||
|
normalPhotoItem.setAttributeKeys(normalAttrs);
|
||||||
productItems.add(normalPhotoItem);
|
productItems.add(normalPhotoItem);
|
||||||
log.debug("普通照片打印数量: {}", normalCount);
|
log.debug("普通照片打印数量: {}", normalCount);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user