Ver código fonte

字段修改

jk-GitHub-coder 4 anos atrás
pai
commit
303c4a6fd9
22 arquivos alterados com 170 adições e 778 exclusões
  1. 16 14
      YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java
  2. 47 49
      YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java
  3. 39 521
      YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java
  4. 8 6
      YijiaRestful/src/main/java/com/platform/yijia/controller/StationController.java
  5. 3 0
      YijiaRestful/src/main/java/com/platform/yijia/dao/PayOrderMapper.java
  6. 9 0
      YijiaRestful/src/main/java/com/platform/yijia/param/request/PayInfoRequest.java
  7. 2 2
      YijiaRestful/src/main/java/com/platform/yijia/param/request/PayOrderRequest.java
  8. 0 7
      YijiaRestful/src/main/java/com/platform/yijia/pojo/CustomerManage.java
  9. 1 0
      YijiaRestful/src/main/java/com/platform/yijia/pojo/PayOrderResultInfo.java
  10. 3 0
      YijiaRestful/src/main/java/com/platform/yijia/service/PayOrderService.java
  11. 6 0
      YijiaRestful/src/main/java/com/platform/yijia/service/impl/PayOrderServiceImpl.java
  12. 2 2
      YijiaRestful/src/main/resources/application.yml
  13. 6 6
      YijiaRestful/src/main/resources/mapper/AppUserInfoMapper.xml
  14. 2 66
      YijiaRestful/src/main/resources/mapper/CustomerManagerMapper.xml
  15. 1 2
      YijiaRestful/src/main/resources/mapper/CustomerPointsMapper.xml
  16. 1 59
      YijiaRestful/src/main/resources/mapper/ElectronicMembershipCardMapper.xml
  17. 2 6
      YijiaRestful/src/main/resources/mapper/IntegralRuleMapper.xml
  18. 15 2
      YijiaRestful/src/main/resources/mapper/PayOrderMapper.xml
  19. 1 4
      YijiaRestful/src/main/resources/mapper/StationInfoMapper.xml
  20. 3 4
      YijiaRestful/src/main/resources/mapper/StationOilGunMapper.xml
  21. 0 4
      YijiaRestful/src/main/resources/mapper/SysDeptMapper.xml
  22. 3 24
      YijiaRestful/src/test/java/com/palatform/yijia/test.java

+ 16 - 14
YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java

@@ -281,14 +281,17 @@ public class ElectronicMembershipCardController {
             payOrder.setOrderNo(ordNo);
             //获取用户订单信息
             Map<String, Object> resultMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder);
