jk-GitHub-coder 4 سال پیش
والد
کامیت
197108e12f
1فایلهای تغییر یافته به همراه20 افزوده شده و 16 حذف شده
  1. 20 16
      YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

+ 20 - 16
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -110,6 +110,7 @@ public class PayOrderController {
             appUserInfo.setMinaOpenid(payOrderRequest.getOpenId());   //2是小程序
         }
         List<AppUserInfo> appUserInfoList =appUserInfoService.Authentication(appUserInfo);
+        //logger.info("用户信息:" + appUserInfoList.toString());
         Map<String ,Object> resultMap = new HashMap<>();            //返回结果集
         //判断登录人员是否验证成功
         if(appUserInfoList!=null && appUserInfoList.size()>0){
@@ -155,6 +156,7 @@ public class PayOrderController {
             String oilPersonnel = "";
             //使用list原因:一个枪号对应多个加油员场景
             List<Map> mapResultList = payOrderMapper.selectPersonelName(params);
+            logger.info("加油员信息:"+ mapResultList.toString());
             if(mapResultList != null && mapResultList.size() > 0){
                 for (Map per : mapResultList){
                     if(per.containsKey("personelName") && per.get("personelName").toString() !=null && per.get("personelName").toString() !=""){
@@ -164,17 +166,23 @@ public class PayOrderController {
                 if(oilPersonnel !=""){
                     payOrder.setOilPersonnel(oilPersonnel.substring(0, oilPersonnel.length()-1));   //加油员
                 }
-                if(mapResultList.get(0).containsKey("stationName") && mapResultList.get(0).get("stationName").toString() !="" && mapResultList.get(0).get("stationName").toString() !=null ){
-                    payOrder.setStationName(mapResultList.get(0).get("stationName").toString());        //油站名称
-                }
             }
             String orderType = payOrderRequest.getOrderType();                          //获取订单类型
+            logger.info("订单类型:" + orderType);
             if(orderType.equals("1")){                                                  //订单类型是油品时计算
                 resultMap = this.calculateAmt(payOrderRequest);                         //计算油价 加油升数 优惠金额 实收金额 优惠价格
                 payOrder.setOilPirce(resultMap.get("oilPrice").toString());
                 payOrder.setOrderLiters(resultMap.get("oilLiters").toString());
                 payOrder.setDiscountAmt(Double.valueOf(resultMap.get("discountAmt").toString()));
                 payOrder.setAmt(Double.valueOf(resultMap.get("amt").toString()));
+                String stationCardEnabledFlag = electronicMembershipCardService.getStationCardEnabledFlag(payOrderRequest.getStationId());
+                logger.info("油站是否开启电子会员卡功能: " +stationCardEnabledFlag);
+                //查询油站是否开启电子会员卡功能
+                if(stationCardEnabledFlag.equals("1")){
+                    Map<String, String> map = this.selectCardBalance(payOrderRequest.getStationId(), payOrderRequest.getOilName(), appUserInfoList.get(0).getUnionId());
+                    resultMap.put("balance", map.get("balance"));   //电子卡余额
+                    resultMap.put("cardOilsType", map.get("cardOilsType"));     //电子卡类型1.汽油; 2.柴油
+                }
             }
             payOrder.setReceivableAmt(payOrderRequest.getReceivableAmt());                //订单应收金额
             String oilName =payOrderRequest.getOilName();
@@ -199,17 +207,12 @@ public class PayOrderController {
                     payOrder.setOilType("2");
                     break;
             }
-            payOrder.setOilType(orderType);
-            String stationCardEnabledFlag = electronicMembershipCardService.getStationCardEnabledFlag(payOrderRequest.getStationId());
-            //查询油站是否开启电子会员卡功能
-            if(stationCardEnabledFlag.equals("1")){
-                String balance = this.selectCardBalance(payOrderRequest.getStationId(), oilName, appUserInfoList.get(0).getUnionId());
-                resultMap.put("balance", balance);
-            }
+            payOrder.setOrderType(orderType);
             StationInfo stationInfo = new StationInfo();
             stationInfo.setStationId(payOrderRequest.getStationId());
             StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
             if(stationInfos !=null){
+                payOrder.setStationName(stationInfos.getStationName());
                 //获取油站图片和名称
                 resultMap.put("stationPic", stationInfos.getStationPic());
                 resultMap.put("stationName", stationInfos.getStationName());
@@ -221,10 +224,6 @@ public class PayOrderController {
                     resultMap.put("ordNo", ordNo);
                     break;
                 case "2":       //非油品
-                    Map<String, String> m = stationService.getStationAppIdAndAppSecret(payOrderRequest.getStationId());
-                    if(m.containsKey("stationName") && m.get("stationName") !=null){
-                        payOrder.setStationName(m.get("stationName"));
-                    }
                     payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt()));        //非油品金额
                     payOrder.setDiscountAmt(Double.valueOf(0));                                 //优惠金额
                     payOrder.setOilPirce(payOrderRequest.getReceivableAmt().toString());        //非油品价格
@@ -247,7 +246,7 @@ public class PayOrderController {
     }
 
     //查询用户电子会员卡余额
-    public String  selectCardBalance(Integer stationId, String oilName, String unionId) {
+    public Map<String, String>  selectCardBalance(Integer stationId, String oilName, String unionId) {
         String cardOilsType ="";
         switch (oilName){                               //根据油品名称存储电子卡油品类型 1.柴油 2 汽油
             case "92#":
@@ -275,10 +274,15 @@ public class PayOrderController {
         customerElectronicCard.setUnionId(unionId);
         CustomerElectronicCard electronicCardInfo = electronicMembershipCardService.getElectronicCardInfoByUnionId(customerElectronicCard);
         BigDecimal balance = null;
+        String cardOilsType1 ="";
         if(electronicCardInfo !=null){
             balance = electronicCardInfo.getAmt();
+            cardOilsType1 = electronicCardInfo.getCardOilsType();
         }
-        return balance.toString();
+        Map<String, String> result = new HashMap<>();
+        result.put("balance",balance.toString());
+        result.put("cardOilsType",cardOilsType1);
+        return result;
     }
 
     /***