|
@@ -147,6 +147,7 @@ public class PayOrderController {
|
|
|
payOrder.setDiscountAmt(Double.valueOf(payOrderResultInfo.getDiscountAmt()));
|
|
|
payOrder.setAmt(Double.valueOf(payOrderResultInfo.getAmt()));
|
|
|
resultMap.put("cardEnabledFlag", payOrderResultInfo.getCardEnabledFlag());
|
|
|
+ resultMap.put("oilsCardFlag", payOrderResultInfo.getOilsCardFlag());
|
|
|
resultMap.put("discountAmt", payOrderResultInfo.getDiscountAmt()); //优惠价格
|
|
|
resultMap.put("amt", payOrderResultInfo.getAmt()); //实收价格
|
|
|
resultMap.put("receivableAmt", payOrderResultInfo.getReceivableAmt()); //应收价格
|
|
@@ -279,14 +280,16 @@ public class PayOrderController {
|
|
|
payOrderResultInfo.setDzkAmt(amt.toString());
|
|
|
}else {
|
|
|
//如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额+等级优惠金额
|
|
|
- BigDecimal subtract = amt.add(gradeDiscountAmt);
|
|
|
- payOrderResultInfo.setDzkAmt(subtract.toString());
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
|
|
|
+ dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
+ payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
}
|
|
|
}else {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//如果电子卡设置不执行营销方案执行等级优惠 则 电子卡支付金额 =应收金额-等级优惠金额
|
|
|
- BigDecimal subtract = receivableAmt.subtract(gradeDiscountAmt);
|
|
|
- payOrderResultInfo.setDzkAmt(subtract.toString());
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(gradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
+ payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
}else {
|
|
|
payOrderResultInfo.setDzkAmt(receivableAmt.toString());
|
|
|
}
|
|
@@ -295,6 +298,7 @@ public class PayOrderController {
|
|
|
//查询客户余额和卡的类型
|
|
|
Map<String, String> map = this.selectCardBalance(Integer.valueOf(params.get("stationId").toString()), params.get("cardOilsType").toString(), params.get("unionId").toString());
|
|
|
payOrderResultInfo.setBalance(map.get("balance"));
|
|
|
+ payOrderResultInfo.setOilsCardFlag(map.get("oilsCardFlag"));
|
|
|
payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
|
|
|
}
|
|
|
return payOrderResultInfo;
|
|
@@ -326,8 +330,8 @@ public class PayOrderController {
|
|
|
String vipDiscountyPlus = customerMarkertPlanList.get(0).get("vipDiscountyPlus").toString();
|
|
|
if(vipDiscountyPlus.equals("1")){
|
|
|
PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
- gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
|
|
|
- discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
+ gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt()); //等级优惠金额
|
|
|
+ discountAmt = discountAmt.add(gradeDiscountAmt); //总优惠
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -355,14 +359,16 @@ public class PayOrderController {
|
|
|
payOrderResultInfo.setDzkAmt(amt.toString());
|
|
|
}else {
|
|
|
//如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额+等级优惠金额
|
|
|
- BigDecimal subtract = amt.add(gradeDiscountAmt);
|
|
|
- payOrderResultInfo.setDzkAmt(subtract.toString());
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
|
|
|
+ dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
+ payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
}
|
|
|
}else {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//如果电子卡设置不执行营销方案执行等级优惠 则 电子卡支付金额 =应收金额-等级优惠金额
|
|
|
- BigDecimal subtract = receivableAmt.subtract(gradeDiscountAmt);
|
|
|
- payOrderResultInfo.setDzkAmt(subtract.toString());
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(gradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
+ payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
}else {
|
|
|
payOrderResultInfo.setDzkAmt(receivableAmt.toString());
|
|
|
}
|
|
@@ -371,6 +377,7 @@ public class PayOrderController {
|
|
|
//查询客户余额和卡的类型
|
|
|
Map<String, String> map = this.selectCardBalance(Integer.valueOf(params.get("stationId").toString()), params.get("cardOilsType").toString(), params.get("unionId").toString());
|
|
|
payOrderResultInfo.setBalance(map.get("balance"));
|
|
|
+ payOrderResultInfo.setOilsCardFlag(map.get("oilsCardFlag"));
|
|
|
payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
|
|
|
}
|
|
|
return payOrderResultInfo;
|
|
@@ -432,14 +439,16 @@ public class PayOrderController {
|
|
|
payOrderResultInfo.setDzkAmt(amt.toString());
|
|
|
}else {
|
|
|
//如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额+等级优惠金额
|
|
|
- BigDecimal subtract = amt.add(gradeDiscountAmt);
|
|
|
- payOrderResultInfo.setDzkAmt(subtract.toString());
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
|
|
|
+ dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
+ payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
}
|
|
|
}else {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//如果电子卡设置不执行营销方案执行等级优惠 则 电子卡支付金额 =应收金额-等级优惠金额
|
|
|
- BigDecimal subtract = receivableAmt.subtract(gradeDiscountAmt);
|
|
|
- payOrderResultInfo.setDzkAmt(subtract.toString());
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(gradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
+ payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
}else {
|
|
|
payOrderResultInfo.setDzkAmt(receivableAmt.toString());
|
|
|
}
|
|
@@ -448,6 +457,7 @@ public class PayOrderController {
|
|
|
//查询客户余额和卡的类型
|
|
|
Map<String, String> map = this.selectCardBalance(Integer.valueOf(params.get("stationId").toString()), params.get("cardOilsType").toString(), params.get("unionId").toString());
|
|
|
payOrderResultInfo.setBalance(map.get("balance"));
|
|
|
+ payOrderResultInfo.setOilsCardFlag(map.get("oilsCardFlag"));
|
|
|
payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
|
|
|
}
|
|
|
return payOrderResultInfo;
|
|
@@ -521,6 +531,7 @@ public class PayOrderController {
|
|
|
//查询客户余额和卡的类型
|
|
|
Map<String, String> map = this.selectCardBalance(Integer.valueOf(params.get("stationId").toString()), params.get("cardOilsType").toString(), params.get("unionId").toString());
|
|
|
payOrderResultInfo.setBalance(map.get("balance"));
|
|
|
+ payOrderResultInfo.setOilsCardFlag(map.get("oilsCardFlag"));
|
|
|
payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
|
|
|
}
|
|
|
return payOrderResultInfo;
|
|
@@ -540,7 +551,10 @@ public class PayOrderController {
|
|
|
balance = electronicCardInfo.getAmt();
|
|
|
cardOilsType1 = electronicCardInfo.getCardOilsType();
|
|
|
result.put("balance",balance.toString());
|
|
|
+ result.put("oilsCardFlag", "1");
|
|
|
result.put("cardOilsType",cardOilsType1);
|
|
|
+ }else {
|
|
|
+ result.put("oilsCardFlag", "0");
|
|
|
}
|
|
|
return result;
|
|
|
}
|