From 07987835ecb701da83f6dd1f9f5b50a3fd9059d9 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sat, 13 Dec 2025 23:47:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(face):=20=E4=BF=AE=E5=A4=8D=E4=BA=BA?= =?UTF-8?q?=E8=84=B8=E8=B4=AD=E4=B9=B0=E9=80=BB=E8=BE=91=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改AppPuzzleController中的人脸购买判断逻辑 - 增加对景区是否购买的前置判断 - 优化FaceServiceImpl中的人脸购买状态设置逻辑 - 确保模板购买状态的准确判断 - 避免重复查询价格计算服务 --- .../mobile/AppPuzzleController.java | 39 +++++++++++-------- .../service/pc/impl/FaceServiceImpl.java | 11 ++++-- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppPuzzleController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppPuzzleController.java index 2319c95a..bc1ec823 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppPuzzleController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppPuzzleController.java @@ -205,26 +205,31 @@ public class AppPuzzleController { // 设置模板ID vo.setTemplateId(record.getTemplateId()); - IsBuyRespVO isBuyRespVO = orderBiz.isBuy(face.getScenicId(), face.getMemberId(), face.getId(), 5, record.getTemplateId()); - if (isBuyRespVO.isBuy()) { + IsBuyRespVO isBuyScenic = orderBiz.isBuy(face.getScenicId(), face.getMemberId(), face.getId(), 5, face.getScenicId()); + if (isBuyScenic.isBuy()) { vo.setIsBuy(1); } else { - vo.setIsBuy(0); - PriceCalculationRequest calculationRequest = new PriceCalculationRequest(); - ProductItem productItem = new ProductItem(); - productItem.setProductType(ProductType.PHOTO_LOG); - productItem.setProductId(record.getTemplateId().toString()); - productItem.setPurchaseCount(1); - productItem.setScenicId(face.getScenicId().toString()); - calculationRequest.setProducts(Collections.singletonList(productItem)); - calculationRequest.setUserId(face.getMemberId()); - calculationRequest.setFaceId(record.getFaceId()); - calculationRequest.setPreviewOnly(true); // 仅查询价格,不实际使用优惠 - PriceCalculationResult calculationResult = iPriceCalculationService.calculatePrice(calculationRequest); - if (calculationResult.getFinalAmount().compareTo(BigDecimal.ZERO) > 0) { - vo.setFreeCount(0); + IsBuyRespVO isBuyRespVO = orderBiz.isBuy(face.getScenicId(), face.getMemberId(), face.getId(), 5, record.getTemplateId()); + if (isBuyRespVO.isBuy()) { + vo.setIsBuy(1); } else { - vo.setFreeCount(1); + vo.setIsBuy(0); + PriceCalculationRequest calculationRequest = new PriceCalculationRequest(); + ProductItem productItem = new ProductItem(); + productItem.setProductType(ProductType.PHOTO_LOG); + productItem.setProductId(record.getTemplateId().toString()); + productItem.setPurchaseCount(1); + productItem.setScenicId(face.getScenicId().toString()); + calculationRequest.setProducts(Collections.singletonList(productItem)); + calculationRequest.setUserId(face.getMemberId()); + calculationRequest.setFaceId(record.getFaceId()); + calculationRequest.setPreviewOnly(true); // 仅查询价格,不实际使用优惠 + PriceCalculationResult calculationResult = iPriceCalculationService.calculatePrice(calculationRequest); + if (calculationResult.getFinalAmount().compareTo(BigDecimal.ZERO) > 0) { + vo.setFreeCount(0); + } else { + vo.setFreeCount(1); + } } } return vo; 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 dc9920c4..47a2c607 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 @@ -502,11 +502,16 @@ public class FaceServiceImpl implements FaceService { sfpContent.setGoodsType(3); sfpContent.setSort(0); if (optionalRecord.isPresent()) { - IsBuyRespVO isBuyRespVO = orderBiz.isBuy(face.getScenicId(), face.getMemberId(), faceId, 5, optionalRecord.get().getTemplateId()); - if (isBuyRespVO.isBuy()) { + IsBuyRespVO isBuyScenic = orderBiz.isBuy(face.getScenicId(), face.getMemberId(), faceId, 5, face.getScenicId()); + if (isBuyScenic.isBuy()) { sfpContent.setIsBuy(1); } else { - sfpContent.setIsBuy(0); + IsBuyRespVO isBuyRespVO = orderBiz.isBuy(face.getScenicId(), face.getMemberId(), faceId, 5, optionalRecord.get().getTemplateId()); + if (isBuyRespVO.isBuy()) { + sfpContent.setIsBuy(1); + } else { + sfpContent.setIsBuy(0); + } } } PriceCalculationRequest calculationRequest = new PriceCalculationRequest();