|
|
@@ -262,8 +262,8 @@ public abstract class AbstractCreateOrderService implements ICreateOrderService
|
|
|
continue;
|
|
|
}
|
|
|
BigDecimal totalGiveBackPoint = shopOrderDetailBo.getPaymentAmount().multiply(shopOrderDetailBo.getGivePointRate()).multiply(shopOrderBo.getPointsToCashRatio());
|
|
|
- shopOrderDetailBo.setTotalGiveBackPoint(totalGiveBackPoint.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
|
|
|
- shopOrderDetailBo.setGiveBackPoint(shopOrderDetailBo.getTotalGiveBackPoint().divide(new BigDecimal(shopOrderDetailBo.getProductNum()), 2, RoundingMode.HALF_UP));
|
|
|
+ shopOrderDetailBo.setTotalGiveBackPoint(MathUtils.divide(totalGiveBackPoint,BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN));
|
|
|
+ shopOrderDetailBo.setGiveBackPoint(MathUtils.divide(shopOrderDetailBo.getTotalGiveBackPoint(),new BigDecimal(shopOrderDetailBo.getProductNum()), 2, BigDecimal.ROUND_DOWN));
|
|
|
}
|
|
|
}
|
|
|
shopOrderBo.setGivePoint(shopOrderDetailBoList.stream().map(ShopOrderDetailBo::getTotalGiveBackPoint).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
@@ -299,8 +299,7 @@ public abstract class AbstractCreateOrderService implements ICreateOrderService
|
|
|
|
|
|
if (integralAble.compareTo(needMaxPoints) < 0) {
|
|
|
needMaxPoints = integralAble;
|
|
|
- maxDeduction = needMaxPoints.divide(shopOrderBo.getPointsToCashRatio(),2, RoundingMode.HALF_UP);
|
|
|
-
|
|
|
+ maxDeduction = MathUtils.divide(maxDeduction,shopOrderBo.getPointsToCashRatio(), 2, BigDecimal.ROUND_DOWN);
|
|
|
cashToPointsRatio = MathUtils.setScale(maxDeduction.doubleValue()*100/totalProductAmount.doubleValue());
|
|
|
}
|
|
|
shopOrderBo.setPaymentPoints(needMaxPoints);
|