|
@@ -92,6 +92,7 @@ public class PayOrderController {
|
|
|
//获取该油品所属哪一类
|
|
|
Oil oil = new Oil();
|
|
|
oil.setOilName(oilName);
|
|
|
+ oil.setDictType("oil_name");
|
|
|
Oil oilInfo = sysDictDataService.selectOilType(oil);
|
|
|
payOrder.setOilType(oilInfo.getOilsType()); //油品类型
|
|
|
String orderType = oilInfo.getOilsType(); //获取订单类型
|
|
@@ -131,7 +132,7 @@ public class PayOrderController {
|
|
|
if(orderType.equals("3")){ //订单类型是油品时计算
|
|
|
payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt())); //非油品金额
|
|
|
payOrder.setDiscountAmt(Double.valueOf(0)); //优惠金额
|
|
|
- payOrder.setOilPirce(payOrderRequest.getReceivableAmt().toString()); //非油品价格
|
|
|
+ payOrder.setOilPirce(payOrderRequest.getReceivableAmt()); //非油品价格
|
|
|
payOrder.setOrderLiters("0");
|
|
|
resultMap.put("discountAmt", "0"); //优惠价格
|
|
|
resultMap.put("amt", payOrderRequest.getReceivableAmt()); //实收价格
|
|
@@ -154,6 +155,7 @@ public class PayOrderController {
|
|
|
resultMap.put("oilLiters", payOrderResultInfo.getOilLiters());
|
|
|
resultMap.put("discountPrice", payOrderResultInfo.getDiscountPrice());
|
|
|
resultMap.put("amt_dzk", payOrderResultInfo.getDzkAmt());
|
|
|
+ resultMap.put("discountAmt_dzk", payOrderResultInfo.getDzkDiscountAmt()); //电子卡优惠金额
|
|
|
resultMap.put("balance", payOrderResultInfo.getBalance()); //电子卡余额
|
|
|
resultMap.put("cardOilsType", payOrderResultInfo.getCardOilsType()); //电子卡类型1.汽油; 2.柴油
|
|
|
resultMap.put("ordNo", ordNo);
|
|
@@ -171,7 +173,6 @@ public class PayOrderController {
|
|
|
return gson.toJson(resultData);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//根据营销方案计算订单金额
|
|
|
public PayOrderResultInfo calculateAmt(PayOrderRequest payOrderRequest){
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|
|
@@ -215,21 +216,29 @@ public class PayOrderController {
|
|
|
return payOrderResultInfo;
|
|
|
}
|
|
|
|
|
|
- //计算直降
|
|
|
+ //计算独立直降
|
|
|
public PayOrderResultInfo calculateZhiJiangDiscount(Map<String ,Object> params){
|
|
|
BigDecimal oilPrice = new BigDecimal(params.get("oilPrice").toString()); //油品价格
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
- BigDecimal discountAmt = new BigDecimal(0); //优惠金额
|
|
|
+ BigDecimal discountAmt = new BigDecimal(0); //营销方案优惠金额
|
|
|
BigDecimal amt = new BigDecimal(0);
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
BigDecimal gradeDiscountAmt = new BigDecimal(0); //等级优惠金额
|
|
|
+ BigDecimal dzkGradeDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需等级优惠金额值
|
|
|
+ BigDecimal dzkDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需营销优惠金额值
|
|
|
+
|
|
|
//加油升数
|
|
|
oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_HALF_UP);
|
|
|
if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
|
oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_UP);
|
|
|
}
|
|
|
- PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|
|
|
+ PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo(); //计算结果存放值
|
|
|
+ //计算等级优惠
|
|
|
+ PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
+ gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
|
|
|
+ dzkGradeDiscountAmt = gradeDiscountAmt; //同时给电子卡赋值等级优惠金额
|
|
|
+
|
|
|
params.put("discountPlanType", "3");
|
|
|
List<Map> customerMarkertPlanList = customerGradeServices.getCustomerMarkertPlanList(params);
|
|
|
if(customerMarkertPlanList !=null && customerMarkertPlanList.size() >0){
|
|
@@ -250,21 +259,20 @@ public class PayOrderController {
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
- //计算等级优惠
|
|
|
- PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
- gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
|
|
|
+ dzkDiscountAmt = discountAmt; //赋值电子卡优惠金额
|
|
|
String vipDiscountyPlus = customerMarkertPlanList.get(0).get("vipDiscountyPlus").toString();
|
|
|
- if(!vipDiscountyPlus.equals("1")){
|
|
|
- //如果不叠加等级优惠 则设置等级优惠赋值为0
|
|
|
- gradeDiscountAmt = new BigDecimal(0);
|
|
|
+ //该营销方案是否叠加等级优惠
|
|
|
+ if(vipDiscountyPlus.equals("1")){
|
|
|
+ //如果叠加等级优惠
|
|
|
+ discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
}
|
|
|
- discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
}
|
|
|
amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
payOrderResultInfo.setAmt(amt.toString());
|
|
|
payOrderResultInfo.setDiscountAmt(discountAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(discountAmt.toString());
|
|
|
payOrderResultInfo.setDiscountPrice(discountPrice.toString());
|
|
|
payOrderResultInfo.setOilLiters(oilLiters.toString());
|
|
|
payOrderResultInfo.setReceivableAmt(receivableAmt.toString());
|
|
@@ -281,23 +289,30 @@ public class PayOrderController {
|
|
|
String isMarket = cardRechargeSettingList.get(0).getIsMarket(); //等候否叠加营销方案
|
|
|
if(isMarket.equals("1")){
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
- BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
|
|
|
- dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
+ //都叠加 电子卡支付金额 = 应收金额 - 营销优惠金额 - 等级优惠金额
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt).subtract(dzkGradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt; //如果为负数,则默认设置0.01元
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ BigDecimal dzkDiscountAmtSum = dzkDiscountAmt.add(dzkGradeDiscountAmt); //电子卡总优惠金额
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmtSum.toString());
|
|
|
}else {
|
|
|
- //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
- BigDecimal dzkAmt = receivableAmt.subtract(discountAmt);
|
|
|
+ //叠加营销方案不叠加等级优惠: 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt);
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmt.toString());
|
|
|
}
|
|
|
}else {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
- //如果电子卡设置不执行营销方案执行等级优惠 则 电子卡支付金额 =应收金额-等级优惠金额
|
|
|
- BigDecimal dzkAmt = receivableAmt.subtract(gradeDiscountAmt);
|
|
|
+ //不叠加营销方案叠加等级优惠:电子卡支付金额 =应收金额-等级优惠金额
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(dzkGradeDiscountAmt);
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(dzkGradeDiscountAmt.toString());
|
|
|
}else {
|
|
|
+ //都不叠加: 电子卡支付金额 = 应收金额
|
|
|
payOrderResultInfo.setDzkAmt(receivableAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt("0");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -319,12 +334,20 @@ public class PayOrderController {
|
|
|
BigDecimal amt = new BigDecimal(0);
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
BigDecimal gradeDiscountAmt = new BigDecimal(0); //等级优惠金额
|
|
|
+ BigDecimal dzkGradeDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需等级优惠金额值
|
|
|
+ BigDecimal dzkDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需营销优惠金额值
|
|
|
//加油升数
|
|
|
oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_HALF_UP);
|
|
|
if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
|
oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_UP);
|
|
|
}
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|
|
|
+
|
|
|
+ //计算等级优惠
|
|
|
+ PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
+ gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
|
|
|
+ dzkGradeDiscountAmt = gradeDiscountAmt; //同时给电子卡赋值等级优惠金额
|
|
|
+
|
|
|
params.put("discountPlanType", "2");
|
|
|
List<Map> customerMarkertPlanList = customerGradeServices.getCustomerMarkertPlanList(params);
|
|
|
if(customerMarkertPlanList !=null && customerMarkertPlanList.size() >0){
|
|
@@ -333,21 +356,19 @@ 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());
|
|
|
+ dzkDiscountAmt = discountAmt;
|
|
|
String vipDiscountyPlus = customerMarkertPlanList.get(0).get("vipDiscountyPlus").toString();
|
|
|
- if(!vipDiscountyPlus.equals("1")){
|
|
|
- //如果不叠加等级优惠 则设置等级优惠赋值为0
|
|
|
- gradeDiscountAmt = new BigDecimal(0);
|
|
|
+ if(vipDiscountyPlus.equals("1")){
|
|
|
+ //如果叠加等级优惠
|
|
|
+ discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
}
|
|
|
- discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
}
|
|
|
amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
payOrderResultInfo.setAmt(amt.toString());
|
|
|
payOrderResultInfo.setDiscountAmt(discountAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(discountAmt.toString());
|
|
|
payOrderResultInfo.setDiscountPrice(discountPrice.toString());
|
|
|
payOrderResultInfo.setOilLiters(oilLiters.toString());
|
|
|
payOrderResultInfo.setReceivableAmt(receivableAmt.toString());
|
|
@@ -364,23 +385,28 @@ public class PayOrderController {
|
|
|
String isMarket = cardRechargeSettingList.get(0).getIsMarket(); //等候否叠加营销方案
|
|
|
if(isMarket.equals("1")){
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
- BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt).subtract(dzkGradeDiscountAmt);
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ BigDecimal dzkDiscountAmtSum = dzkDiscountAmt.add(dzkGradeDiscountAmt); //电子卡优惠金额
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmtSum.toString());
|
|
|
}else {
|
|
|
//如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
- BigDecimal dzkAmt = receivableAmt.subtract(discountAmt);
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt);
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmt.toString());
|
|
|
}
|
|
|
}else {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//如果电子卡设置不执行营销方案执行等级优惠 则 电子卡支付金额 =应收金额-等级优惠金额
|
|
|
- BigDecimal dzkAmt = receivableAmt.subtract(gradeDiscountAmt);
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(dzkGradeDiscountAmt);
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(dzkGradeDiscountAmt.toString());
|
|
|
}else {
|
|
|
payOrderResultInfo.setDzkAmt(receivableAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt("0");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -403,12 +429,19 @@ public class PayOrderController {
|
|
|
BigDecimal amt = new BigDecimal(0);
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
BigDecimal gradeDiscountAmt = new BigDecimal(0); //等级优惠金额
|
|
|
+ BigDecimal dzkGradeDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需等级优惠金额值
|
|
|
+ BigDecimal dzkDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需营销优惠金额值
|
|
|
+
|
|
|
//加油升数
|
|
|
oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_HALF_UP);
|
|
|
if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
|
oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_UP);
|
|
|
}
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|
|
|
+ //计算等级优惠
|
|
|
+ PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
+ gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
|
|
|
+ dzkGradeDiscountAmt = gradeDiscountAmt;
|
|
|
params.put("discountPlanType", "1");
|
|
|
List<Map> customerMarkertPlanList = customerGradeServices.getCustomerMarkertPlanList(params);
|
|
|
if(customerMarkertPlanList !=null && customerMarkertPlanList.size() >0){
|
|
@@ -418,23 +451,20 @@ 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());
|
|
|
+ dzkDiscountAmt = discountAmt;
|
|
|
//是否共享会员等级优惠叠加: 1 代表是; 2 代表否;
|
|
|
String vipDiscountyPlus = customerMarkertPlanList.get(0).get("vipDiscountyPlus").toString();
|
|
|
- if(!vipDiscountyPlus.equals("1")){
|
|
|
- //如果不叠加等级优惠 则设置等级优惠赋值为0
|
|
|
- gradeDiscountAmt = new BigDecimal(0);
|
|
|
+ if(vipDiscountyPlus.equals("1")){
|
|
|
+ //如果叠加等级优惠
|
|
|
+ discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
}
|
|
|
- discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
-
|
|
|
}
|
|
|
amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
payOrderResultInfo.setAmt(amt.toString());
|
|
|
payOrderResultInfo.setDiscountAmt(discountAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(discountAmt.toString());
|
|
|
payOrderResultInfo.setDiscountPrice(discountPrice.toString());
|
|
|
payOrderResultInfo.setOilLiters(oilLiters.toString());
|
|
|
payOrderResultInfo.setReceivableAmt(receivableAmt.toString());
|
|
@@ -452,23 +482,28 @@ public class PayOrderController {
|
|
|
if(isMarket.equals("1")){
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠-等级优惠金额
|
|
|
- BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt).subtract(dzkGradeDiscountAmt);
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ BigDecimal dzkDiscountAmtSum = dzkDiscountAmt.add(dzkGradeDiscountAmt); //电子卡优惠金额
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmtSum.toString());
|
|
|
}else {
|
|
|
//如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
- BigDecimal dzkAmt = receivableAmt.subtract(discountAmt);
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt);
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmt.toString());
|
|
|
}
|
|
|
}else {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//如果电子卡设置不执行营销方案执行等级优惠 则 电子卡支付金额 =应收金额-等级优惠金额
|
|
|
- BigDecimal dzkAmt = receivableAmt.subtract(gradeDiscountAmt);
|
|
|
+ BigDecimal dzkAmt = receivableAmt.subtract(dzkGradeDiscountAmt);
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(dzkGradeDiscountAmt.toString());
|
|
|
}else {
|
|
|
payOrderResultInfo.setDzkAmt(receivableAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt("0");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -489,6 +524,7 @@ public class PayOrderController {
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //优惠金额
|
|
|
+ BigDecimal dzkDiscountAmt = discountAmt; //优惠金额
|
|
|
BigDecimal amt = new BigDecimal(0);
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|
|
@@ -529,14 +565,18 @@ public class PayOrderController {
|
|
|
discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
payOrderResultInfo.setAmt(amt.toString());
|
|
|
payOrderResultInfo.setDiscountAmt(discountAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(discountAmt.toString());
|
|
|
payOrderResultInfo.setDiscountPrice(discountPrice.toString());
|
|
|
payOrderResultInfo.setOilLiters(oilLiters.toString());
|
|
|
payOrderResultInfo.setReceivableAmt(receivableAmt.toString());
|
|
|
payOrderResultInfo.setOilPrice(oilPrice.toString());
|
|
|
payOrderResultInfo.setDzkAmt(amt.toString());
|
|
|
payOrderResultInfo.setCardEnabledFlag(params.get("cardEnabledFlag").toString());
|
|
|
+ //电子卡是否开启
|
|
|
logger.info("油站是否开启电子会员卡功能: " +params.get("cardEnabledFlag").toString());
|
|
|
if(params.get("cardEnabledFlag").toString().equals("1")){
|
|
|
+ payOrderResultInfo.setDzkAmt(receivableAmt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt("0");
|
|
|
CustomerCardSetting customerCardSetting = new CustomerCardSetting();
|
|
|
customerCardSetting.setStationId(Integer.valueOf(params.get("stationId").toString()));
|
|
|
List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
|
|
@@ -544,6 +584,7 @@ public class PayOrderController {
|
|
|
String isGradeSetting = cardRechargeSettingList.get(0).getIsGradeSetting();
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
payOrderResultInfo.setDzkAmt(amt.toString());
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(discountAmt.toString());
|
|
|
}
|
|
|
}
|
|
|
//查询客户余额和卡的类型
|