diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java index 6f18886f..03724493 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java @@ -454,45 +454,47 @@ public class FaceServiceImpl implements FaceService { } }).collect(Collectors.toList()); - int count = puzzleGenerationRecordMapper.countByFaceId(faceId); - if (count > 0) { - ContentPageVO sfpContent = new ContentPageVO(); + List puzzleTemplateEntityList = puzzleTemplateMapper.list(face.getScenicId(), null, 1); + if (!puzzleTemplateEntityList.isEmpty()) { List records = puzzleGenerationRecordMapper.listByFaceId(faceId); - PuzzleTemplateEntity template = puzzleTemplateMapper.getById(records.getFirst().getTemplateId()); - sfpContent.setName(template.getName()); - sfpContent.setGroup("plog"); - sfpContent.setScenicId(face.getScenicId()); - sfpContent.setContentType(3); - sfpContent.setSourceType(3); - sfpContent.setLockType(-1); - sfpContent.setContentId(records.getFirst().getId()); - sfpContent.setTemplateId(template.getId()); - sfpContent.setTemplateCoverUrl(template.getCoverImage()); - sfpContent.setGoodsType(3); - sfpContent.setSort(0); - IsBuyRespVO isBuyRespVO = orderBiz.isBuy(face.getMemberId(), face.getScenicId(), 5, records.getFirst().getTemplateId()); - if (isBuyRespVO.isBuy()) { - sfpContent.setIsBuy(1); - } else { - sfpContent.setIsBuy(0); - } - PriceCalculationRequest calculationRequest = new PriceCalculationRequest(); - ProductItem productItem = new ProductItem(); - productItem.setProductType(ProductType.PHOTO_LOG); - productItem.setProductId(records.getFirst().getTemplateId().toString()); - productItem.setPurchaseCount(1); - productItem.setScenicId(face.getScenicId().toString()); - calculationRequest.setProducts(Collections.singletonList(productItem)); - calculationRequest.setUserId(face.getMemberId()); - calculationRequest.setFaceId(face.getId()); - calculationRequest.setPreviewOnly(true); // 仅查询价格,不实际使用优惠 - PriceCalculationResult calculationResult = iPriceCalculationService.calculatePrice(calculationRequest); - if (calculationResult.getFinalAmount().compareTo(BigDecimal.ZERO) > 0) { - sfpContent.setFreeCount(0); - } else { - sfpContent.setFreeCount(1); - } - contentList.add(1, sfpContent); + puzzleTemplateEntityList.forEach(template -> { + Optional optionalRecord = records.stream().filter(r -> r.getTemplateId().equals(template.getId())).findFirst(); + ContentPageVO sfpContent = new ContentPageVO(); + sfpContent.setName(template.getName()); + sfpContent.setGroup("plog"); + sfpContent.setScenicId(face.getScenicId()); + sfpContent.setContentType(3); + sfpContent.setSourceType(3); + sfpContent.setLockType(-1); + sfpContent.setContentId(optionalRecord.map(PuzzleGenerationRecordEntity::getId).orElse(null)); + sfpContent.setTemplateId(template.getId()); + sfpContent.setTemplateCoverUrl(template.getCoverImage()); + sfpContent.setGoodsType(3); + sfpContent.setSort(0); + IsBuyRespVO isBuyRespVO = orderBiz.isBuy(face.getMemberId(), face.getScenicId(), 5, records.getFirst().getTemplateId()); + if (isBuyRespVO.isBuy()) { + sfpContent.setIsBuy(1); + } else { + sfpContent.setIsBuy(0); + } + PriceCalculationRequest calculationRequest = new PriceCalculationRequest(); + ProductItem productItem = new ProductItem(); + productItem.setProductType(ProductType.PHOTO_LOG); + productItem.setProductId(records.getFirst().getTemplateId().toString()); + productItem.setPurchaseCount(1); + productItem.setScenicId(face.getScenicId().toString()); + calculationRequest.setProducts(Collections.singletonList(productItem)); + calculationRequest.setUserId(face.getMemberId()); + calculationRequest.setFaceId(face.getId()); + calculationRequest.setPreviewOnly(true); // 仅查询价格,不实际使用优惠 + PriceCalculationResult calculationResult = iPriceCalculationService.calculatePrice(calculationRequest); + if (calculationResult.getFinalAmount().compareTo(BigDecimal.ZERO) > 0) { + sfpContent.setFreeCount(0); + } else { + sfpContent.setFreeCount(1); + } + contentList.add(1, sfpContent); + }); } SourceReqQuery sourceReqQuery = new SourceReqQuery(); sourceReqQuery.setScenicId(face.getScenicId());