diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java index edf39b7e5..61fef4b58 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java @@ -34,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; @@ -165,8 +166,15 @@ public class HardCarServiceImpl extends ServiceImpl ObjectUtil.equals(i.getId(), v.getProductId())).findFirst().ifPresent(spu -> { Integer price = getSupermarket(spu); - int itemTotalPrice = v.getProductCount() * price; - supermarketTotalPrice.addAndGet(itemTotalPrice); + if (ObjectUtil.isNotEmpty(v.getProductCount()) && !ObjectUtil.equals(v.getProductCount(), 0)) { + int itemTotalPrice = v.getProductCount() * price; + supermarketTotalPrice.addAndGet(itemTotalPrice); + } + if (ObjectUtil.isNotEmpty(v.getProductWeight()) && !ObjectUtil.equals(v.getProductWeight(), 0)) { + // 向上取整 + int itemTotalPrice = v.getProductWeight().multiply(BigDecimal.valueOf(price)).setScale(0, RoundingMode.CEILING).intValue(); + supermarketTotalPrice.addAndGet(itemTotalPrice); + } }); } yield supermarketTotalPrice.get(); @@ -301,6 +309,7 @@ public class HardCarServiceImpl extends ServiceImpl