jk-GitHub-coder 3 gadi atpakaļ
vecāks
revīzija
2c5e643526

+ 34 - 9
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -290,9 +290,14 @@ public class PayOrderController {
             if(result.containsKey("settlementPrice") && result.get("settlementPrice") !=null && result.get("settlementPrice").toString() !=""){
                 params.put("settlementPrice", result.get("settlementPrice").toString());
             }
+            //driverPriceType 司机价类型(1.直降,2.折扣);
+            if(result.containsKey("driverPriceType") && result.get("driverPriceType") !=null && result.get("driverPriceType").toString() !=""){
+                params.put("driverPriceType", result.get("driverPriceType").toString());
+            }
             if(result.containsKey("driverPrice") && result.get("driverPrice") !=null && result.get("driverPrice").toString() !=""){
                 params.put("driverPrice", result.get("driverPrice").toString());
             }
+
             payOrderResultInfo = this.calculateLngGroupStaDiscount(params);
 
         }else {
@@ -397,15 +402,35 @@ public class PayOrderController {
                     break;
             }
         }
-        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 = sellAmt.multiply(new BigDecimal(params.get("driverPrice").toString())).divide(new BigDecimal("100"));
-            //driverDiscountAmt = sellDiscountAmt.multiply(new BigDecimal("1").subtract(new BigDecimal(params.get("driverPrice").toString()).divide(new BigDecimal("100"))));
-            discountAmt = receivableAmt.subtract(amt);
-            driverDiscountAmt = discountAmt.subtract(sellDiscountAmt);
-            discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-            discountPrice = discountPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
+        //driverPriceType: 司机价类型(1.直降,2.折扣);
+        if(params.containsKey("driverPriceType") && params.get("driverPriceType") !=null && params.get("driverPriceType").toString() !=""){
+            String driverPriceType = params.get("driverPriceType").toString();
+            switch (driverPriceType){
+                case "1":
+                    if(params.containsKey("driverPrice") && params.get("driverPrice").toString() !=null && params.get("driverPrice").toString() !=""){
+                        //司机价
+                        discountPrice = sellPrice.subtract(new BigDecimal(params.get("driverPrice").toString())).divide(new BigDecimal("100"));
+                        amt = discountPrice.multiply(oilLiters);
+                        //driverDiscountAmt = sellDiscountAmt.multiply(new BigDecimal("1").subtract(new BigDecimal(params.get("driverPrice").toString()).divide(new BigDecimal("100"))));
+                        discountAmt = receivableAmt.subtract(amt);
+                        driverDiscountAmt = discountAmt.subtract(sellDiscountAmt);
+                        discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
+                        discountPrice = discountPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
+                    }
+                    break;
+                case "2":   //折扣
+                    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 = sellAmt.multiply(new BigDecimal(params.get("driverPrice").toString())).divide(new BigDecimal("100"));
+                        //driverDiscountAmt = sellDiscountAmt.multiply(new BigDecimal("1").subtract(new BigDecimal(params.get("driverPrice").toString()).divide(new BigDecimal("100"))));
+                        discountAmt = receivableAmt.subtract(amt);
+                        driverDiscountAmt = discountAmt.subtract(sellDiscountAmt);
+                        discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
+                        discountPrice = discountPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
+                    }
+                    break;
+            }
         }
         sellAmt =sellAmt.signum() == -1 ? new BigDecimal("0.01"): sellAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
         amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt.setScale(2, BigDecimal.ROUND_HALF_UP);

+ 1 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/Coupon.java

@@ -15,6 +15,7 @@ public class Coupon {
     private String couponName;              //优惠券名称;
     private String couponType;              //优惠券类型: 1现金劵,2折扣券,3兑换券;
     private BigDecimal couponThresholdAmt;  //优惠券使用门槛金额;
+    private String isMarketPlan;            //是否叠加营销方案;
     private String oilType;                 //1 柴油,2 汽油;
     private String couponAmt;               //优惠券优惠金额;
     private Integer couponNum;              //优惠券数量;

+ 1 - 0
YijiaRestful/src/main/resources/mapper/StationInfoMapper.xml

@@ -89,6 +89,7 @@
         T2.oil_price                 AS oilPrice,
         T4.settlement_type           AS settlementType,
         T4.settlement_price          AS settlementPrice,
+        T4.driver_price_type         AS driverPriceType,
         T4.driver_price              AS driverPrice
     FROM            sys_dept                AS T1
         LEFT JOIN   station_oil_price       AS T2 ON T1.dept_id = T2.station_id