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.OrderRepository;
|
||||
import com.ycwl.basic.repository.ScenicRepository;
|
||||
import com.ycwl.basic.repository.SourceRepository;
|
||||
import com.ycwl.basic.service.mobile.WxPayService;
|
||||
import com.ycwl.basic.service.pc.FaceService;
|
||||
import com.ycwl.basic.service.printer.PrinterService;
|
||||
@@ -160,6 +161,8 @@ public class PrinterServiceImpl implements PrinterService {
|
||||
private final ExecutorService preferPrintExecutor = Executors.newFixedThreadPool(
|
||||
Runtime.getRuntime().availableProcessors() * 2
|
||||
);
|
||||
@Autowired
|
||||
private SourceRepository sourceRepository;
|
||||
|
||||
@Override
|
||||
public List<PrinterResp> listByScenicId(Long scenicId) {
|
||||
@@ -405,6 +408,21 @@ public class PrinterServiceImpl implements PrinterService {
|
||||
&& item.getSourceId() != null && item.getSourceId() > 0)
|
||||
.mapToInt(MemberPrintResp::getQuantity)
|
||||
.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()
|
||||
.filter(item -> Objects.nonNull(item.getQuantity())
|
||||
@@ -443,6 +461,7 @@ public class PrinterServiceImpl implements PrinterService {
|
||||
normalPhotoItem.setQuantity(Long.valueOf(normalCount).intValue());
|
||||
normalPhotoItem.setPurchaseCount(1);
|
||||
normalPhotoItem.setScenicId(scenicId.toString());
|
||||
normalPhotoItem.setAttributeKeys(normalAttrs);
|
||||
productItems.add(normalPhotoItem);
|
||||
log.debug("普通照片打印数量: {}", normalCount);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user