mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
新增优惠活动异常修复、软件购买计算赠送时间使用优惠活动的时长和单位完全匹配
This commit is contained in:
+4
-4
@@ -63,8 +63,8 @@ public class ProductPromotionServiceImpl implements ProductPromotionService {
|
||||
AssertUtils.empty(productPromotionDO, PRODUCT_PROMOTION_PURCHASEDURATION_IS_EXIST, createReqVO.getPurchaseDuration(), DurationUnitEnum.getDesc(createReqVO.getPurchaseDurationUnit()));
|
||||
|
||||
ProductPromotionDO promotionDO = BeanUtils.toBean(createReqVO, ProductPromotionDO.class);
|
||||
productPromotionDO.setProductId(productsDO.getId());
|
||||
productPromotionDO.setProductName(productsDO.getProductName());
|
||||
promotionDO.setProductId(productsDO.getId());
|
||||
promotionDO.setProductName(productsDO.getProductName());
|
||||
productPromotionMapper.insert(promotionDO);
|
||||
return promotionDO.getId();
|
||||
}
|
||||
@@ -95,8 +95,8 @@ public class ProductPromotionServiceImpl implements ProductPromotionService {
|
||||
AssertUtils.empty(productPromotionDO, PRODUCT_PROMOTION_PURCHASEDURATION_IS_EXIST, updateReqVO.getPurchaseDuration(), DurationUnitEnum.getDesc(updateReqVO.getPurchaseDurationUnit()));
|
||||
|
||||
ProductPromotionDO promotionDO = BeanUtils.toBean(updateReqVO, ProductPromotionDO.class);
|
||||
productPromotionDO.setProductId(productsDO.getId());
|
||||
productPromotionDO.setProductName(productsDO.getProductName());
|
||||
promotionDO.setProductId(productsDO.getId());
|
||||
promotionDO.setProductName(productsDO.getProductName());
|
||||
productPromotionMapper.updateById(promotionDO);
|
||||
|
||||
}
|
||||
|
||||
+1
-9
@@ -288,6 +288,7 @@ public class PayProductProcessorNew {
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算优惠活动赠送时长
|
||||
*
|
||||
* @param duration
|
||||
* @param durationUnit
|
||||
@@ -297,15 +298,6 @@ public class PayProductProcessorNew {
|
||||
.filter(p -> duration.equals(p.getPurchaseDuration()) && durationUnit.equals(p.getPurchaseDurationUnit()))
|
||||
.findFirst();
|
||||
|
||||
if (availableProductPromotionOpt.isEmpty()) {
|
||||
// 没有精确匹配时,找同单位中 purchaseDuration 与 duration 差值最小的
|
||||
availableProductPromotionOpt = availableProductPromotionList.stream()
|
||||
.filter(p -> durationUnit.equals(p.getPurchaseDurationUnit()))
|
||||
.min(Comparator.comparing(p -> BigDecimal.valueOf(
|
||||
Math.abs(p.getPurchaseDuration() - duration))
|
||||
));
|
||||
}
|
||||
|
||||
if (availableProductPromotionOpt.isPresent()) {
|
||||
ProductPromotionDO productPromotionDO = availableProductPromotionOpt.get();
|
||||
productPromotionId = productPromotionDO.getId();
|
||||
|
||||
Reference in New Issue
Block a user