|
@@ -233,7 +233,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
|
|
|
//如果是虚拟商品,则用自己的编写的程序返回
|
|
|
if (Objects.equals(settlementReqVO.getDeliveryType(), VIRTUAL_PRODUCT.getType())) {
|
|
|
- return getSettlement(address,settlementReqVO.getItems());
|
|
|
+ return getSettlement(address, settlementReqVO.getItems());
|
|
|
}
|
|
|
|
|
|
// add by Ben 20240314
|
|
@@ -452,8 +452,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
shopRespVOMap.put(shopId, respVO2);
|
|
|
shopCalculateRespBO.setVirtualPayPrice(sku.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
|
|
|
shopCalculateRespBO.setVirtualTotalPrice(sku.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
|
|
|
- shopCalculateRespBO.setPayPrice((int)sku.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
|
|
|
- shopCalculateRespBO.setTotalPrice((int)sku.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
|
|
|
+ shopCalculateRespBO.setPayPrice((int) sku.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
|
|
|
+ shopCalculateRespBO.setTotalPrice((int) sku.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
|
|
|
}
|
|
|
|
|
|
//把重复的收货地址置为空
|
|
@@ -678,6 +678,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
TradeOrderDO order = buildTradeOrder(userId, shopCreateReqVO, calculateRespBO);
|
|
|
List<TradeOrderItemDO> orderItems = buildTradeOrderItems(order, calculateRespBO);
|
|
|
|
|
|
+ for (TradeOrderItemDO orderItem : orderItems) {
|
|
|
+ ProductSkuDO productSkuDO = productSkuMapper.selectById(orderItem.getSkuId());
|
|
|
+ orderItem.setHighPrecisionPrice(productSkuDO.getHighPrecisionPrice());
|
|
|
+ }
|
|
|
+
|
|
|
// 2. 订单创建前的逻辑
|
|
|
//修改sku库存
|
|
|
tradeProductSkuOrderHandler.beforeOrderCreate(order, orderItems);
|
|
@@ -696,7 +701,20 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
Long skuId = orderItem.getSkuId();
|
|
|
TradePriceCalculateRespBO.OrderItem orderItemTmp = itemPayPointsMap.get(skuId);
|
|
|
orderItem.setPayIntegral(orderItemTmp.getPayPoints()); //本商品使用积分
|
|
|
- Integer payRmb = orderItem.getPrice() * orderItem.getCount() - integral2Money(orderItemTmp.getPayPoints());//本商品实付人民币
|
|
|
+ Integer payRmb;
|
|
|
+ if (orderItem.getHighPrecisionPrice() == null) {
|
|
|
+ payRmb = orderItem.getPrice() * orderItem.getCount() - integral2Money(orderItemTmp.getPayPoints());//本商品实付人民币
|
|
|
+ } else {
|
|
|
+ double rmb = (orderItem.getHighPrecisionPrice().doubleValue() * orderItem.getCount()) - integral2Money(orderItemTmp.getPayPoints());
|
|
|
+ if (rmb > 0 && rmb < 1) {
|
|
|
+ payRmb = 1;
|
|
|
+ }else{
|
|
|
+ double multiplied = rmb * 10;
|
|
|
+ // 对乘以10后的数使用 Math.ceil() 向上取整
|
|
|
+ double roundedUp = Math.ceil(multiplied);
|
|
|
+ payRmb = (int)(roundedUp/10.0);
|
|
|
+ }
|
|
|
+ }
|
|
|
orderItem.setPayRmb(payRmb);//本商品实付人民币
|
|
|
orderItem.setPayPrice(payRmb);//本商品实付人民币
|
|
|
|
|
@@ -839,6 +857,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
|
|
|
/**
|
|
|
* 把商品的推广费总额,转换为消费者本人(直推人)、或消费者的推荐人 获得的冻结积分
|
|
|
+ *
|
|
|
* @param promotionExpenses 商品的推广费总额
|
|
|
* @param grossProfitPerc 推荐人/消费者本人额度 百分比
|
|
|
* @return 输入推广费,对应的直推人获得的冻结积分
|