|
@@ -250,11 +250,15 @@ public class PayOrderController {
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
+ //计算等级优惠
|
|
|
+ PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
+ gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
|
|
|
String vipDiscountyPlus = customerMarkertPlanList.get(0).get("vipDiscountyPlus").toString();
|
|
|
- if(vipDiscountyPlus.equals("1")){
|
|
|
- PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
- discountAmt = discountAmt.add(new BigDecimal(payOrderResultInfoGrade.getDiscountAmt()));
|
|
|
+ if(!vipDiscountyPlus.equals("1")){
|
|
|
+ //如果不叠加等级优惠 则设置等级优惠赋值为0
|
|
|
+ gradeDiscountAmt = new BigDecimal(0);
|
|
|
}
|
|
|
+ discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
}
|
|
|
amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
@@ -277,12 +281,14 @@ public class PayOrderController {
|
|
|
String isMarket = cardRechargeSettingList.get(0).getIsMarket(); //等候否叠加营销方案
|
|
|
if(isMarket.equals("1")){
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
- payOrderResultInfo.setDzkAmt(amt.toString());
|
|
|
- }else {
|
|
|
- //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额+等级优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ }else {
|
|
|
+ //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(discountAmt);
|
|
|
+ dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
+ payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
}
|
|
|
}else {
|
|
|
if(isGradeSetting.equals("1")){
|
|
@@ -327,13 +333,15 @@ public class PayOrderController {
|
|
|
if(receivableAmt.compareTo(discountAmt_b) == 1 || receivableAmt.compareTo(discountAmt_b) == 0){
|
|
|
discountAmt = gasoilDiscountAmt_b;
|
|
|
}
|
|
|
+ //计算等级优惠
|
|
|
+ PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
+ gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
|
|
|
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); //总优惠
|
|
|
+ if(!vipDiscountyPlus.equals("1")){
|
|
|
+ //如果不叠加等级优惠 则设置等级优惠赋值为0
|
|
|
+ gradeDiscountAmt = new BigDecimal(0);
|
|
|
}
|
|
|
-
|
|
|
+ discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
}
|
|
|
amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
@@ -356,12 +364,14 @@ public class PayOrderController {
|
|
|
String isMarket = cardRechargeSettingList.get(0).getIsMarket(); //等候否叠加营销方案
|
|
|
if(isMarket.equals("1")){
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
- payOrderResultInfo.setDzkAmt(amt.toString());
|
|
|
- }else {
|
|
|
- //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额+等级优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ }else {
|
|
|
+ //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(discountAmt);
|
|
|
+ dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
+ payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
}
|
|
|
}else {
|
|
|
if(isGradeSetting.equals("1")){
|
|
@@ -408,12 +418,17 @@ public class PayOrderController {
|
|
|
discountAmt = receivableAmt.divide(discountAmt_b, 2, BigDecimal.ROUND_HALF_UP).multiply(gasoilDiscountAmt_b); //优惠金额
|
|
|
discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
+ //计算等级优惠
|
|
|
+ PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
+ gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
|
|
|
//是否共享会员等级优惠叠加: 1 代表是; 2 代表否;
|
|
|
String vipDiscountyPlus = customerMarkertPlanList.get(0).get("vipDiscountyPlus").toString();
|
|
|
- if(vipDiscountyPlus.equals("1")){
|
|
|
- PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
- discountAmt = discountAmt.add(new BigDecimal(payOrderResultInfoGrade.getDiscountAmt()));
|
|
|
+ if(!vipDiscountyPlus.equals("1")){
|
|
|
+ //如果不叠加等级优惠 则设置等级优惠赋值为0
|
|
|
+ gradeDiscountAmt = new BigDecimal(0);
|
|
|
}
|
|
|
+ discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
+
|
|
|
}
|
|
|
amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
@@ -436,12 +451,15 @@ public class PayOrderController {
|
|
|
String isMarket = cardRechargeSettingList.get(0).getIsMarket(); //等候否叠加营销方案
|
|
|
if(isMarket.equals("1")){
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
- payOrderResultInfo.setDzkAmt(amt.toString());
|
|
|
- }else {
|
|
|
- //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额+等级优惠金额
|
|
|
+ //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠-等级优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ }else {
|
|
|
+ //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(discountAmt);
|
|
|
+ dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
+ payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
}
|
|
|
}else {
|
|
|
if(isGradeSetting.equals("1")){
|