Browse Source

fix:重新计算活动价

lhm 3 years ago
parent
commit
2540fad620

+ 27 - 2
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -4170,12 +4170,32 @@ public class OrderServiceImpl implements OrderService {
         BigDecimal orderTotalPrice = BigDecimal.ZERO;
         List<QueryGoodsVO> goodsVos = new ArrayList<>();
         for (GoodsDetailsDto good : goodsDetailsDtos) {
+            // 清空上一次计算活动价格的相关信息
+            BigDecimal deductionPrice = good.getDeductionPrice();
+            if (Objects.nonNull(deductionPrice)) {
+                good.setDeductionPrice(null);
+            }
+            Integer deductionScore = good.getDeductionScore();
+            if (Objects.nonNull(deductionScore)) {
+                good.setDeductionScore(null);
+            }
+            BigDecimal discountedPrice = good.getDiscountedPrice();
+            if (Objects.nonNull(discountedPrice)) {
+                good.setDiscountedPrice(null);
+            }
+            String activity = good.getActivity();
+            if (Objects.nonNull(activity)) {
+                good.setActivity(null);
+            }
+            BigDecimal actualPaymentAmount = good.getActualPaymentAmount();
+            good.setActualPaymentAmount(good.getRetailPrice());
+
             QueryGoodsVO queryGoodsVo = new QueryGoodsVO();
             BeanUtils.copyProperties(good, queryGoodsVo);
             queryGoodsVo.setSku(good.getGoodsSn());
             queryGoodsVo.setStoreId(Long.parseLong(storeId));
             queryGoodsVo.setDisCountedPrice(BigDecimal.ZERO);
-            queryGoodsVo.setTotalPrice(good.getActualPaymentAmount());
+            queryGoodsVo.setTotalPrice(actualPaymentAmount);
             orderTotalPrice = orderTotalPrice.add(good.getRetailPrice());
             goodsVos.add(queryGoodsVo);
         }
@@ -4278,7 +4298,7 @@ public class OrderServiceImpl implements OrderService {
                             goodsDetailsDto.setGoodstaxes(String.valueOf(tax.multiply(new BigDecimal(goodsDetailsDto.getSellVolume()))));
                             goodsDetailsDto.setActivity(Constants.ActivityTopicEnum.LSCX.getTopicName());
                             goodsDetailsDto.setDiscountedPrice(retailPrice.subtract(activityPrice));
-                            goodsDetailsDto.setDeductionPrice(retailPrice.subtract(activityPrice));
+                            goodsDetailsDto.setDeductionPrice(null);
                             activityFlag.set(false);
                             promotionActivityFlag.set(true);
                         }
@@ -4320,6 +4340,7 @@ public class OrderServiceImpl implements OrderService {
                                     goodsDetailsDto.setActivity(Constants.ActivityTopicEnum.MZ.getTopicName());
                                     goodsDetailsDto.setGiftNumber(mkActivitiesFullGiftEntity.getGiftNumber());
                                     goodsDetailsDto.setDiscountedPrice(goodsEntity.getRetailPrice());
+                                    goodsDetailsDto.setDeductionPrice(null);
                                     // 添加进商品详情列表
                                     goodsDetailsDtos.add(goodsDetailsDto);
                                     activityFlag.set(false);
@@ -4352,6 +4373,7 @@ public class OrderServiceImpl implements OrderService {
                                     goodsDetailsDto.setActivity(Constants.ActivityTopicEnum.MZ.getTopicName());
                                     goodsDetailsDto.setGiftNumber(mkActivitiesFullGiftEntity.getGiftNumber());
                                     goodsDetailsDto.setDiscountedPrice(goodsEntity.getRetailPrice());
+                                    goodsDetailsDto.setDeductionPrice(null);
                                     // 添加进商品详情列表
                                     goodsDetailsDtos.add(goodsDetailsDto);
                                     activityFlag.set(false);
@@ -4408,6 +4430,7 @@ public class OrderServiceImpl implements OrderService {
                                     goodsDetailsDto.setGoodstaxes(String.valueOf(tax.multiply(new BigDecimal(goodsDetailsDto.getSellVolume()))));
                                     goodsDetailsDto.setActivity(Constants.ActivityTopicEnum.YHQ.getTopicName());
                                     goodsDetailsDto.setDiscountedPrice(retailPrice.subtract(discountAfterPrice));
+                                    goodsDetailsDto.setDeductionPrice(null);
                                     goodsDetailsDtos.add(goodsDetailsDto);
                                     activityFlag.set(false);
                                 }
@@ -4436,6 +4459,7 @@ public class OrderServiceImpl implements OrderService {
                                     goodsDetailsDto.setGoodstaxes(String.valueOf(tax.multiply(new BigDecimal(goodsDetailsDto.getSellVolume()))));
                                     goodsDetailsDto.setActivity(Constants.ActivityTopicEnum.YHQ.getTopicName());
                                     goodsDetailsDto.setDiscountedPrice(retailPrice.subtract(discountAfterPrice));
+                                    goodsDetailsDto.setDeductionPrice(null);
                                     goodsDetailsDtos.add(goodsDetailsDto);
                                     activityFlag.set(false);
                                 }
@@ -4465,6 +4489,7 @@ public class OrderServiceImpl implements OrderService {
                                         goodsDetailsDto.setGoodstaxes(String.valueOf(tax.multiply(new BigDecimal(goodsDetailsDto.getSellVolume()))));
                                         goodsDetailsDto.setActivity(Constants.ActivityTopicEnum.YHQ.getTopicName());
                                         goodsDetailsDto.setDiscountedPrice(retailPrice.subtract(discountAfterPrice));
+                                        goodsDetailsDto.setDeductionPrice(null);
                                         goodsDetailsDtos.add(goodsDetailsDto);
                                         activityFlag.set(false);
                                     }