From 42000df31112c2093ca951598629ee15cf1169c9 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 9 Jan 2026 22:43:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E6=B7=BB=E5=8A=A0=E7=85=A7?= =?UTF-8?q?=E7=89=87=E6=97=A5=E8=AE=B0=E4=BA=A7=E5=93=81=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=9A=84=E4=BB=B7=E6=A0=BC=E8=AE=A1=E7=AE=97=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 case 5 分支处理照片日记产品类型 - 创建 PhotoLog 产品的价格计算请求对象 - 设置产品类型为 PHOTO_LOG 并配置相关参数 - 调用价格计算服务获取最终价格和原价 - 设置价格对象的 faceId 和 scenicId 字段 - 实现仅查询价格不使用优惠的预览模式 --- .../java/com/ycwl/basic/biz/OrderBiz.java | 29 +++++++++++++++++-- .../service/mobile/impl/GoodsServiceImpl.java | 2 +- .../service/pc/impl/OrderServiceImpl.java | 2 +- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ycwl/basic/biz/OrderBiz.java b/src/main/java/com/ycwl/basic/biz/OrderBiz.java index 530fc054..a3fc6ed7 100644 --- a/src/main/java/com/ycwl/basic/biz/OrderBiz.java +++ b/src/main/java/com/ycwl/basic/biz/OrderBiz.java @@ -67,7 +67,7 @@ public class OrderBiz { @Autowired private IPriceCalculationService iPriceCalculationService; - public PriceObj queryPrice(Long scenicId, int goodsType, Long goodsId) { + public PriceObj queryPrice(Long scenicId, Long memberId, int goodsType, Long goodsId) { PriceObj priceObj = new PriceObj(); priceObj.setGoodsType(goodsType); priceObj.setGoodsId(goodsId); @@ -99,8 +99,10 @@ public class OrderBiz { vlogProductItem.setQuantity(videoTaskRepository.getTaskLensNum(video.getTaskId())); vlogProductItem.setScenicId(scenicId.toString()); vlogCalculationRequest.setProducts(Collections.singletonList(vlogProductItem)); + vlogCalculationRequest.setUserId(memberId); vlogCalculationRequest.setFaceId(priceObj.getFaceId()); vlogCalculationRequest.setPreviewOnly(true); // 仅查询价格,不实际使用优惠 + vlogCalculationRequest.setAutoUseCoupon(true); PriceCalculationResult vlogCalculationResult = iPriceCalculationService.calculatePrice(vlogCalculationRequest); priceObj.setPrice(vlogCalculationResult.getFinalAmount()); priceObj.setSlashPrice(vlogCalculationResult.getOriginalAmount()); @@ -120,13 +122,33 @@ public class OrderBiz { if (face != null) { calculationRequest.setUserId(face.getMemberId()); } + calculationRequest.setUserId(memberId); calculationRequest.setFaceId(goodsId); calculationRequest.setPreviewOnly(true); // 仅查询价格,不实际使用优惠 + calculationRequest.setAutoUseCoupon(true); PriceCalculationResult priceCalculationResult = iPriceCalculationService.calculatePrice(calculationRequest); priceObj.setPrice(priceCalculationResult.getFinalAmount()); priceObj.setSlashPrice(priceCalculationResult.getOriginalAmount()); priceObj.setFaceId(goodsId); break; + case 5: + PriceCalculationRequest plogCalculationRequest = new PriceCalculationRequest(); + ProductItem plogProductItem = new ProductItem(); + plogProductItem.setProductType(ProductType.PHOTO_LOG); + plogProductItem.setProductId(scenicId.toString()); + plogProductItem.setPurchaseCount(1); + plogProductItem.setScenicId(scenicId.toString()); + plogCalculationRequest.setProducts(Collections.singletonList(plogProductItem)); + plogCalculationRequest.setUserId(memberId); + plogCalculationRequest.setFaceId(goodsId); + plogCalculationRequest.setPreviewOnly(true); // 仅查询价格,不实际使用优惠 + plogCalculationRequest.setAutoUseCoupon(true); + PriceCalculationResult plogPriceCalculationResult = iPriceCalculationService.calculatePrice(plogCalculationRequest); + priceObj.setPrice(plogPriceCalculationResult.getFinalAmount()); + priceObj.setSlashPrice(plogPriceCalculationResult.getOriginalAmount()); + priceObj.setFaceId(goodsId); + priceObj.setScenicId(scenicId); + break; case 13: PriceCalculationRequest aiCamCalculationRequest = new PriceCalculationRequest(); ProductItem aiCamProductItem = new ProductItem(); @@ -135,7 +157,10 @@ public class OrderBiz { aiCamProductItem.setPurchaseCount(1); aiCamProductItem.setScenicId(scenicId.toString()); aiCamCalculationRequest.setProducts(Collections.singletonList(aiCamProductItem)); + aiCamCalculationRequest.setUserId(memberId); + aiCamCalculationRequest.setFaceId(goodsId); aiCamCalculationRequest.setPreviewOnly(true); // 仅查询价格,不实际使用优惠 + aiCamCalculationRequest.setAutoUseCoupon(true); PriceCalculationResult aiCamPriceCalculationResult = iPriceCalculationService.calculatePrice(aiCamCalculationRequest); priceObj.setPrice(aiCamPriceCalculationResult.getFinalAmount()); priceObj.setSlashPrice(aiCamPriceCalculationResult.getOriginalAmount()); @@ -190,7 +215,7 @@ public class OrderBiz { } } } - PriceObj priceObj = queryPrice(scenicId, goodsType, goodsId); + PriceObj priceObj = queryPrice(scenicId, memberId, goodsType, goodsId); if (priceObj == null) { return respVO; } diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java index 76c7f9fe..dc2fc073 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java @@ -229,7 +229,7 @@ public class GoodsServiceImpl implements GoodsService { isBuy = orderRepository.checkUserBuyFaceItem(userId, entity.getFaceId(), -1, entity.getTemplateId()); } if (!isBuy) { - PriceObj priceObj = orderBiz.queryPrice(video.getScenicId(), 0, videoId); + PriceObj priceObj = orderBiz.queryPrice(video.getScenicId(), userId, 0, videoId); if (priceObj.isFree()) { goodsDetailVO.setIsBuy(1); } else { diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java index c8003324..702e2423 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java @@ -757,7 +757,7 @@ public class OrderServiceImpl implements OrderService { order.setOpenId(member.getOpenId()); order.setScenicId(createOrderReqVO.getScenicId()); - PriceObj priceObj = orderBiz.queryPrice(order.getScenicId(), createOrderReqVO.getGoodsType(), createOrderReqVO.getGoodsId()); + PriceObj priceObj = orderBiz.queryPrice(order.getScenicId(), member.getId(), createOrderReqVO.getGoodsType(), createOrderReqVO.getGoodsId()); order.setSlashPrice(priceObj.getSlashPrice()); order.setPrice(priceObj.getPrice()); // 判断是否是本人数据