Bladeren bron

修改精度运算

jk-GitHub-coder 4 jaren geleden
bovenliggende
commit
f9c144917d
1 gewijzigde bestanden met toevoegingen van 5 en 4 verwijderingen
  1. 5 4
      YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

+ 5 - 4
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -345,11 +345,11 @@ public class PayOrderController {
                     //优惠价(销售价)
                     if(params.containsKey("settlementPrice") && params.get("settlementPrice").toString() !=null && params.get("settlementPrice").toString() !=""){
                         sellPrice = oilPrice.subtract(new BigDecimal(params.get("settlementPrice").toString()));
-                        sellAmt = new BigDecimal(params.get("settlementPrice").toString()).multiply(oilLiters); //优惠
+                        sellAmt = sellPrice.multiply(oilLiters); //优惠价实付金额
                         sellDiscountAmt = receivableAmt.subtract(sellAmt);
                         sellDiscountAmt = sellDiscountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-                        sellSumAmt = sellDiscountAmt;
-                        sellSumDiscount = sellAmt;
+                        sellSumAmt = sellAmt;               //优惠价实付金额
+                        sellSumDiscount = sellDiscountAmt;  //优惠价优惠金额
                     }
                     break;
                 case "2":   //折扣
@@ -369,7 +369,8 @@ public class PayOrderController {
         if(params.containsKey("driverPrice") && params.get("driverPrice").toString() !=null && params.get("driverPrice").toString() !=""){
             //司机价
             discountPrice = sellPrice.multiply(new BigDecimal(params.get("driverPrice").toString())).divide(new BigDecimal("100"));
-            amt = oilLiters.toString().equals("0.00")? new BigDecimal("0.01") : discountPrice.multiply(oilLiters);
+            //amt = oilLiters.toString().equals("0.00")? new BigDecimal("0.01") : discountPrice.multiply(oilLiters);
+            amt = sellSumAmt.multiply(new BigDecimal(params.get("driverPrice").toString())).divide(new BigDecimal("100"));
             //amt = discountPrice.multiply(oilLiters);    //二次折扣优惠金额
             //amt.setScale(2, BigDecimal.ROUND_HALF_UP);
             discountAmt = receivableAmt.subtract(amt);