-            logger.info("电子卡支付时用户订单信息和用户信息:", resultMap.toString());
             if(resultMap !=null && resultMap.get("status").toString().equals("0")){
+                logger.info("电子卡支付时用户订单信息和用户信息:", resultMap.toString());
                 String stationId = resultMap.get("stationId").toString();
                 String oilName =resultMap.get("oilName").toString();
                 String mobilePhone =resultMap.get("mobilePhone").toString();
                 String unionId =resultMap.get("unionId").toString();
                 String minaOpenid =resultMap.get("minaOpenid").toString();
-                String blogOpenid =resultMap.get("blogOpenid").toString();
+                String blogOpenid ="";
+                if(resultMap.containsKey("blogOpenid") && StringUtils.isNotBlank(resultMap.get("blogOpenid").toString())){
+                    blogOpenid =resultMap.get("blogOpenid").toString();
+                }
                 String consumerId =resultMap.get("consumerId").toString();
                 String registeDate =resultMap.get("registeDate").toString();
                 String stationName =resultMap.get("stationName").toString();
@@ -351,7 +354,7 @@ public class ElectronicMembershipCardController {
                     //更新客户表
                     CustomerManage customerManage = new CustomerManage();
                     customerManage.setStationId(Integer.valueOf(stationId));
-                    customerManage.setMinaOpenid(minaOpenid);
+                    //customerManage.setMinaOpenid(minaOpenid);
                     customerManage.setOilName(oilName);
                     customerManage.setPhoneNumber(mobilePhone);
                     Map<String, Object> params_1 = new HashMap<>();
@@ -375,16 +378,15 @@ public class ElectronicMembershipCardController {
                         logger.info("该站直降等级信息:"+ customerGradeInfo);
                         for (Map m: customerGradeInfo){
                             if(Double.valueOf(customerManage.getAmt().toString()) >= Double.valueOf(m.get("memberConditStart").toString())){
-                                customerManage.setGrade(m.get("grade").toString());     //存入等级名称
-                                customerManage.setMemberGrade(m.get("id").toString());     //存入等级ID
+                                customerManage.setGrade(m.get("id").toString());     //存入等级ID
                                 break;
                             }
                         }
-                        logger.info("存在客户时直降等级信息是否存入客户表:"+ "直降ID:"+ customerManage.getMemberGrade()+ "直降名称: "+customerManage.getGrade());
+                        logger.info("存在客户时直降等级信息是否存入客户表:"+ "直降ID:"+ customerManage.getGrade());
                         customerManagerService.updateCustomerInfo(customerManage);
                     }else {
                         customerManage.setCustomerName(consumer);
-                        customerManage.setStationName(stationName);
+                        //customerManage.setStationName(stationName);
                         customerManage.setLiters(new BigDecimal(oilLiters));
                         customerManage.setAmt(new BigDecimal(amt));
                         customerManage.setPhoneNumber(mobilePhone);
@@ -394,10 +396,9 @@ public class ElectronicMembershipCardController {
                         List<Map> customerGradeInfo = customerGradeServices.getCustomerGradeList(params_1);  //直降
                         logger.info("该站直降等级信息:"+ customerGradeInfo);
                         if(customerGradeInfo !=null && customerGradeInfo.size() >0){
-                            customerManage.setGrade(customerGradeInfo.get(0).get("grade").toString());     //存入等级名称
-                            customerManage.setMemberGrade(customerGradeInfo.get(0).get("id").toString());     //存入等级ID
+                            customerManage.setGrade(customerGradeInfo.get(0).get("id").toString());     //存入等级ID
                         }
-                        logger.info("不存在客户时直降等级信息是否存入客户表:"+ "直降ID:"+ customerManage.getMemberGrade()+ "直降名称: "+customerManage.getGrade());
+                        logger.info("不存在客户时直降等级信息是否存入客户表:"+ "直降ID:"+customerManage.getGrade());
                         //客户会员号
                         String memberId=groupId+stationId+System.nanoTime();
                         CustomerManage cm = new CustomerManage();
@@ -417,7 +418,7 @@ public class ElectronicMembershipCardController {
                     }
 
                     //电子卡消费公众号通知
-                    if(blogOpenid !=null){
+                    if(blogOpenid !=""){
                         String gzhAppId ="";
                         String gzhAppSecret ="";
                         Map<String, String> m = stationService.getStationAppIdAndAppSecret(cardInfo.getStationId());
@@ -450,6 +451,7 @@ public class ElectronicMembershipCardController {
                     StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
                     if(stationInfos !=null && stationInfos.getIntegralFlag().equals("1")){
                         CalculateIntegral calculateIntegral = new CalculateIntegral();
+                        calculateIntegral.setNickName(consumer);
                         calculateIntegral.setOrderNo(ordNo);                                            //订单号
                         calculateIntegral.setCustomerGrade(customerManage.getGrade());                  //客户等级
                         calculateIntegral.setIntegralRuleFlag(stationInfos.getIntegralRuleFlag());      //是否共享积分
@@ -1414,6 +1416,7 @@ public class ElectronicMembershipCardController {
         customerPoints.setMinaOpenId(calculateIntegral.getOpenId());    //用户小程序ID
         customerPoints.setBlogOpenId(calculateIntegral.getBlogOpenid());    //公众号ID
         customerPoints.setUnionId(calculateIntegral.getUnionId());      //用户unionId
+        customerPoints.setCustomerName(calculateIntegral.getNickName());
         //获取客户积分信息
         CustomerPoints customerPointsInfo = customerPointsService.getCustomerPointsInfoByUnionId(customerPoints);
         if(customerPointsInfo !=null){
@@ -1485,8 +1488,7 @@ public class ElectronicMembershipCardController {
                 gzhAppId = m.get("gzhAppId");
                 gzhAppSecret = m.get("gzhAppSecret");
             }
-            String blogOpenId = customerPoints.getBlogOpenId();     //公众号openId
-            if(blogOpenId !=null){
+            if(StringUtils.isNotBlank(customerPoints.getBlogOpenId())){
                 //推送模板
                 List<WxMpTemplateData> wxMpTemplate = new ArrayList<>();
                 wxMpTemplate.add(new WxMpTemplateData("first","尊敬的"+customerPoints.getCustomerName()+",您好:\n" + "您在"+stationName+"的积分最新交易信息如下"));
@@ -1501,7 +1503,7 @@ public class ElectronicMembershipCardController {
                 gzhNewsTemplate.setTemplateType("1");
                 GzhNewsTemplate gzhNewsTemplateInfo = gzhNewsTemplateService.getGzhNewsTemplate(gzhNewsTemplate);
                 if(gzhNewsTemplateInfo !=null && gzhNewsTemplateInfo.getTemplateId() !=null){
-                    wxPushUtil.push(gzhAppId, gzhAppSecret, gzhNewsTemplateInfo.getTemplateId(), blogOpenId, wxMpTemplate);
+                    wxPushUtil.push(gzhAppId, gzhAppSecret, gzhNewsTemplateInfo.getTemplateId(), customerPoints.getBlogOpenId(), wxMpTemplate);
                 }
             }
 

+ 47 - 49
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -151,35 +151,32 @@ public class PayController {
         ResultData resultData =null;
         String openId = payInfoRequest.getOpenId(); //用户openId
         String userType=payInfoRequest.getUserType();//用户登录类型 1 公众号。2 小程序
-        Integer orderId =payInfoRequest.getOrderId();
+        String ordNo = payInfoRequest.getOrdNo();
         AppUserInfo appUserInfo =new AppUserInfo();
         //订单类型 是小程序还是公众号
         appUserInfo.setUserType(userType);
         if(userType.equals("1")){
             //1 是微信
-            //appUserInfo.setBlogOpenid(openId);
             appUserInfo.setMinaOpenid(openId);
         }else if(userType.equals("2")){
             //2是支付宝
             appUserInfo.setALiId(openId);
         }
-        List<AppUserInfo> appUserInfoList =appUserInfoService.Authentication(appUserInfo);
-        if(appUserInfoList!=null&&appUserInfoList.size()==1){
+        AppUserInfo appUserInfos =appUserInfoService.getAppUserInfo(appUserInfo);
+        if(appUserInfos!=null){
             //调用聚合支付
             try{
                 //根据订单号查询订单信息
-                PayOrder payOrder=payOrderService.searchPayOrder(orderId);
+                PayOrder payOrder=payOrderService.selectOrderInfoByOrdNo(ordNo);
                 if(payOrder!=null){
                     //将业务参数存放在 JSON 对象中
                     JSONObject reqData = new JSONObject();
-
                     reqData.put("ordNo", payOrder.getOrderNo()); //商户订单号
                     //reqData.put("subMechId", ""); //子商户号
                     reqData.put("amt", payOrder.getAmt()); //订单总金额
                     //reqData.put("amt", "0.01");
                     //reqData.put("discountAmt", ""); //参与优惠金额
                     //reqData.put("unDiscountAmt", ""); //不参与优惠金额
-                    //reqData.put("payType", "WECHAT"); //支付渠道 WECHAT:微信;ALIPAY:支付宝;UNIONPAY:银联
                     Map<String, String> stationAppIdAndAppSecret = stationService.getStationAppIdAndAppSecret(Integer.valueOf(payInfoRequest.getStationId()));
                     if(stationAppIdAndAppSecret !=null && stationAppIdAndAppSecret.containsKey("appId") && stationAppIdAndAppSecret.containsKey("mno")){
                         if(userType.equals("1")){
@@ -194,27 +191,24 @@ public class PayController {
                     }
                     if(userType.equals("1")){
                         //1 是微信小程序
+                        reqData.put("payType", "WECHAT"); //支付渠道 WECHAT:微信;ALIPAY:支付宝;UNIONPAY:银联
                         reqData.put("payWay", "03"); //支付方式  02 公众号/服 务窗/js支付 03 小程序
-                        reqData.put("userId", appUserInfoList.get(0).getMinaOpenid()); //用户号 微信:openid; 支付宝:userid;银联:userid;微信&支付宝必传,银联js为非必传
+                        reqData.put("userId", appUserInfos.getMinaOpenid()); //用户号 微信:openid; 支付宝:userid;银联:userid;微信&支付宝必传,银联js为非必传
                     }else if(userType.equals("2")){
                         //2 是支付宝
+                        reqData.put("payType", "ALIPAY"); //支付渠道 WECHAT:微信;ALIPAY:支付宝;UNIONPAY:银联
                         reqData.put("payWay", "03"); //支付方式  02 公众号/服 务窗/js支付 03 小程序
-                        reqData.put("userId", appUserInfoList.get(0).getALiId()); //用户号 微信:openid; 支付宝:userid;银联:userid;微信&支付宝必传,银联js为非必传
+                        reqData.put("userId", appUserInfos.getALiId()); //用户号 微信:openid; 支付宝:userid;银联:userid;微信&支付宝必传,银联js为非必传
                     }
                     //reqData.put("timeExpire", "10"); //订单失效时间, 以分钟为单位
                     //reqData.put("limitPay", "00"); //限制卡类型: 00-全部 01-限定不能使 用信用卡支付 默认值 00
 
-                    if(StringUtils.isNotBlank(payInfoRequest.getSubject())){
-                        reqData.put("subject", payInfoRequest.getSubject()); //订单标题
-                    }else {
-                        reqData.put("subject", "聚合支付测试"); //订单标题
-                    }
+                    reqData.put("subject", payOrder.getOilName() + " - " +payOrder.getStationName()); //订单标题
                     //reqData.put("hbFqNum", "6"); //花呗分期数,仅可上送 6 或 12
                     reqData.put("tradeSource", "01"); //交易来源 01服务商,02收银台,03硬件
                     reqData.put("trmIp", "172.16.2.1");//商家ip地址
                     // reqData.put("customerIp", ""); //持卡人ip地址,银联js支付时必传
 
-
                     //reqData.put("outFrontUrl", ""); //js 支付,前台 成功通知地址
                     reqData.put("outFrontFailUrl", ""); //js 支付,前台 事变通知地址
                     //globalPrefix
@@ -264,10 +258,10 @@ public class PayController {
                         String signResult = result.get("sign").toString();
                         result.remove("sign");
                         String resultStr = RSASignature.getOrderContent(result);
-                        System.out.println(resultStr);
+                        System.out.println("resultStr: " + resultStr);
                         //sign
                         String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
-                        System.out.println("resultSign:" + resultSign);
+                        System.out.println("resultSign: " + resultSign);
                         //组装加密串
                         if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
                             System.out.println("===================验签成功==============");
@@ -571,10 +565,14 @@ public class PayController {
                             if(stationInfos !=null && stationInfos.getIntegralFlag().equals("1")){                             //是否启用积分功能
                                 CalculateIntegral calculateIntegral = new CalculateIntegral();
                                 calculateIntegral.setOrderNo(ordNo);
+                                calculateIntegral.setNickName(infoMap.get("consumer").toString());
                                 calculateIntegral.setGroupId(Integer.valueOf(infoMap.get("groupId").toString()));               //集团ID
                                 calculateIntegral.setCustomerGrade(customerManage.getGrade());                                  //客户等级
                                 calculateIntegral.setIntegralRuleFlag(stationInfos.getIntegralRuleFlag());                      //是否共享积分规则
                                 calculateIntegral.setOpenId(infoMap.get("minaOpenid").toString());                              //客户小程序ID
+                                if(infoMap.containsKey("blogOpenid") && StringUtils.isNotBlank(infoMap.get("blogOpenid").toString())){
+                                    calculateIntegral.setBlogOpenid(infoMap.get("blogOpenid").toString());
+                                }
                                 calculateIntegral.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));           //油站ID
                                 calculateIntegral.setStationName(infoMap.get("stationName").toString());                        //油站名称
                                 calculateIntegral.setAmt(new BigDecimal(infoMap.get("amt").toString()));                        //实收金额
@@ -645,8 +643,8 @@ public class PayController {
         appUserInfo.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));
         //从客户信息表查询数据用于插入客户表 使用List原因:app_user_info存在小程序和公众号两种信息
         List<AppUserInfo> appUserInfoList = payOrderService.getUserInfoByOpenId(appUserInfo);
-        Date blogRegTime = null;    //公众号注册时间
-        Date minaRegTime = null;    //小程序注册时间
+//        Date blogRegTime = null;    //微信注册时间
+//        Date AliRegTime = null;    //阿里注册时间
         if(appUserInfoList != null && appUserInfoList.size() >0){
             for(AppUserInfo u : appUserInfoList){
                 //向客户表插入小程序和公众号的openId 用户表ID 用户手机号 注册时间
@@ -655,40 +653,38 @@ public class PayController {
                 }
                 switch (u.getUserType()){
                     case "1":
-                        customerManage.setBlogOpenid(u.getBlogOpenid());
-                        customerManage.setBlogUserId(u.getUserId());
+                        customerManage.setMinaUserId(u.getUserId());
                         customerManage.setPhoneNumber(u.getMobilePhone());
                         customerManage.setCustomerName(u.getBlogNickName());
-                        blogRegTime =u.getRegisteDate();
+                        //blogRegTime =u.getRegisteDate();
+                        customerManage.setRegtime(u.getRegisteDate());
                         break;
                     case "2":
-                        customerManage.setMinaOpenid(u.getMinaOpenid());
-                        customerManage.setMinaUserId(u.getUserId());
+                        //customerManage.setMinaUserId(u.getALiId());
                         customerManage.setPhoneNumber(u.getMobilePhone());
                         customerManage.setCustomerName(u.getBlogNickName());
-                        minaRegTime = u.getRegisteDate();
+                        //AliRegTime = u.getRegisteDate();
                         break;
                 }
             }
             //判断公众号和小程序时间取最早的时间
-            if(blogRegTime !=null && minaRegTime != null){
-                if(blogRegTime.compareTo(minaRegTime) >0){
-                    customerManage.setRegtime(minaRegTime);
-                }else if(blogRegTime.compareTo(minaRegTime) <0){
-                    customerManage.setRegtime(blogRegTime);
-                }else if(blogRegTime.compareTo(minaRegTime) ==0){
-                    //相等时随便取一个
-                    customerManage.setRegtime(minaRegTime);
-                }
-            }else if(blogRegTime == null){
-                customerManage.setRegtime(minaRegTime);
-            }else if(minaRegTime == null){
-                customerManage.setRegtime(blogRegTime);
-            }
+//            if(blogRegTime !=null && AliRegTime != null){
+//                if(blogRegTime.compareTo(AliRegTime) >0){
+//                    customerManage.setRegtime(AliRegTime);
+//                }else if(blogRegTime.compareTo(AliRegTime) <0){
+//                    customerManage.setRegtime(blogRegTime);
+//                }else if(blogRegTime.compareTo(AliRegTime) ==0){
+//                    //相等时随便取一个
+//                    customerManage.setRegtime(AliRegTime);
+//                }
+//            }else if(blogRegTime == null){
+//                customerManage.setRegtime(AliRegTime);
+//            }else if(AliRegTime == null){
+//                customerManage.setRegtime(blogRegTime);
+//            }
         }
         customerManage.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));    //油站ID
         customerManage.setOilName(infoMap.get("oilName").toString());    //油品名称
-        customerManage.setStationName(infoMap.get("stationName").toString());   //存入油站名称
         CustomerManage existCustomer = customerManagerService.getCustomerManageInfo(customerManage);         //已存在用户信息 existCustomer
         //判断该用户是否已存在
         if(existCustomer != null){  //存在该用户时更新
@@ -716,22 +712,20 @@ public class PayController {
             logger.info("该站直降等级信息:"+ customerGradeInfo);
             for (Map m: customerGradeInfo){
                 if(Double.valueOf(customerManage.getAmt().toString()) >= Double.valueOf(m.get("memberConditStart").toString())){
-                    customerManage.setGrade(m.get("grade").toString());     //存入等级名称
-                    customerManage.setMemberGrade(m.get("id").toString());     //存入等级ID
+                    customerManage.setGrade(m.get("id").toString());     //存入等级ID
                     break;
                 }
             }
-            logger.info("直降等级信息是否存入客户表:"+ "直降ID:"+ customerManage.getMemberGrade()+ "直降名称: "+customerManage.getGrade());
+            logger.info("直降等级信息是否存入客户表:"+ "直降ID:"+ customerManage.getGrade());
             customerManagerService.updateCustomerInfo(customerManage);
         }else{  //该客户不存在时插入
             //直降时存入等级名称和等级ID
             List<Map> customerGradeInfo = customerGradeServices.getCustomerGradeList(infoMap);  //直降
             logger.info("该站直降等级信息:"+ customerGradeInfo);
             if(customerGradeInfo !=null && customerGradeInfo.size() >0){
-                customerManage.setGrade(customerGradeInfo.get(0).get("grade").toString());     //存入等级名称
-                customerManage.setMemberGrade(customerGradeInfo.get(0).get("id").toString());     //存入等级ID
+                customerManage.setGrade(customerGradeInfo.get(0).get("id").toString());     //存入等级ID
             }
-            logger.info("直降等级信息是否存入客户表:"+ "直降ID:"+ customerManage.getMemberGrade()+ "直降名称: "+customerManage.getGrade());
+            logger.info("直降等级信息是否存入客户表:"+ "直降ID:"+ customerManage.getGrade());
             customerManage.setAmt(BigDecimal.valueOf((Double) infoMap.get("amt")));    //存入金额
             if(infoMap.containsKey("orderType") && infoMap.get("orderType").equals("1")){
                 customerManage.setLiters(BigDecimal.valueOf((Double) infoMap.get("orderLiters")));    //存入升数
@@ -1284,6 +1278,10 @@ public class PayController {
         customerPoints.setRecentlyPoints(calculateIntegral.getIntegral());  //用户当前所获得的积分
         customerPoints.setStationId(calculateIntegral.getStationId());  //油站ID
         customerPoints.setMinaOpenId(calculateIntegral.getOpenId());    //用户小程序ID
+        customerPoints.setCustomerName(calculateIntegral.getNickName());
+        if(calculateIntegral.getBlogOpenid() !=null){
+            customerPoints.setBlogOpenId(calculateIntegral.getBlogOpenid());
+        }
         customerPoints.setUnionId(calculateIntegral.getUnionId());      //用户unionId
         //获取客户积分信息
         CustomerPoints customerPointsInfo = customerPointsService.getCustomerPointsInfoByUnionId(customerPoints);
@@ -1356,8 +1354,8 @@ public class PayController {
                 gzhAppId = m.get("gzhAppId");
                 gzhAppSecret = m.get("gzhAppSecret");
             }
-            String blogOpenId = customerPoints.getBlogOpenId();     //公众号openId
-            if(blogOpenId !=null){
+            //String blogOpenId = customerPoints.getBlogOpenId();     //公众号openId
+            if(customerPoints.getBlogOpenId() !=null){
                 //推送模板
                 List<WxMpTemplateData> wxMpTemplate = new ArrayList<>();
                 wxMpTemplate.add(new WxMpTemplateData("first","尊敬的"+customerPoints.getCustomerName()+",您好:\n" + "您在"+stationName+"的积分最新交易信息如下"));
@@ -1372,7 +1370,7 @@ public class PayController {
                 gzhNewsTemplate.setTemplateType("1");
                 GzhNewsTemplate gzhNewsTemplateInfo = gzhNewsTemplateService.getGzhNewsTemplate(gzhNewsTemplate);
                 if(gzhNewsTemplateInfo !=null && gzhNewsTemplateInfo.getTemplateId() !=null){
-                    wxPushUtil.push(gzhAppId, gzhAppSecret, gzhNewsTemplateInfo.getTemplateId(), blogOpenId, wxMpTemplate);
+                    wxPushUtil.push(gzhAppId, gzhAppSecret, gzhNewsTemplateInfo.getTemplateId(), customerPoints.getBlogOpenId(), wxMpTemplate);
                 }
             }
 

+ 39 - 521
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -50,7 +50,7 @@ public class PayOrderController {
         AppUserInfo appUserInfo =new AppUserInfo();     //查询客户信息传递参数
         PayOrder payOrder = new PayOrder();             //生成订单参数
         if(StringUtils.isNotBlank(payOrderRequest.getUserType()) && StringUtils.isNotBlank(payOrderRequest.getOpenId()) && StringUtils.isNotBlank(payOrderRequest.getOilName()) &&
-                StringUtils.isNotBlank(payOrderRequest.getOilGun()) && payOrderRequest.getReceivableAmt() !=null && StringUtils.isNotBlank(payOrderRequest.getOrderType())){
+                StringUtils.isNotBlank(payOrderRequest.getOilGun()) && payOrderRequest.getReceivableAmt() !=null){
             appUserInfo.setUserType(payOrderRequest.getUserType());
             switch (payOrderRequest.getUserType()){
                 case "1":       //小程序
@@ -87,13 +87,16 @@ public class PayOrderController {
                 payOrder.setCreatedDate(new Timestamp(new Date().getTime()));                    //创建时间
                 payOrder.setOrderType(payOrderRequest.getOrderType());  //订单类型
                 payOrder.setOilGun(payOrderRequest.getOilGun());        //油枪号
-                payOrder.setReceivableAmt(payOrderRequest.getReceivableAmt());                //订单应收金额
+                payOrder.setReceivableAmt(Double.valueOf(payOrderRequest.getReceivableAmt()));                //订单应收金额
                 String oilName =payOrderRequest.getOilName();
                 //获取该油品所属哪一类
                 Oil oil = new Oil();
                 oil.setOilName(oilName);
                 Oil oilInfo = sysDictDataService.selectOilType(oil);
                 payOrder.setOilType(oilInfo.getOilsType());     //油品类型
+                String orderType = oilInfo.getOilsType();                          //获取订单类型
+                logger.info("订单类型:" + orderType);
+                payOrder.setOrderType(orderType);
                 payOrderRequest.setCardOilsType(oilInfo.getOilsType());                 //电子卡类型;注:用于获取客户电子卡参数查询
                 payOrder.setOilName(oilName);                   //油品名称
                 StationInfo stationInfo = new StationInfo();
@@ -125,14 +128,25 @@ public class PayOrderController {
                 }else {
                     payOrder.setOilPersonnel("");
                 }
-                String orderType = payOrderRequest.getOrderType();                          //获取订单类型
-                logger.info("订单类型:" + orderType);
-                if(orderType.equals("1")){                                                  //订单类型是油品时计算
+                if(orderType.equals("3")){                                                  //订单类型是油品时计算
+                    payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt()));        //非油品金额
+                    payOrder.setDiscountAmt(Double.valueOf(0));                                 //优惠金额
+                    payOrder.setOilPirce(payOrderRequest.getReceivableAmt().toString());        //非油品价格
+                    payOrder.setOrderLiters("0");
+                    resultMap.put("discountAmt", "0");                                          //优惠价格
+                    resultMap.put("amt", payOrderRequest.getReceivableAmt());                   //实收价格
+                    resultMap.put("receivableAmt", payOrderRequest.getReceivableAmt());         //应收价格
+                    resultMap.put("oilLiters", "0");
+                    resultMap.put("discountPrice", "0");
+                    resultMap.put("ordNo", ordNo);
+                    payOrderMapper.insertSelective(payOrder);
+                }else {
                     PayOrderResultInfo payOrderResultInfo = this.calculateAmt(payOrderRequest); //计算订单金额 价格 加油升数 等等
                     payOrder.setOilPirce(payOrderResultInfo.getOilPrice());
                     payOrder.setOrderLiters(payOrderResultInfo.getOilLiters());
                     payOrder.setDiscountAmt(Double.valueOf(payOrderResultInfo.getDiscountAmt()));
                     payOrder.setAmt(Double.valueOf(payOrderResultInfo.getAmt()));
+                    resultMap.put("cardEnabledFlag", payOrderResultInfo.getCardEnabledFlag());
                     resultMap.put("discountAmt", payOrderResultInfo.getDiscountAmt());                                          //优惠价格
                     resultMap.put("amt", payOrderResultInfo.getAmt());                   //实收价格
                     resultMap.put("receivableAmt", payOrderResultInfo.getReceivableAmt());         //应收价格
@@ -144,18 +158,6 @@ public class PayOrderController {
                     resultMap.put("ordNo", ordNo);
                     logger.info("返回前端的结果:" +resultMap.toString());
                     payOrderMapper.insertSelective(payOrder);
-                }else {
-                    payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt()));        //非油品金额
-                    payOrder.setDiscountAmt(Double.valueOf(0));                                 //优惠金额
-                    payOrder.setOilPirce(payOrderRequest.getReceivableAmt().toString());        //非油品价格
-                    payOrder.setOrderLiters("0");
-                    resultMap.put("discountAmt", "0");                                          //优惠价格
-                    resultMap.put("amt", payOrderRequest.getReceivableAmt());                   //实收价格
-                    resultMap.put("receivableAmt", payOrderRequest.getReceivableAmt());         //应收价格
-                    resultMap.put("oilLiters", "0");
-                    resultMap.put("discountPrice", "0");
-                    resultMap.put("ordNo", ordNo);
-                    payOrderMapper.insertSelective(payOrder);
                 }
                 resultData = ResultData.success(resultMap);
             }else {
@@ -179,10 +181,11 @@ public class PayOrderController {
         Map<String, Object> map = new HashMap<>();
         map.put("oilName", oilName);
         map.put("stationId", stationId);
+        //获取油站油品价格 优惠方案 是否开启电子卡
         Map<String, Object> result = stationService.selectStationOilPriceAndDiscountSetting(map);
-        String oilPrice = result.get("oilPrice").toString();
-        String discountSetting = result.get("discountSetting").toString();
-        String cardEnabledFlag = result.get("cardEnabledFlag").toString();
+        String oilPrice = result.get("oilPrice").toString();                //油站油品价格
+        String discountSetting = result.get("discountSetting").toString();  //优惠方案
+        String cardEnabledFlag = result.get("cardEnabledFlag").toString();  //是否开启电子卡
 
         Map<String ,Object> params = new HashMap<String, Object>();
         params.put("stationId", stationId);
@@ -253,6 +256,7 @@ public class PayOrderController {
             }
         }
         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());
@@ -261,6 +265,7 @@ public class PayOrderController {
         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")){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
@@ -327,6 +332,7 @@ public class PayOrderController {
 
         }
         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());
@@ -335,6 +341,7 @@ public class PayOrderController {
         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")){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
@@ -402,6 +409,7 @@ public class PayOrderController {
             }
         }
         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());
@@ -410,6 +418,7 @@ public class PayOrderController {
         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")){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
@@ -488,6 +497,7 @@ public class PayOrderController {
             }
         }
         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());
@@ -496,6 +506,7 @@ public class PayOrderController {
         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")){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
@@ -534,491 +545,6 @@ public class PayOrderController {
         return result;
     }
 
-
-    /*
-     * ===========================计算订单金额======================================
-     * 第一次修订时间:2021年4月20日15:31:30
-     * 修订标题:修订优惠计算
-     * 修订内容 :
-     *    修改为目前只有三种优惠:根据立减、满减、独立直降;
-     *    注释:优惠为 1 是:表示不走满减、立减、独立直降优惠,只走等级直降的优惠;
-     *    条件规则:
-     *      一,优先满减(只有一档,不存在多档!)、立减(只有一档,不存在多档!)、独立直降(只有一档)
-     *      二,若用户消费门槛 >= 优惠门槛,且启用优惠叠加时,则计算优惠规则和等级优惠规则;
-     *         若用户消费门槛 >= 优惠门槛,且不启用优惠叠加时,则只计算优惠规则;
-     *         若用户消费门槛 <  优惠门槛,且启用优惠叠加时,则只计算等级规则;
-     *         若用户消费门槛 <  优惠门槛,且不启用优惠叠加时,则只计算等级规则;
-     *
-     * ===========================================================================
-     */
-    public Map<String ,Object> calculateAmtNew(PayOrderRequest payOrderRequest){
-        Map<String ,Object> resultMap = new HashMap<>();
-        if(payOrderRequest.getReceivableAmt() !=null){  //应收金额
-            Double receivableAmt = payOrderRequest.getReceivableAmt();  //应收金额 用户输入的金额
-            Integer stationId = payOrderRequest.getStationId();         //油站ID
-
-            //String oilGun = payOrderRequest.getOilGun();                //油枪号
-            String oilName = payOrderRequest.getOilName();          //油品名称
-            String openId = payOrderRequest.getOpenId();        //用户的openId
-            String mobilePhone = payOrderRequest.getCustomerPhone();        //客户手机号
-            //获取油品价格
-            StationOilPrice stationOilPrice = new StationOilPrice();
-            stationOilPrice.setStationId(stationId);
-            stationOilPrice.setOilName(oilName);
-            StationOilPrice oilPriceInfo = stationService.getStationOilPrice(stationOilPrice);
-            String oilPrice = oilPriceInfo.getOilPrice();
-            //String stationNanme = oilPriceInfo.getStationNanme();
-            BigDecimal oilLiters = new BigDecimal(0);
-            BigDecimal discountAmt =new BigDecimal(0);
-            BigDecimal discountPrice = null;
-            BigDecimal amt = null;
-
-            //resultMap.put("stationName", stationNanme);
-            resultMap.put("oilPrice", oilPrice);        //油品价格
-            resultMap.put("receivableAmt", receivableAmt);        //应收价格
-            //该油站的优惠方式
-            String stationDiscountWay = stationService.getStationDiscountWay(stationId.toString());
-            Map<String ,Object> params = new HashMap<String, Object>();
-            params.put("stationId", stationId);
-            params.put("oilName", oilName);
-            params.put("receivableAmt", receivableAmt);
-            params.put("oilPrice", oilPrice);
-            params.put("mobilePhone", mobilePhone);
-            params.put("minaOpenid", openId);
-            BigDecimal receivableAmt_b = new BigDecimal(receivableAmt); //传入的应收金额
-            switch (stationDiscountWay){
-                case "1":       //1.等级直降
-                    //查询等级直降的优惠方式
-                    //查询客户等级信息
-                    List<Map<String, Object>> customerGradeInfo = customerGradeServices.getCustomerGradeInfo(params);
-                    if(customerGradeInfo != null && customerGradeInfo.size() >0){   //已存在客户等级信息
-                        //使用客户已存在的等级计算优惠
-                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                        if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                        }
-                        if(customerGradeInfo.get(0).containsKey("gasoilDiscountLitre")){    //表示可以查到客户在当前油站的等级信息,油站等级体系没有删除
-                            if(customerGradeInfo.get(0).get("gasoilDiscountLitre") !=null){
-                                discountAmt = oilLiters.multiply(new BigDecimal(customerGradeInfo.get(0).get("gasoilDiscountLitre").toString()));
-                                discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-                            }else {
-                                discountAmt =new BigDecimal("0.00");
-                            }
-                        }else {
-                            //如果存在客户等级,但油站修改等级体系,客户等级已超出等级体系时
-                            List<Map> cList = customerGradeServices.getCustomerGradeListOrderByDesc(params);
-                            if(cList !=null && cList.size() >0){
-                                CustomerManage customerManage = new CustomerManage();
-                                customerManage.setStationId(Integer.valueOf(params.get("stationId").toString()));    //油站ID
-                                customerManage.setOilName(params.get("oilName").toString());                        //油品名称
-                                customerManage.setPhoneNumber(params.get("mobilePhone").toString());
-                                customerManage.setMinaOpenid(params.get("minaOpenid").toString());
-                                CustomerManage existCustomer = customerManagerService.getCustomerManageInfo(customerManage);         //已存在用户信息 existCustomer
-                                for(Map m : cList){
-                                    if(Double.valueOf(existCustomer.getAmt().toString()) >= Double.valueOf(m.get("memberConditStart").toString())){
-                                        discountAmt = oilLiters.multiply(new BigDecimal(cList.get(0).get("gasoilDiscountLitre").toString()));
-                                        discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-                                        break;
-                                    }
-                                }
-                            }
-                        }
-                        amt = receivableAmt_b.subtract(discountAmt);
-                        discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                        resultMap.put("discountAmt", discountAmt.doubleValue());
-                        resultMap.put("amt", amt.doubleValue());
-                        resultMap.put("oilLiters", oilLiters.doubleValue());
-                        resultMap.put("discountPrice", discountPrice.doubleValue());
-                    }else {
-                        //不存在客户等级信息时,查询油站的客户等级直降优惠(查询结果根据会员成长值条件做升序查询)
-                        List<Map> customerGradeList = customerGradeServices.getCustomerGradeList(params);
-                        //如果存在
-                        if(customerGradeList !=null && customerGradeList.size() >0){
-                            //用户第一次购买 取等级最低初始会员的优惠条件计算
-                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                            if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                            }
-
-                            if(customerGradeList.get(0).get("gasoilDiscountLitre") !=null){
-                                discountAmt = oilLiters.multiply(new BigDecimal(customerGradeList.get(0).get("gasoilDiscountLitre").toString()));
-                                discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-                            }else {
-                                discountAmt =new BigDecimal("0.00");
-                            }
-                            amt = receivableAmt_b.subtract(discountAmt);
-                            discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                            resultMap.put("discountAmt", discountAmt.doubleValue());
-                            resultMap.put("amt", amt.doubleValue());
-                            resultMap.put("oilLiters", oilLiters.doubleValue());
-                            resultMap.put("discountPrice", discountPrice.doubleValue());
-                        }else {
-                            //不存在
-                            resultMap.put("discountAmt", 0);
-                            resultMap.put("amt", receivableAmt.doubleValue());
-                            oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_UP);
-                            resultMap.put("oilLiters", oilLiters.doubleValue());
-                            resultMap.put("discountPrice", oilPrice);
-                        }
-                    }
-                    break;
-                case "2":       //2.满减
-                    params.put("discountPlanType", "1");
-                    //营销方案
-                    List<Map> customerMarkertPlanList_1 = customerGradeServices.getCustomerMarkertPlanList(params);
-                    //有优惠规则
-                    if(customerMarkertPlanList_1 !=null && customerMarkertPlanList_1.size() >0){
-                        //是否共享会员优惠叠加: 1 代表是; 2 代表否;
-                        String vipDiscountyPlus = customerMarkertPlanList_1.get(0).get("vipDiscountyPlus").toString();
-                        //如果当前应收金额大于条件金额
-                        BigDecimal discountAmt_b = new BigDecimal(customerMarkertPlanList_1.get(0).get("discountAmt").toString());   //条件金额
-                        if(receivableAmt_b.compareTo(discountAmt_b) ==1 || receivableAmt_b.compareTo(discountAmt_b) ==0){
-                            BigDecimal gasoilDiscountAmt_b = new BigDecimal(customerMarkertPlanList_1.get(0).get("gasoilDiscountAmt").toString());   //每满多少优惠多少的金额
-                            discountAmt = receivableAmt_b.divide(discountAmt_b, 2, BigDecimal.ROUND_HALF_UP).multiply(gasoilDiscountAmt_b);  //优惠金额
-                            discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-                            amt = receivableAmt_b.subtract(discountAmt);   //实收金额
-                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                            if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                            }
-                            discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                            switch (vipDiscountyPlus){
-                                case "1":
-                                    Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                                    discountAmt = discountAmt.add(new BigDecimal(map.get("discountAmt").toString()));
-                                    amt = receivableAmt_b.subtract(discountAmt);
-                                    discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                                    resultMap.put("discountAmt", discountAmt.doubleValue());
-                                    resultMap.put("amt", amt.doubleValue());
-                                    resultMap.put("oilLiters", oilLiters.doubleValue());
-                                    resultMap.put("discountPrice", discountPrice.doubleValue());
-                                    break;
-                                case "2":
-                                    resultMap.put("discountAmt", discountAmt.doubleValue());
-                                    resultMap.put("amt", amt.doubleValue());
-                                    resultMap.put("oilLiters", oilLiters.doubleValue());
-                                    resultMap.put("discountPrice", discountPrice.doubleValue());
-                                    break;
-                            }
-                        }else{
-                            switch (vipDiscountyPlus){
-                                case "1":
-                                    Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                                    discountAmt = discountAmt.add(new BigDecimal(map.get("discountAmt").toString()));
-                                    oilLiters = new BigDecimal(map.get("oilLiters").toString());
-                                    amt = receivableAmt_b.subtract(discountAmt);
-                                    discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                                    resultMap.put("discountAmt", discountAmt.doubleValue());
-                                    resultMap.put("amt", amt.doubleValue());
-                                    resultMap.put("oilLiters", oilLiters.doubleValue());
-                                    resultMap.put("discountPrice", discountPrice.doubleValue());
-                                    break;
-                                case "2":
-                                    resultMap.put("discountAmt", 0);
-                                    resultMap.put("amt", receivableAmt.doubleValue());
-                                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                                    if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                                    }
-                                    resultMap.put("oilLiters", oilLiters.doubleValue());
-                                    resultMap.put("discountPrice", oilPrice);
-                                    break;
-                            }
-                        }
-                    }else {
-                        //用户没有设置优惠规则时
-                        Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                        resultMap.put("discountAmt", map.get("discountAmt").toString());
-                        resultMap.put("amt", map.get("amt").toString());
-                        resultMap.put("oilLiters", map.get("oilLiters").toString());
-                        resultMap.put("discountPrice", map.get("discountPrice").toString());
-                    }
-                    break;
-                case "3":       //3.立减
-                    params.put("discountPlanType", "2");
-                    //营销方案
-                    List<Map> customerMarkertPlanList_2 = customerGradeServices.getCustomerMarkertPlanList(params);
-                    if(customerMarkertPlanList_2 !=null && customerMarkertPlanList_2.size() >0){
-                        //是否共享会员优惠叠加: 1 代表是; 2 代表否;
-                        String vipDiscountyPlus = customerMarkertPlanList_2.get(0).get("vipDiscountyPlus").toString();
-                        //如果当前应收金额大于条件金额
-                        BigDecimal discountAmt_b = new BigDecimal(customerMarkertPlanList_2.get(0).get("discountAmt").toString());   //条件金额
-                        if(receivableAmt_b.compareTo(discountAmt_b) ==1 || receivableAmt_b.compareTo(discountAmt_b) ==0){
-                            BigDecimal gasoilDiscountAmt_b = new BigDecimal(customerMarkertPlanList_2.get(0).get("gasoilDiscountAmt").toString());   //满多少优惠多少的金额
-                            discountAmt = gasoilDiscountAmt_b;  //优惠金额
-                            amt = receivableAmt_b.subtract(gasoilDiscountAmt_b);   //实收金额
-                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                            if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                            }
-                            discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_UP);
-                            switch (vipDiscountyPlus){
-                                case "1":
-                                    Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                                    discountAmt = discountAmt.add(new BigDecimal(map.get("discountAmt").toString()));
-                                    amt = receivableAmt_b.subtract(discountAmt);
-                                    discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                                    //discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_UP);
-                                    resultMap.put("discountAmt", discountAmt.doubleValue());
-                                    resultMap.put("amt", amt.doubleValue());
-                                    resultMap.put("oilLiters", oilLiters.doubleValue());
-                                    resultMap.put("discountPrice", discountPrice.doubleValue());
-                                    break;
-                                case "2":
-                                    resultMap.put("discountAmt", discountAmt.doubleValue());
-                                    resultMap.put("amt", amt.doubleValue());
-                                    resultMap.put("oilLiters", oilLiters.doubleValue());
-                                    resultMap.put("discountPrice", discountPrice.doubleValue());
-                                    break;
-                            }
-                        }else {
-                            //不满足优惠条件
-                            switch (vipDiscountyPlus) {
-                                case "1":
-                                    Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                                    discountAmt = discountAmt.add(new BigDecimal(map.get("discountAmt").toString()));
-                                    oilLiters = new BigDecimal(map.get("oilLiters").toString());
-                                    amt = receivableAmt_b.subtract(discountAmt);
-                                    discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                                    //discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_UP);
-                                    resultMap.put("discountAmt", discountAmt.doubleValue());
-                                    resultMap.put("amt", amt.doubleValue());
-                                    resultMap.put("oilLiters", oilLiters.doubleValue());
-                                    resultMap.put("discountPrice", discountPrice.doubleValue());
-                                    break;
-                                case "2":
-                                    resultMap.put("discountAmt", 0);
-                                    resultMap.put("amt", receivableAmt.doubleValue());
-                                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                                    if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                                    }
-                                    resultMap.put("oilLiters", oilLiters.doubleValue());
-                                    resultMap.put("discountPrice", oilPrice);
-                                    break;
-                            }
-                        }
-                    }else {
-                        //用户没有设置优惠规则时
-                        Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                        resultMap.put("discountAmt", map.get("discountAmt").toString());
-                        resultMap.put("amt", map.get("amt").toString());
-                        resultMap.put("oilLiters", map.get("oilLiters").toString());
-                        resultMap.put("discountPrice", map.get("discountPrice").toString());
-                    }
-                    break;
-                case "4":       //4.独立直降
-                    params.put("discountPlanType", "3");
-                    //营销方案
-                    List<Map> customerMarkertPlanList_3 = customerGradeServices.getCustomerMarkertPlanList(params);
-                    if(customerMarkertPlanList_3 !=null && customerMarkertPlanList_3.size() >0){
-                        //是否共享会员优惠叠加: 1 代表是; 2 代表否;
-                        String vipDiscountyPlus_4 = customerMarkertPlanList_3.get(0).get("vipDiscountyPlus").toString();
-                        BigDecimal discountAmt_b = new BigDecimal(customerMarkertPlanList_3.get(0).get("discountAmt").toString());   //条件金额
-                        BigDecimal gasoilDiscountAmt_b = new BigDecimal(customerMarkertPlanList_3.get(0).get("gasoilDiscountAmt").toString());
-                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                        if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                        }
-                        if(customerMarkertPlanList_3.get(0).get("discountTerm").toString().equals("1")){   //按升数优惠
-                            if(oilLiters.compareTo(discountAmt_b) ==1 || oilLiters.compareTo(discountAmt_b) ==0){
-                                //计算
-                                discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
-                                discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-                                amt = receivableAmt_b.subtract(discountAmt);
-                                discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                                //discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_UP);        //优惠价格
-
-                                if(vipDiscountyPlus_4.equals("1")){
-                                    Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                                    discountAmt = discountAmt.add(new BigDecimal(map.get("discountAmt").toString()));
-                                    amt = receivableAmt_b.subtract(discountAmt);
-                                    discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                                    //discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_UP);
-                                }
-                                resultMap.put("discountAmt", discountAmt.doubleValue());
-                                resultMap.put("amt", amt.doubleValue());
-                                resultMap.put("oilLiters", oilLiters.doubleValue());
-                                resultMap.put("discountPrice", discountPrice.doubleValue());
-                                break;
-                            }else {
-                                //不满足优惠条件
-                                switch (vipDiscountyPlus_4) {
-                                    case "1":
-                                        Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                                        discountAmt = discountAmt.add(new BigDecimal(map.get("discountAmt").toString()));
-                                        oilLiters = new BigDecimal(map.get("oilLiters").toString());
-                                        amt = receivableAmt_b.subtract(discountAmt);
-                                        discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                                        resultMap.put("discountAmt", discountAmt.doubleValue());
-                                        resultMap.put("amt", amt.doubleValue());
-                                        resultMap.put("oilLiters", oilLiters.doubleValue());
-                                        resultMap.put("discountPrice", discountPrice.doubleValue());
-                                        break;
-                                    case "2":
-                                        resultMap.put("discountAmt", 0);
-                                        resultMap.put("amt", receivableAmt.doubleValue());
-                                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                                        if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                                        }
-                                        resultMap.put("oilLiters", oilLiters.doubleValue());
-                                        resultMap.put("discountPrice", oilPrice);
-                                        break;
-                                }
-                            }
-                        }else if(customerMarkertPlanList_3.get(0).get("discountTerm").toString().equals("2")){     //按金额优惠
-                            if(receivableAmt_b.compareTo(discountAmt_b) ==1 || receivableAmt_b.compareTo(discountAmt_b) ==0){
-                                discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
-                                discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-                                amt = receivableAmt_b.subtract(discountAmt);
-                                discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                                //是否共享会员优惠叠加
-                                if(vipDiscountyPlus_4.equals("1")){
-                                    Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                                    discountAmt = discountAmt.add(new BigDecimal(map.get("discountAmt").toString()));
-                                    amt = receivableAmt_b.subtract(discountAmt);
-                                    discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                                    //discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_UP);
-                                }
-                                resultMap.put("discountAmt", discountAmt.doubleValue());
-                                resultMap.put("amt", amt.doubleValue());
-                                resultMap.put("oilLiters", oilLiters.doubleValue());
-                                resultMap.put("discountPrice", discountPrice.doubleValue());
-                                break;
-                            }else {
-                                //不满足优惠条件
-                                switch (vipDiscountyPlus_4) {
-                                    case "1":
-                                        Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                                        discountAmt = discountAmt.add(new BigDecimal(map.get("discountAmt").toString()));
-                                        oilLiters = new BigDecimal(map.get("oilLiters").toString());
-                                        amt = receivableAmt_b.subtract(discountAmt);
-                                        discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                                        resultMap.put("discountAmt", discountAmt.doubleValue());
-                                        resultMap.put("amt", amt.doubleValue());
-                                        resultMap.put("oilLiters", oilLiters.doubleValue());
-                                        resultMap.put("discountPrice", discountPrice.doubleValue());
-                                        break;
-                                    case "2":
-                                        resultMap.put("discountAmt", 0);
-                                        resultMap.put("amt", receivableAmt.doubleValue());
-                                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                                        if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                                        }
-                                        resultMap.put("oilLiters", oilLiters.doubleValue());
-                                        resultMap.put("discountPrice", oilPrice);
-                                        break;
-                                }
-                            }
-                        }
-                    }else {
-                        //没有设置优惠条件时
-                        Map<String, Object> map = this.calcuteDengJiZhiJiang(params);
-                        resultMap.put("discountAmt", map.get("discountAmt").toString());
-                        resultMap.put("amt", map.get("amt").toString());
-                        resultMap.put("oilLiters", map.get("oilLiters").toString());
-                        resultMap.put("discountPrice", map.get("discountPrice").toString());
-                    }
-                    break;
-            }
-        }
-        return resultMap;
-    }
-
-    //计算
-
-
-    //计算等级直降
-    public  Map<String, Object> calcuteDengJiZhiJiang(Map params){
-        Double receivableAmt = Double.valueOf(params.get("receivableAmt").toString());
-        Map<String, Object> resultMap = new HashMap();
-        BigDecimal oilLiters = null;
-        BigDecimal discountAmt =new BigDecimal(0);
-        BigDecimal discountPrice = null;
-        BigDecimal amt = null;
-        BigDecimal receivableAmt_b = new BigDecimal(receivableAmt); //传入的应收金额
-        String oilPrice = params.get("oilPrice").toString();
-        List<Map<String, Object>> customerGradeInfo = customerGradeServices.getCustomerGradeInfo(params);
-        if(customerGradeInfo != null && customerGradeInfo.size() >0){   //已存在客户等级信息
-            //使用客户已存在的等级计算优惠
-            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-            if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-            }
-
-            if(customerGradeInfo.get(0).containsKey("gasoilDiscountLitre")){
-                if(customerGradeInfo.get(0).get("gasoilDiscountLitre") !=null){
-                    discountAmt = oilLiters.multiply(new BigDecimal(customerGradeInfo.get(0).get("gasoilDiscountLitre").toString()));
-                    discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-                }else {
-                    discountAmt =new BigDecimal("0.00");
-                }
-            }else {
-                //如果存在客户等级,但油站修改等级体系,客户等级已超出等级体系时
-                List<Map> cList = customerGradeServices.getCustomerGradeListOrderByDesc(params);
-                if(cList !=null && cList.size() >0){
-                    CustomerManage customerManage = new CustomerManage();
-                    customerManage.setStationId(Integer.valueOf(params.get("stationId").toString()));    //油站ID
-                    customerManage.setOilName(params.get("oilName").toString());    //油品名称
-                    customerManage.setPhoneNumber(params.get("mobilePhone").toString());
-                    customerManage.setMinaOpenid(params.get("minaOpenid").toString());
-                    CustomerManage existCustomer = customerManagerService.getCustomerManageInfo(customerManage);         //已存在用户信息 existCustomer
-                    for(Map m : cList){
-                        if(Double.valueOf(existCustomer.getAmt().toString()) >= Double.valueOf(m.get("memberConditStart").toString())){
-                            discountAmt = oilLiters.multiply(new BigDecimal(cList.get(0).get("gasoilDiscountLitre").toString()));
-                            discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-                            break;
-                        }
-                    }
-                }
-            }
-            amt = receivableAmt_b.subtract(discountAmt);
-            discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-            //discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_UP);
-            resultMap.put("discountAmt", discountAmt.doubleValue());
-            resultMap.put("amt", amt.doubleValue());
-            resultMap.put("oilLiters", oilLiters.doubleValue());
-            resultMap.put("discountPrice", discountPrice.doubleValue());
-        }else {
-            //不存在客户等级信息时,查询油站的客户等级直降优惠(查询结果根据会员成长值条件做升序查询)
-            List<Map> customerGradeList = customerGradeServices.getCustomerGradeList(params);
-            //如果存在
-            if(customerGradeList !=null && customerGradeList.size() >0){
-                //用户第一次购买 取等级最低初始会员的优惠条件计算
-                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                }
-                if(customerGradeList.get(0).get("gasoilDiscountLitre") !=null){
-                    discountAmt = oilLiters.multiply(new BigDecimal(customerGradeList.get(0).get("gasoilDiscountLitre").toString()));
-                    discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-                }else {
-                    discountAmt =new BigDecimal("0.00");
-                }
-                amt = receivableAmt_b.subtract(discountAmt);
-                discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
-                //discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_UP);
-                resultMap.put("discountAmt", discountAmt.doubleValue());
-                resultMap.put("amt", amt.doubleValue());
-                resultMap.put("oilLiters", oilLiters.doubleValue());
-                resultMap.put("discountPrice", discountPrice.doubleValue());
-            }else {
-                //不存在
-                resultMap.put("discountAmt", 0);
-                resultMap.put("amt", receivableAmt.doubleValue());
-                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
-                if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
-                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);
-                }
-                resultMap.put("oilLiters", oilLiters.doubleValue());
-                resultMap.put("discountPrice", oilPrice);
-            }
-        }
-        return resultMap;
-    }
-
     /**
      * 根据订单号获取订单信息
      * produces="application/json;charset=UTF-8",consumes = "application/json",
@@ -1026,24 +552,16 @@ public class PayOrderController {
      * @param
      * @return
      */
-    @RequestMapping(value = "/getPayOrderList", method = RequestMethod.GET)
+    @RequestMapping(value = "/selectOrderInfoByOrdNo", method = RequestMethod.GET)
     @ResponseBody
-    public String getPayOrderList(@RequestParam String orderNo,String openId,String userType){
+    public String getPayOrderList(@RequestParam String orderNo){
         Gson gson =new Gson();
         ResultData resultData =null;
-        //根据token 和 usertype来判断用户是否存在
-        boolean flag = appUserInfoService.selectAppUserInfo(openId,userType);
-        if(flag){
-            if(StringUtils.isNotBlank(orderNo)){
-                PayOrderRequest payOrderRequest =new PayOrderRequest();
-                payOrderRequest.setOrderNo(orderNo);
-                List<PayOrder> payOrderList = payOrderService.getPayOrderList(payOrderRequest.getOrderNo());
-                resultData=ResultData.success(payOrderList);
-            }else {
-                resultData=ResultData.error(CodeMsg.SEARCH_FAIL);
-            }
-        }else{
-            resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST);
+        if(StringUtils.isNotBlank(orderNo)){
+            PayOrder payOrder = payOrderService.selectOrderInfoByOrdNo(orderNo);
+            resultData = ResultData.success(payOrder);
+        }else {
+            resultData=ResultData.error(CodeMsg.SEARCH_FAIL);
         }
         return gson.toJson(resultData);
     }
@@ -1066,7 +584,7 @@ public class PayOrderController {
                         appUserInfo.setBlogOpenid(openId);
                         break;
                     case "2":
-                        appUserInfo.setMinaOpenid(openId);
+                        appUserInfo.setALiId(openId);
                         break;
                 }
                 List<PayOrder> payOrderList = payOrderService.getOrderListByOpenIdAndUserType(appUserInfo);

+ 8 - 6
YijiaRestful/src/main/java/com/platform/yijia/controller/StationController.java

@@ -181,19 +181,21 @@ public class StationController {
      public String getStationInfoList(@RequestParam String stationLongitude,String stationLatitude,Integer pageNum,Integer pageSize, String appId){
         Gson gson =new Gson();
         //返回结果集
-        ResultData resultData=null;
-        if(stationLongitude!=null && stationLatitude !=null){
-            if(StringUtils.isNotBlank(stationLongitude)&&StringUtils.isNotBlank(stationLatitude)){
-                StationRequest stationRequest=new StationRequest();
+        ResultData resultData= null;
+        if(StringUtils.isNotBlank(appId)){
+            StationRequest stationRequest = new StationRequest();
+            //StationInfo stationInfo = new StationInfo();
+            stationRequest.setAppId(appId);
+            //stationInfo.setAppId(appId);
+            if(StringUtils.isNotBlank(stationLatitude) && StringUtils.isNotBlank(stationLongitude)){
                 stationRequest.setStationLatitude(stationLatitude);
                 stationRequest.setStationLongitude(stationLongitude);
                 stationRequest.setPageNum(pageNum);
                 stationRequest.setPageSize(pageSize);
-                stationRequest.setAppId(appId);
                 //调用接口 根据坐标筛选距离最近的加油站
                 StationInfoVo stationInfoVo = stationService.stationInfoList(stationRequest);
                 resultData=ResultData.success(stationInfoVo);
-            }else{
+            }else {
                 resultData=ResultData.error(CodeMsg.REQUEST_FAIL);
             }
         }else{

+ 3 - 0
YijiaRestful/src/main/java/com/platform/yijia/dao/PayOrderMapper.java

@@ -9,6 +9,9 @@ import org.apache.ibatis.annotations.Param;
 
 public interface PayOrderMapper {
 
+    //根据订单号查询订单
+    PayOrder selectOrderInfoByOrdNo(String orderNo);
+
     //获取系统支付类型
     List<PayType> selectPayTypeList();
 

+ 9 - 0
YijiaRestful/src/main/java/com/platform/yijia/param/request/PayInfoRequest.java

@@ -14,6 +14,15 @@ public class PayInfoRequest {
     private Integer orderId;//订单id
     private String mno;
     private String subject; //商品名称
+    private String payType;
+
+    public String getPayType() {
+        return payType;
+    }
+
+    public void setPayType(String payType) {
+        this.payType = payType;
+    }
 
     public String getSubject() {
         return subject;

+ 2 - 2
YijiaRestful/src/main/java/com/platform/yijia/param/request/PayOrderRequest.java

@@ -21,8 +21,8 @@ public class PayOrderRequest {
     private String oilPersonnel;
     private String orderType;    //订单类型(1油品,2.非油品)
     private Double oilPrice;    //油品价格
-    private Double receivableAmt;   //应收金额
-    private Double receivedAmt;    //到账金额
+    private String receivableAmt;   //应收金额
+    private String receivedAmt;    //到账金额
     private String discountCoupon;  //优惠券
     private Double discountAmt;    //优惠金额
     private Double discountCouponAmt; //优惠券金额

+ 0 - 7
YijiaRestful/src/main/java/com/platform/yijia/pojo/CustomerManage.java

@@ -23,15 +23,8 @@ public class CustomerManage {
     private Date regtime;   // '注册时间',
     private Integer stationId; // '油站id',
     private String stationName; //'油站名称',
-    private String cyGrade; //'柴油等级',
-    private String qyGrade; //'汽油等级',
-    private BigDecimal cyLiters; // '柴油加油总升数',
-    private BigDecimal qyLiters;    //'汽油加油总升数',
-    private BigDecimal cyAmt;   //'柴油加油消费总金额',
-    private BigDecimal qyAmt; // '汽油加油消费总金额',
     private String blogOpenid; //'公众号openid',
     private String minaOpenid;     //'小程序openid',
-    private Integer blogUserId; // '公众号userid',
     private Integer minaUserId;  //'小程序的userid',
     private String grade;   //等级
     private String oilName; //油品名称  oil_name

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

@@ -15,6 +15,7 @@ public class PayOrderResultInfo {
     private String oilLiters;       //加油金额
     private String discountPrice;   //优惠单价
     private String oilPrice;        //原单价
+    private String cardEnabledFlag;    //是否开电子卡功能
     private String dzkAmt;         //电子卡金额
     private String balance;         //电子卡余额
     private String cardOilsType;    //电子卡类型

+ 3 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/PayOrderService.java

@@ -11,6 +11,9 @@ import java.util.Map;
 
 public interface PayOrderService {
 
+    //根据订单号查询订单
+    PayOrder selectOrderInfoByOrdNo(String orderNo);
+
     //获取系统支付类型
     List<PayType> selectPayTypeList();
 

+ 6 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/impl/PayOrderServiceImpl.java

@@ -24,6 +24,12 @@ public class PayOrderServiceImpl implements PayOrderService {
     @Resource
     private PayOrderMapper payOrderMapper;
 
+    //根据订单号查询订单
+    @Override
+    public PayOrder selectOrderInfoByOrdNo(String orderNo) {
+        return payOrderMapper.selectOrderInfoByOrdNo(orderNo);
+    }
+
     //获取系统支付类型
     @Override
     public List<PayType> selectPayTypeList() {

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

@@ -25,8 +25,8 @@ yijia:
 # Spring配置
 spring:
     datasource:
-#        url: jdbc:mysql://47.105.116.204:3306/jiaduoduo_db?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&serverTimezone=GMT%2b8&useSSL=true
-        url: jdbc:mysql://47.105.116.204:3306/jiaduoduo_db_debug?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&serverTimezone=GMT%2b8&useSSL=true
+#        url: jdbc:mysql://47.105.116.204:3306/jiaduoduo_db_debug?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&serverTimezone=GMT%2b8&useSSL=true
+        url: jdbc:mysql://115.28.211.17:3306/jiaduoduo_db_debug?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&serverTimezone=GMT%2b8&useSSL=true
         username: develop
         password: 1234.Abcd
         driver-class-name: com.mysql.cj.jdbc.Driver

+ 6 - 6
YijiaRestful/src/main/resources/mapper/AppUserInfoMapper.xml

@@ -93,14 +93,14 @@
     FROM
         app_user_info
     <where>
-      <if test="userType !=null and userType !=''">
-        user_type = #{userType}
-      </if>
       <if test="stationId !=null and stationId !=''">
-        AND station_id = #{stationId}
+        station_id = #{stationId}
       </if>
-      <if test="blogOpenid !=null and blogOpenid !=''">
-        AND blog_openid = #{blogOpenid}
+      <if test="mobilePhone !=null and mobilePhone !=''">
+        AND mobile_phone = #{mobilePhone}
+      </if>
+      <if test="unionId !=null and unionId !=''">
+        AND union_id = #{unionId}
       </if>
       <if test="minaOpenid !=null and minaOpenid !=''">
         AND mina_openid = #{minaOpenid}

+ 2 - 66
YijiaRestful/src/main/resources/mapper/CustomerManagerMapper.xml

@@ -7,7 +7,6 @@
       <result column="member_id"                jdbcType="VARCHAR"      property="memberId" />
       <result column="customer_name"            jdbcType="VARCHAR"      property="customerName" />
       <result column="commend_man"              jdbcType="VARCHAR"      property="commendMan" />
-      <result column="member_grade"             jdbcType="VARCHAR"      property="memberGrade" />
       <result column="phone_number"             jdbcType="VARCHAR"      property="phoneNumber" />
       <result column="car_number"               jdbcType="VARCHAR"      property="carNumber" />
       <result column="balance"                  jdbcType="DECIMAL"      property="balance" />
@@ -15,16 +14,6 @@
       <result column="special_car_type"         jdbcType="VARCHAR"      property="specialCarType" />
       <result column="regtime"                  jdbcType="TIMESTAMP"    property="regtime" />
       <result column="station_id"               jdbcType="INTEGER"      property="stationId" />
-      <result column="station_name"             jdbcType="VARCHAR"      property="stationName"/>
-      <result column="cy_grade"                 jdbcType="VARCHAR"      property="cyGrade" />
-      <result column="qy_grade"                 jdbcType="VARCHAR"      property="qyGrade" />
-      <result column="cy_liters"                jdbcType="DECIMAL"      property="cyLiters"/>
-      <result column="qy_liters"                jdbcType="DECIMAL"      property="qyLiters" />
-      <result column="cy_amt"                   jdbcType="DECIMAL"      property="cyAmt" />
-      <result column="qy_amt"                   jdbcType="DECIMAL"      property="qyAmt" />
-      <result column="blog_openid"              jdbcType="VARCHAR"      property="blogOpenid" />
-      <result column="mina_openid"              jdbcType="VARCHAR"      property="minaOpenid" />
-      <result column="blog_user_id"             jdbcType="INTEGER"      property="blogUserId" />
       <result column="mina_user_id"             jdbcType="INTEGER"      property="minaUserId"/>
       <result column="oil_name"                 jdbcType="VARCHAR"      property="oilName" />
       <result column="grade"                    jdbcType="VARCHAR"      property="grade" />
@@ -36,9 +25,8 @@
 
     <!--查询-->
     <sql id="Base_Column_List">
-        id, member_id, customer_name, commend_man, member_grade, phone_number, car_number, balance,
-        integral, special_car_type, regtime, station_id, station_name, cy_grade, qy_grade, cy_liters,
-        qy_liters, cy_amt, qy_amt, blog_openid, mina_openid, blog_user_id, mina_user_id, oil_name, grade,
+        id, member_id, customer_name, commend_man, phone_number, car_number, balance,
+        integral, special_car_type, regtime, station_id, mina_user_id, oil_name, grade,
         liters, amt, union_id, group_id
     </sql>
 
@@ -135,9 +123,6 @@
             <if test="memberId !=null ">
                 member_id = #{memberId},
             </if>
-            <if test="memberGrade !=null ">
-                member_grade = #{memberGrade},
-            </if>
             <if test="customerName !=null ">
                 customer_name = #{customerName},
             </if>
@@ -147,9 +132,6 @@
             <if test="regtime !=null ">
                 regtime = #{regtime},
             </if>
-            <if test="stationName !=null ">
-                station_name = #{stationName},
-            </if>
             <if test="oilName !=null ">
                 oil_name = #{oilName},
             </if>
@@ -192,9 +174,6 @@
             <if test="commendMan !=null ">
                 commend_man,
             </if>
-            <if test="memberGrade !=null ">
-                member_grade,
-            </if>
             <if test="phoneNumber !=null ">
                 phone_number,
             </if>
@@ -218,9 +197,6 @@
             <if test="stationId !=null ">
                 station_id,
             </if>
-            <if test="stationName !=null ">
-                station_name,
-            </if>
 
             <if test="oilName !=null ">
                 oil_name,
@@ -231,23 +207,6 @@
             <if test="amt !=null ">
                 amt,
             </if>
-
-            <if test="cyGrade !=null ">
-                cy_grade,
-            </if>
-            <if test="qyGrade !=null ">
-                qy_grade,
-            </if>
-
-            <if test="blogOpenid !=null ">
-                blog_openid,
-            </if>
-            <if test="minaOpenid !=null ">
-                mina_openid,
-            </if>
-            <if test="blogUserId !=null ">
-                blog_user_id,
-            </if>
             <if test="minaUserId !=null ">
                 mina_user_id,
             </if>
@@ -272,9 +231,6 @@
             <if test="commendMan !=null ">
                 #{commendMan},
             </if>
-            <if test="memberGrade !=null ">
-                #{memberGrade},
-            </if>
             <if test="phoneNumber !=null ">
                 #{phoneNumber},
             </if>
@@ -297,9 +253,6 @@
             <if test="stationId !=null ">
                 #{stationId, jdbcType=INTEGER},
             </if>
-            <if test="stationName !=null ">
-                #{stationName, jdbcType=VARCHAR},
-            </if>
 
             <if test="oilName !=null ">
                 #{oilName},
@@ -310,23 +263,6 @@
             <if test="amt !=null ">
                 #{amt},
             </if>
-
-            <if test="cyGrade !=null ">
-                #{cyGrade},
-            </if>
-            <if test="qyGrade !=null ">
-                #{qyGrade},
-            </if>
-
-            <if test="blogOpenid !=null ">
-                #{blogOpenid},
-            </if>
-            <if test="minaOpenid !=null ">
-                #{minaOpenid, jdbcType=VARCHAR},
-            </if>
-            <if test="blogUserId !=null ">
-                #{blogUserId, jdbcType=INTEGER},
-            </if>
             <if test="minaUserId !=null ">
                 #{minaUserId, jdbcType=INTEGER},
             </if>

+ 1 - 2
YijiaRestful/src/main/resources/mapper/CustomerPointsMapper.xml

@@ -15,14 +15,13 @@
     <result column="invalid_points"           jdbcType="INTEGER"    property="invalidPoints" />
     <result column="recent_consumption_date"  jdbcType="TIMESTAMP"  property="recentConsumptionDate" />
     <result column="station_id"               jdbcType="INTEGER"    property="stationId" />
-    <result column="station_name"             jdbcType="VARCHAR"    property="stationName" />
     <result column="create_time"              jdbcType="TIMESTAMP"  property="createTime" />
   </resultMap>
 
   <!--查询列-->
   <sql id="Base_Column_List">
     id, union_id, mobile_phone, customer_name, points, consumption_points, accumulate_points, invalid_points,
-    recent_consumption_date, station_id, station_name, create_time
+    recent_consumption_date, station_id,  create_time
   </sql>
 
   <!--查询客户积分信息-->

+ 1 - 59
YijiaRestful/src/main/resources/mapper/ElectronicMembershipCardMapper.xml

@@ -35,7 +35,6 @@
         <result column="balance"               jdbcType="DECIMAL"   property="balance" />
         <result column="create_time"           jdbcType="TIMESTAMP" property="createTime" />
         <result column="station_id"            jdbcType="INTEGER"   property="stationId" />
-        <result column="station_name"          jdbcType="VARCHAR"   property="stationName" />
         <result column="status"                jdbcType="VARCHAR"   property="status" />
     </resultMap>
 
@@ -50,7 +49,6 @@
         <result column="is_discount_coupon"         jdbcType="VARCHAR"    property="isDiscountCoupon" />
         <result column="enjoy_integral_multiple"    jdbcType="DATE"       property="enjoyIntegralMultiple" />
         <result column="station_id"                 jdbcType="INTEGER"    property="stationId" />
-        <result column="station_name"               jdbcType="VARCHAR"    property="stationName" />
         <result column="create_time"                jdbcType="VARCHAR"    property="createTime" />
         <result column="is_market"                  jdbcType="VARCHAR"    property="isMarket" />
         <result column="is_grade_setting"           jdbcType="VARCHAR"    property="isGradeSetting" />
@@ -65,7 +63,6 @@
         <result column="discount_amt_start"         jdbcType="DECIMAL"      property="discountAmtStart" />
         <result column="discount_amt_end"           jdbcType="DECIMAL"      property="discountAmtEnd" />
         <result column="present_amt"                jdbcType="DECIMAL"      property="presentAmt"/>
-        <result column="oil_name"                   jdbcType="VARCHAR"      property="oilName" />
         <result column="status"                     jdbcType="VARCHAR"      property="status" />
     </resultMap>
 
@@ -81,7 +78,6 @@
             T1.is_discount_coupon,
             T1.enjoy_integral_multiple,
             T1.station_id,
-            T1.station_name,
             T1.create_time,
             T1.is_market,
             T1.is_grade_setting,
@@ -129,7 +125,6 @@
             T1.present_amt,
             T1.create_time,
             T1.station_id,
-            T3.station_name,
             T1.status
         FROM
             customer_card_use_record    AS T1
@@ -204,9 +199,6 @@
             <if test="stationId !=null">
                 station_id,
             </if>
-            <if test="stationName !=null">
-                station_name,
-            </if>
             <if test="status !=null">
                 status,
             </if>
@@ -251,9 +243,6 @@
             <if test="stationId !=null">
                 #{stationId},
             </if>
-            <if test="stationName !=null">
-                #{stationName},
-            </if>
             <if test="status !=null">
                 #{status},
             </if>
@@ -297,9 +286,6 @@
             <if test="stationId !=null">
                 station_id,
             </if>
-            <if test="stationName !=null">
-                station_name,
-            </if>
             <if test="status !=null">
                 status,
             </if>
@@ -338,9 +324,6 @@
             <if test="stationId !=null">
                 #{stationId},
             </if>
-            <if test="stationName !=null">
-                #{stationName},
-            </if>
             <if test="status !=null">
                 #{status},
             </if>
@@ -364,7 +347,6 @@
             balance,
             create_time,
             station_id,
-            station_name,
             status
          FROM
             customer_card_record_recharge
@@ -394,7 +376,6 @@
             balance,
             create_time,
             station_id,
-            station_name,
             status
          FROM
             customer_card_record_consumption
@@ -464,14 +445,11 @@
         SELECT
             id,
             union_id,
-            blog_openid,
-            mina_openid,
             customer_no,
             customer_name,
             amt,
             card_oils_type,
             station_id,
-            station_name,
             create_time,
             recently_time
         FROM
@@ -497,12 +475,6 @@
             <if test="unionId !=null">
                 union_id,
             </if>
-            <if test="blogOpenid !=null">
-                blog_openid,
-            </if>
-            <if test="minaOpenid !=null">
-                mina_openid,
-            </if>
             <if test="customerNo !=null">
                 customer_no,
             </if>
@@ -521,9 +493,6 @@
             <if test="stationId !=null">
                 station_id,
             </if>
-            <if test="stationName !=null">
-                station_name,
-            </if>
             <if test="createTime !=null">
                 create_time,
             </if>
@@ -535,12 +504,6 @@
             <if test="unionId !=null">
                 #{unionId},
             </if>
-            <if test="blogOpenid !=null">
-                #{blogOpenid},
-            </if>
-            <if test="minaOpenid !=null">
-                #{minaOpenid},
-            </if>
             <if test="customerNo !=null">
                 #{customerNo},
             </if>
@@ -559,9 +522,6 @@
             <if test="stationId !=null">
                 #{stationId},
             </if>
-            <if test="stationName !=null">
-                #{stationName},
-            </if>
             <if test="createTime !=null">
                 #{createTime},
             </if>
@@ -576,14 +536,11 @@
         SELECT
             id,
             union_id,
-            blog_openid,
-            mina_openid,
             customer_no,
             customer_name,
             amt,
             card_oils_type,
             station_id,
-            station_name,
             create_time,
             recently_time
         FROM
@@ -612,14 +569,11 @@
         SELECT
             id,
             union_id,
-            blog_openid,
-            mina_openid,
             customer_no,
             customer_name,
             amt,
             card_oils_type,
             station_id,
-            station_name,
             create_time,
             recently_time
         FROM
@@ -657,12 +611,6 @@
             <if test="unionId !=null">
                 union_id = #{unionId},
             </if>
-            <if test="blogOpenid !=null">
-                blog_openid = #{blogOpenid},
-            </if>
-            <if test="minaOpenid !=null">
-                mina_openid = #{minaOpenid},
-            </if>
             <if test="customerNo !=null">
                 customer_no = #{customerNo},
             </if>
@@ -681,9 +629,6 @@
             <if test="stationId !=null">
                 station_id = #{stationId},
             </if>
-            <if test="stationName !=null">
-                station_name = #{stationName},
-            </if>
             <if test="createTime !=null">
                 create_time = #{createTime},
             </if>
@@ -718,7 +663,7 @@
             sys_dept
         <where>
             <if test="stationId !='' and stationId != null" >
-                station_id = #{stationId}
+                dept_id = #{stationId}
             </if>
         </where>
     </select>
@@ -728,14 +673,11 @@
         SELECT
             id,
             union_id,
-            blog_openid,
-            mina_openid,
             customer_no,
             customer_name,
             amt,
             card_oils_type,
             station_id,
-            station_name,
             create_time,
             recently_time
         FROM

+ 2 - 6
YijiaRestful/src/main/resources/mapper/IntegralRuleMapper.xml

@@ -5,7 +5,6 @@
   <resultMap id="BaseResultMap" type="com.platform.yijia.pojo.IntegralRule">
       <id column="id" jdbcType="INTEGER" property="id" />
       <result column="station_id"             jdbcType="INTEGER" property="stationId" />
-      <result column="station_name"           jdbcType="VARCHAR" property="stationName" />
       <result column="term_date_manage"       jdbcType="VARCHAR" property="termDateManage" />
       <result column="empty_date"             jdbcType="DATE"    property="emptyDate" />
       <result column="expiration_reminder"    jdbcType="VARCHAR" property="expirationReminder" />
@@ -23,8 +22,7 @@
       <result column="parent_id"              jdbcType="INTEGER" property="parentId"/>
       <result column="rule_type"              jdbcType="VARCHAR" property="ruleType" />
       <result column="rule_terms"             jdbcType="DECIMAL" property="ruleTerms" />
-      <result column="gread_id"               jdbcType="INTEGER" property="greadId"/>
-      <result column="gread"                  jdbcType="VARCHAR" property="gread" />
+      <result column="grade"                  jdbcType="VARCHAR" property="gread" />
       <result column="oil_name"               jdbcType="VARCHAR" property="oilName" />
       <result column="sale_amt"               jdbcType="DECIMAL" property="saleAmt" />
       <result column="integral"               jdbcType="DECIMAL" property="integral" />
@@ -36,7 +34,6 @@
     SELECT
         T1.id,
         T1.station_id,
-        T1.station_name,
         T1.term_date_manage,
         T1.empty_date,
         T1.expiration_reminder,
@@ -49,8 +46,7 @@
         T2.rule_type,
         T2.rule_terms,
         T2.parent_id,
-        T2.gread_id,
-        T2.gread,
+        T2.grade,
         T2.oil_name,
         T2.sale_amt,
         T2.integral,

+ 15 - 2
YijiaRestful/src/main/resources/mapper/PayOrderMapper.xml

@@ -45,6 +45,8 @@
     <result column="payTypeName"            property="payTypeName" />
   </resultMap>
 
+
+
   <sql id="Example_Where_Clause">
     <where>
       <foreach collection="oredCriteria" item="criteria" separator="or">
@@ -123,6 +125,18 @@
     zfb_amt, pos_amt, xj_amt, didi_app_amt, ty_app_amt, other_amt, dzk_amt, score, member_no, member_amt,
     print_count, car_no, customer_phone, customer_grade, oil_type
   </sql>
+
+    <!--根据订单号查询订单信息-->
+    <select id="selectOrderInfoByOrdNo" parameterType="String"  resultMap="BaseResultMap">
+        SELECT
+            <include refid="Base_Column_List"/>
+        FROM
+            pay_order
+        WHERE
+            order_no =#{ordNo}
+    </select>
+
+
   <sql id="Base_Column_List_oilName">
         SELECT
             T1.dict_label                         AS oilName,
@@ -412,8 +426,7 @@
   <select id="selectPersonelName" parameterType="map" resultType="map">
     SELECT
         A.personnel_id      AS personnelId,
-        A.personnel_name    AS personelName,
-        A.station_name      AS stationName
+        A.personnel_name    AS personelName
     FROM
         station_personnel AS A
     <where>

+ 1 - 4
YijiaRestful/src/main/resources/mapper/StationInfoMapper.xml

@@ -612,19 +612,16 @@
         device_no                   AS deviceNo,
         device_name                 AS deviceName,
         station_id                  AS stationId,
-        station_name                AS stationName,
         device_type                 AS deviceType,
         device_serial_num           AS deviceSerialNum,
         gun_no                      AS gunNo,
-        device_status               AS deviceStatus,
         device_factory              AS deviceFactory,
         pos_fanout_exchange         AS posFanoutExchange,
         pos_queue                   AS posQueue
     FROM  station_device_manage
     <where>
-        device_status = "1"
       <if test="stationId != null and stationId !=''">
-        AND station_id = #{stationId}
+        station_id = #{stationId}
       </if>
       <if test="deviceNo != null and deviceNo !=''">
         AND device_no = #{deviceNo}

+ 3 - 4
YijiaRestful/src/main/resources/mapper/StationOilGunMapper.xml

@@ -306,16 +306,15 @@
     FROM  station_device_manage     AS A
         LEFT JOIN sys_dept          AS B ON A.station_id = B.dept_id
     <where>
-      A.device_status = "1"
+      <if test="stationId != null and stationId !=''">
+        A.station_id = #{stationId}
+      </if>
       <if test="oilGunNo != null and oilGunNo !=''">
         AND FIND_IN_SET(#{oilGunNo}, A.gun_no)
       </if>
       <if test="deviceType != null and deviceType !=''">
         AND A.device_type = #{deviceType}
       </if>
-      <if test="stationId != null and stationId !=''">
-        AND A.station_id = #{stationId}
-      </if>
     </where>
   </select>
 

+ 0 - 4
YijiaRestful/src/main/resources/mapper/SysDeptMapper.xml

@@ -2,10 +2,6 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.platform.yijia.dao.SysDeptMapper">
   <resultMap id="BaseResultMap" type="com.platform.yijia.pojo.SysDept">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-    -->
     <id column="dept_id" jdbcType="BIGINT" property="deptId" />
     <result column="parent_id" jdbcType="BIGINT" property="parentId" />
     <result column="ancestors" jdbcType="VARCHAR" property="ancestors" />

+ 3 - 24
YijiaRestful/src/test/java/com/palatform/yijia/test.java

@@ -13,31 +13,10 @@ public class test {
 
     public static void main(String[] args) {
 
-//        List<String> hasCard = new ArrayList<>();
-//        hasCard.add("1");
-//        hasCard.add("3");
-//        List<String> splitList = new ArrayList<>();
-//        splitList.add("1");
-//        splitList.add("2");
-//        splitList.add("3");
-//        splitList.add("4");
-//        for (int i=0; i<splitList.size(); i++){
-//            for (int y=0; y< hasCard.size(); y++){
-//                if(splitList.get(i).equals(hasCard.get(y))){
-//                    splitList.remove(i);
-//                }
-//            }
-//        }
-//        System.out.println(hasCard);
-
-
-        String cardOilsTypeStr = "1";
-        String[] split = cardOilsTypeStr.split(",");
-        for (int i=0; i<split.length; i++){
-            System.out.println(split[i]);
-        }
-
 
+        BigDecimal amt = new BigDecimal("2").subtract(new BigDecimal("2"));
+        amt =amt.signum() == -1 ? new BigDecimal(0): amt;
+        System.out.println(amt);
 
 
     }