You've already forked FrameTour-BE
refactor(service): 优化拼图模板处理逻辑
- 将遍历所有拼图模板改为只处理第一个模板 - 简化内容页面对象创建流程 - 保留原有的购买状态检查和价格计算逻辑 - 提高代码执行效率,避免不必要的循环操作
This commit is contained in:
@@ -487,46 +487,45 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
List<PuzzleTemplateEntity> puzzleTemplateEntityList = puzzleTemplateMapper.list(face.getScenicId(), null, 1);
|
List<PuzzleTemplateEntity> puzzleTemplateEntityList = puzzleTemplateMapper.list(face.getScenicId(), null, 1);
|
||||||
if (!puzzleTemplateEntityList.isEmpty()) {
|
if (!puzzleTemplateEntityList.isEmpty()) {
|
||||||
List<PuzzleGenerationRecordEntity> records = puzzleGenerationRecordMapper.listByFaceId(faceId);
|
List<PuzzleGenerationRecordEntity> records = puzzleGenerationRecordMapper.listByFaceId(faceId);
|
||||||
puzzleTemplateEntityList.forEach(template -> {
|
PuzzleTemplateEntity template = puzzleTemplateEntityList.getFirst();
|
||||||
Optional<PuzzleGenerationRecordEntity> optionalRecord = records.stream().filter(r -> r.getTemplateId().equals(template.getId())).findFirst();
|
Optional<PuzzleGenerationRecordEntity> optionalRecord = records.stream().filter(r -> r.getTemplateId().equals(template.getId())).findFirst();
|
||||||
ContentPageVO sfpContent = new ContentPageVO();
|
ContentPageVO sfpContent = new ContentPageVO();
|
||||||
sfpContent.setName(template.getName());
|
sfpContent.setName(template.getName());
|
||||||
sfpContent.setGroup("plog");
|
sfpContent.setGroup("plog");
|
||||||
sfpContent.setScenicId(face.getScenicId());
|
sfpContent.setScenicId(face.getScenicId());
|
||||||
sfpContent.setContentType(3);
|
sfpContent.setContentType(3);
|
||||||
sfpContent.setSourceType(3);
|
sfpContent.setSourceType(3);
|
||||||
sfpContent.setLockType(-1);
|
sfpContent.setLockType(-1);
|
||||||
sfpContent.setContentId(optionalRecord.map(PuzzleGenerationRecordEntity::getId).orElse(null));
|
sfpContent.setContentId(optionalRecord.map(PuzzleGenerationRecordEntity::getId).orElse(null));
|
||||||
sfpContent.setTemplateId(template.getId());
|
sfpContent.setTemplateId(template.getId());
|
||||||
sfpContent.setTemplateCoverUrl(template.getCoverImage());
|
sfpContent.setTemplateCoverUrl(template.getCoverImage());
|
||||||
sfpContent.setGoodsType(3);
|
sfpContent.setGoodsType(3);
|
||||||
sfpContent.setSort(0);
|
sfpContent.setSort(0);
|
||||||
if (optionalRecord.isPresent()) {
|
if (optionalRecord.isPresent()) {
|
||||||
IsBuyRespVO isBuyRespVO = orderBiz.isBuy(face.getScenicId(), face.getMemberId(), faceId, 5, optionalRecord.get().getTemplateId());
|
IsBuyRespVO isBuyRespVO = orderBiz.isBuy(face.getScenicId(), face.getMemberId(), faceId, 5, optionalRecord.get().getTemplateId());
|
||||||
if (isBuyRespVO.isBuy()) {
|
if (isBuyRespVO.isBuy()) {
|
||||||
sfpContent.setIsBuy(1);
|
sfpContent.setIsBuy(1);
|
||||||
} else {
|
|
||||||
sfpContent.setIsBuy(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
PriceCalculationRequest calculationRequest = new PriceCalculationRequest();
|
|
||||||
ProductItem productItem = new ProductItem();
|
|
||||||
productItem.setProductType(ProductType.PHOTO_LOG);
|
|
||||||
productItem.setProductId(template.getId().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 {
|
} else {
|
||||||
sfpContent.setFreeCount(1);
|
sfpContent.setIsBuy(0);
|
||||||
}
|
}
|
||||||
contentList.add(1, sfpContent);
|
}
|
||||||
});
|
PriceCalculationRequest calculationRequest = new PriceCalculationRequest();
|
||||||
|
ProductItem productItem = new ProductItem();
|
||||||
|
productItem.setProductType(ProductType.PHOTO_LOG);
|
||||||
|
productItem.setProductId(template.getId().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 sourceReqQuery = new SourceReqQuery();
|
||||||
sourceReqQuery.setScenicId(face.getScenicId());
|
sourceReqQuery.setScenicId(face.getScenicId());
|
||||||
|
|||||||
Reference in New Issue
Block a user