jk-GitHub-coder hace 4 años
padre
commit
8df41adee3

+ 22 - 14
YijiaRestful/src/main/java/com/platform/yijia/controller/IntegralShoppingMallController.java

@@ -242,20 +242,28 @@ public class IntegralShoppingMallController {
                                 resultData=ResultData.success(CodeMsg.SUCCESS);
                             }
 
-                            //POS机打印小票
-                            Map<String, Object> map = new HashMap<>();
-                            map.put("orderNo", integralOrderNo);
-                            map.put("createdDate", new SimpleDateFormat(" yyyy-MM-dd HH:mm:ss").format(integralOrder.getExchangeTime()));
-                            map.put("payDate", new SimpleDateFormat(" yyyy-MM-dd HH:mm:ss").format(integralOrder.getExchangeTime()));
-                            map.put("stationName", stationName);
-                            map.put("waresName", integralOrder.getWaresName());
-                            map.put("exchangeNum", integralOrder.getExchangeNum());
-                            map.put("orderSumIntegral", orderSumIntegral);
-                            map.put("surplusPoints", surplusPoints);
-                            map.put("customerName", integralOrder.getCustomerName());
-                            map.put("orderType", "3");
-                            map.put("stationId", request.getStationId().toString());
-                            this.posPrintReceipt(map);
+                            StationInfo stationInfo = new StationInfo();
+                            stationInfo.setStationId(request.getStationId());
+                            //获取油站功能信息
+                            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+                            if(stationInfos.getIntegralPrintFlag().equals("1")){
+                                //POS机打印小票
+                                Map<String, Object> map = new HashMap<>();
+                                map.put("orderNo", integralOrderNo);
+                                map.put("createdDate", new SimpleDateFormat(" yyyy-MM-dd HH:mm:ss").format(integralOrder.getExchangeTime()));
+                                map.put("payDate", new SimpleDateFormat(" yyyy-MM-dd HH:mm:ss").format(integralOrder.getExchangeTime()));
+                                map.put("stationName", stationName);
+                                map.put("waresName", integralOrder.getWaresName());
+                                map.put("exchangeNum", integralOrder.getExchangeNum());
+                                map.put("orderSumIntegral", orderSumIntegral);
+                                map.put("surplusPoints", surplusPoints);
+                                map.put("customerName", integralOrder.getCustomerName());
+                                map.put("orderType", "3");
+                                map.put("stationId", request.getStationId().toString());
+                                this.posPrintReceipt(map);
+                            }
+
+
 
                             //打印机打印小票
 //                            List<Map<String, Object>> stationPrinterList = stationService.getStationPrinterList(request.getStationId());

+ 28 - 14
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -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;
     }

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

@@ -19,4 +19,5 @@ public class PayOrderResultInfo {
     private String dzkAmt;         //电子卡金额
     private String balance;         //电子卡余额
     private String cardOilsType;    //电子卡类型
+    private String oilsCardFlag;      //该用户是否有改电子卡
 }

+ 1 - 1
YijiaRestful/src/main/resources/application.yml

@@ -16,7 +16,7 @@ pagehelper:
 # 路径前缀动态配置
 yijia:
     path:
-        global-prefix: demo
+        global-prefix: test
 
 # POS机登录解密密文密码
 3des: