You've already forked FrameTour-BE
feat(order): 添加照片日记产品类型的价格计算支持
- 新增 case 5 分支处理照片日记产品类型 - 创建 PhotoLog 产品的价格计算请求对象 - 设置产品类型为 PHOTO_LOG 并配置相关参数 - 调用价格计算服务获取最终价格和原价 - 设置价格对象的 faceId 和 scenicId 字段 - 实现仅查询价格不使用优惠的预览模式
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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());
|
||||
// 判断是否是本人数据
|
||||
|
||||
Reference in New Issue
Block a user