Ver código fonte

商品购买bug修改

zouxuan 4 anos atrás
pai
commit
b817f30773

+ 9 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -868,22 +868,22 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
                 if (addTotalPrice != null && addTotalPrice.doubleValue() > 0l) {
                     //如果是最后一件商品
                     if (i == integers.size() - 1) {
-                        sellDto.setGoodsPrice(sellDto.getTotalGoodsPrice().add(usableParentGoodsAddTotalPrice));
+                        sellDto.setTotalGoodsPrice(sellDto.getTotalGoodsPrice().add(usableParentGoodsAddTotalPrice));
                     } else {
                         //获取分配的附加
                         BigDecimal multiply = ratioAmount.multiply(addTotalPrice).setScale(2, BigDecimal.ROUND_HALF_UP);
-                        sellDto.setGoodsPrice(sellDto.getTotalGoodsPrice().add(multiply));
+                        sellDto.setTotalGoodsPrice(sellDto.getTotalGoodsPrice().add(multiply));
                         usableParentGoodsAddTotalPrice = usableParentGoodsAddTotalPrice.subtract(multiply);
                     }
                     sellDto.setGoodsPrice(sellDto.getTotalGoodsPrice());
                 } else if (cutTotalPrice != null && cutTotalPrice.doubleValue() > 0l) {
                     //如果是最后一件商品
                     if (i == integers.size() - 1) {
-                        sellDto.setGoodsPrice(sellDto.getTotalGoodsPrice().subtract(usableParentGoodsCutTotalPrice));
+                        sellDto.setTotalGoodsPrice(sellDto.getTotalGoodsPrice().subtract(usableParentGoodsCutTotalPrice));
                     } else {
                         //获取分配的组合减免金额
                         BigDecimal multiply = ratioAmount.multiply(cutTotalPrice).setScale(2, BigDecimal.ROUND_HALF_UP);
-                        sellDto.setGoodsPrice(sellDto.getTotalGoodsPrice().subtract(multiply));
+                        sellDto.setTotalGoodsPrice(sellDto.getTotalGoodsPrice().subtract(multiply));
                         usableParentGoodsCutTotalPrice = usableParentGoodsCutTotalPrice.subtract(multiply);
                     }
                     sellDto.setGoodsPrice(sellDto.getTotalGoodsPrice());
@@ -918,22 +918,24 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             BigDecimal multiply2 = goodsSellDto.getGoodsPrice().multiply(new BigDecimal(sellOrder.getNum()));
             //获取比例
             BigDecimal ratioAmount = multiply2.divide(totalAmount, 6, BigDecimal.ROUND_HALF_UP);
+            //实际支付价格
+            BigDecimal actualAmount = goodsSellDto.getGoodsPrice();
             //如果有减免金额
             if (marketAmount.doubleValue() > 0l) {
                 //如果是最后一件商品
                 if (i == sellOrderList.size() - 1) {
-                    goodsSellDto.setGoodsPrice(multiply2.subtract(usableMarketAmount));
+                    actualAmount = multiply2.subtract(usableMarketAmount);
                 } else {
                     //获取分配的减免金额
                     BigDecimal multiply = ratioAmount.multiply(marketAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    goodsSellDto.setGoodsPrice(multiply2.subtract(multiply));
+                    actualAmount = multiply2.subtract(multiply);
                     usableMarketAmount = usableMarketAmount.subtract(multiply);
                 }
             }
 
             //如果没有使用余额,那么实际金额和预计金额一致
             if (balancePaymentAmount.doubleValue() == 0l) {
-                sellOrder.setActualAmount(goodsSellDto.getGoodsPrice());
+                sellOrder.setActualAmount(actualAmount);
                 sellOrder.setBalanceAmount(BigDecimal.ZERO);
             } else {
                 //如果是最后一件商品