mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 05:42:06 +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()));
|
AssertUtils.empty(productPromotionDO, PRODUCT_PROMOTION_PURCHASEDURATION_IS_EXIST, createReqVO.getPurchaseDuration(), DurationUnitEnum.getDesc(createReqVO.getPurchaseDurationUnit()));
|
||||||
|
|
||||||
ProductPromotionDO promotionDO = BeanUtils.toBean(createReqVO, ProductPromotionDO.class);
|
ProductPromotionDO promotionDO = BeanUtils.toBean(createReqVO, ProductPromotionDO.class);
|
||||||
productPromotionDO.setProductId(productsDO.getId());
|
promotionDO.setProductId(productsDO.getId());
|
||||||
productPromotionDO.setProductName(productsDO.getProductName());
|
promotionDO.setProductName(productsDO.getProductName());
|
||||||
productPromotionMapper.insert(promotionDO);
|
productPromotionMapper.insert(promotionDO);
|
||||||
return promotionDO.getId();
|
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()));
|
AssertUtils.empty(productPromotionDO, PRODUCT_PROMOTION_PURCHASEDURATION_IS_EXIST, updateReqVO.getPurchaseDuration(), DurationUnitEnum.getDesc(updateReqVO.getPurchaseDurationUnit()));
|
||||||
|
|
||||||
ProductPromotionDO promotionDO = BeanUtils.toBean(updateReqVO, ProductPromotionDO.class);
|
ProductPromotionDO promotionDO = BeanUtils.toBean(updateReqVO, ProductPromotionDO.class);
|
||||||
productPromotionDO.setProductId(productsDO.getId());
|
promotionDO.setProductId(productsDO.getId());
|
||||||
productPromotionDO.setProductName(productsDO.getProductName());
|
promotionDO.setProductName(productsDO.getProductName());
|
||||||
productPromotionMapper.updateById(promotionDO);
|
productPromotionMapper.updateById(promotionDO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-9
@@ -288,6 +288,7 @@ public class PayProductProcessorNew {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 计算优惠活动赠送时长
|
||||||
*
|
*
|
||||||
* @param duration
|
* @param duration
|
||||||
* @param durationUnit
|
* @param durationUnit
|
||||||
@@ -297,15 +298,6 @@ public class PayProductProcessorNew {
|
|||||||
.filter(p -> duration.equals(p.getPurchaseDuration()) && durationUnit.equals(p.getPurchaseDurationUnit()))
|
.filter(p -> duration.equals(p.getPurchaseDuration()) && durationUnit.equals(p.getPurchaseDurationUnit()))
|
||||||
.findFirst();
|
.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()) {
|
if (availableProductPromotionOpt.isPresent()) {
|
||||||
ProductPromotionDO productPromotionDO = availableProductPromotionOpt.get();
|
ProductPromotionDO productPromotionDO = availableProductPromotionOpt.get();
|
||||||
productPromotionId = productPromotionDO.getId();
|
productPromotionId = productPromotionDO.getId();
|
||||||
|
|||||||
Reference in New Issue
Block a user