|
@@ -541,6 +541,7 @@ public class PayOrderController {
|
|
|
String oilName = params.get("oilName").toString();
|
|
|
|
|
|
Oil oil = new Oil();
|
|
|
+ oil.setDictType("oil");
|
|
|
oil.setOilName(oilName);
|
|
|
Oil oilInfo = sysDictDataService.selectOilType(oil);
|
|
|
payOrderResultInfo.setCardOilsType(oilInfo.getOilsType());
|
|
@@ -1583,6 +1584,17 @@ public class PayOrderController {
|
|
|
discountAmtNew = discountAmtNew.add(couponAmt);
|
|
|
couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
|
|
|
couponReckonAmt.setAmt(amtNew.toString());
|
|
|
+ }else {
|
|
|
+ amtNew = new BigDecimal(receivableAmt).subtract(couponAmt);
|
|
|
+ amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(!oilLiters.equals("0.00")){
|
|
|
+ discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
|
+ discountAmtNew = new BigDecimal("0.00");
|
|
|
+ discountAmtNew = discountAmtNew.add(couponAmt);
|
|
|
+ couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
|
|
|
+ couponReckonAmt.setAmt(amtNew.toString());
|
|
|
}
|
|
|
}
|
|
|
if(p.getAllDiscountType().equals("2")){
|
|
@@ -1599,6 +1611,19 @@ public class PayOrderController {
|
|
|
couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
|
|
|
couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
|
couponReckonAmt.setAmt(amtNew.toString());
|
|
|
+ }else {
|
|
|
+ //优惠券后的优惠金额
|
|
|
+ amtNew = new BigDecimal(receivableAmt).subtract(couponAmt);
|
|
|
+ amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ //优惠券后的优惠价格
|
|
|
+ if(!oilLiters.equals("0.00")){
|
|
|
+ discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ discountAmtNew = new BigDecimal("0.00");
|
|
|
+ discountAmtNew = discountAmtNew.add(couponAmt);
|
|
|
+ couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
|
|
|
+ couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
|
+ couponReckonAmt.setAmt(amtNew.toString());
|
|
|
}
|
|
|
}
|
|
|
if(p.getCardEnabledFlag().equals("1")){
|
|
@@ -1613,6 +1638,18 @@ public class PayOrderController {
|
|
|
dzkDiscountPriceNew = dzkAmtNew.divide(new BigDecimal(oilLiters), 2 ,BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
couponReckonAmt.setDzkDiscountPrice(dzkDiscountPriceNew.toString());
|
|
|
+ }else {
|
|
|
+ //与电子卡共享
|
|
|
+ dzkAmtNew = new BigDecimal(receivableAmt).subtract(couponAmt);
|
|
|
+ dzkAmtNew = dzkAmtNew.signum() == -1 ? new BigDecimal("0.01") : dzkAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ dzkDiscountAmtNew = new BigDecimal("0.00");
|
|
|
+ dzkDiscountAmtNew = dzkDiscountAmtNew.add(couponAmt);
|
|
|
+ couponReckonAmt.setDzkDiscountAmt(dzkDiscountAmtNew.toString());
|
|
|
+ couponReckonAmt.setDzkAmt(dzkAmtNew.toString());
|
|
|
+ if(!oilLiters.equals("0.00")){
|
|
|
+ dzkDiscountPriceNew = dzkAmtNew.divide(new BigDecimal(oilLiters), 2 ,BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ couponReckonAmt.setDzkDiscountPrice(dzkDiscountPriceNew.toString());
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
@@ -1621,29 +1658,62 @@ public class PayOrderController {
|
|
|
//表示等级
|
|
|
if(uc.getIsGradeFlag().equals("1")){
|
|
|
//表示与等级共享
|
|
|
- amtNew = new BigDecimal(amt).multiply(couponAmt).divide(new BigDecimal("100"));
|
|
|
+ //优惠券折扣金额
|
|
|
+ BigDecimal zheKouAmt = new BigDecimal(amt).multiply(couponAmt).divide(new BigDecimal("100"));
|
|
|
+ discountAmtNew = discountAmtNew.add(zheKouAmt);
|
|
|
+ amtNew = amtNew.subtract(zheKouAmt);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
if(!oilLiters.equals("0.00")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
- discountAmtNew = new BigDecimal(receivableAmt).subtract(amtNew);
|
|
|
+ discountAmtNew = discountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
|
|
|
+ couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
|
+ couponReckonAmt.setAmt(amtNew.toString());
|
|
|
+ }else {
|
|
|
+ //优惠券折扣金额
|
|
|
+ BigDecimal zheKouAmt = new BigDecimal(receivableAmt).multiply(couponAmt).divide(new BigDecimal("100"));
|
|
|
+ discountAmtNew = new BigDecimal("0.00");
|
|
|
+ discountAmtNew = discountAmtNew.add(zheKouAmt);
|
|
|
+ amtNew = amtNew.subtract(discountAmtNew);
|
|
|
+ amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(!oilLiters.equals("0.00")){
|
|
|
+ discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ discountAmtNew = discountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
|
|
|
couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
|
couponReckonAmt.setAmt(amtNew.toString());
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
if(p.getAllDiscountType().equals("2")){
|
|
|
//表示营销
|
|
|
if(uc.getIsMarketFlag().equals("1")){
|
|
|
//优惠券后的优惠金额
|
|
|
- amtNew = new BigDecimal(amt).multiply(couponAmt).divide(new BigDecimal("100"));
|
|
|
+ BigDecimal zheKouAmt = new BigDecimal(amt).multiply(couponAmt).divide(new BigDecimal("100"));
|
|
|
+ discountAmtNew = discountAmtNew.add(zheKouAmt);
|
|
|
+ amtNew = amtNew.subtract(zheKouAmt);
|
|
|
+ amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ //优惠券后的优惠价格
|
|
|
+ if(!oilLiters.equals("0.00")){
|
|
|
+ discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ discountAmtNew = discountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
|
|
|
+ couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
|
+ couponReckonAmt.setAmt(amtNew.toString());
|
|
|
+ }else {
|
|
|
+ //优惠券后的优惠金额
|
|
|
+ BigDecimal zheKouAmt = new BigDecimal(receivableAmt).multiply(couponAmt).divide(new BigDecimal("100"));
|
|
|
+ discountAmtNew = new BigDecimal("0.00");
|
|
|
+ discountAmtNew = discountAmtNew.add(zheKouAmt);
|
|
|
+ amtNew = amtNew.subtract(discountAmtNew);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
//优惠券后的优惠价格
|
|
|
if(!oilLiters.equals("0.00")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
- discountAmtNew = new BigDecimal(receivableAmt).subtract(amtNew);
|
|
|
+ discountAmtNew = discountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
|
|
|
couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
|
couponReckonAmt.setAmt(amtNew.toString());
|
|
@@ -1652,9 +1722,26 @@ public class PayOrderController {
|
|
|
if(p.getCardEnabledFlag().equals("1")){
|
|
|
if(uc.getIsCardFlag().equals("1")){
|
|
|
//与电子卡共享
|
|
|
- dzkAmtNew = new BigDecimal(dzkAmt).multiply(couponAmt).divide(new BigDecimal("100"));
|
|
|
+ BigDecimal zheKouDzkAmt = new BigDecimal(dzkAmt).multiply(couponAmt).divide(new BigDecimal("100"));
|
|
|
+ dzkDiscountAmtNew = dzkDiscountAmtNew.add(zheKouDzkAmt);
|
|
|
+ //System.out.println("电子卡优惠金额:"+dzkDiscountAmtNew.toString());
|
|
|
+ dzkAmtNew = dzkAmtNew.subtract(zheKouDzkAmt);
|
|
|
+ dzkAmtNew = dzkAmtNew.signum() == -1 ? new BigDecimal("0.01") : dzkAmtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ dzkDiscountAmtNew = dzkDiscountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ couponReckonAmt.setDzkDiscountAmt(dzkDiscountAmtNew.toString());
|
|
|
+ couponReckonAmt.setDzkAmt(dzkAmtNew.toString());
|
|
|
+ if(!oilLiters.equals("0.00")){
|
|
|
+ dzkDiscountPriceNew = dzkAmtNew.divide(new BigDecimal(oilLiters), 2 ,BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ couponReckonAmt.setDzkDiscountPrice(dzkDiscountPriceNew.toString());
|
|
|
+ }else {
|
|
|
+ BigDecimal zheKouDzkAmt = new BigDecimal(receivableAmt).multiply(couponAmt).divide(new BigDecimal("100"));
|
|
|
+ dzkDiscountAmtNew = new BigDecimal("0.00");
|
|
|
+ dzkDiscountAmtNew = dzkDiscountAmtNew.add(zheKouDzkAmt);
|
|
|
+ //System.out.println("电子卡优惠金额:"+dzkDiscountAmtNew.toString());
|
|
|
+ dzkAmtNew = dzkAmtNew.subtract(dzkDiscountAmtNew);
|
|
|
dzkAmtNew = dzkAmtNew.signum() == -1 ? new BigDecimal("0.01") : dzkAmtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
- dzkDiscountAmtNew = new BigDecimal(receivableAmt).subtract(dzkAmtNew);
|
|
|
+ dzkDiscountAmtNew = dzkDiscountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
couponReckonAmt.setDzkDiscountAmt(dzkDiscountAmtNew.toString());
|
|
|
couponReckonAmt.setDzkAmt(dzkAmtNew.toString());
|
|
|
if(!oilLiters.equals("0.00")){
|