JK пре 4 година
родитељ
комит
ce7541c586

+ 25 - 19
YijiaRestful/src/main/java/com/platform/yijia/controller/AppUserInfoController.java

@@ -606,26 +606,38 @@ public class AppUserInfoController {
                 customerPoints.setStationName(stationInfos.getStationName());
                 customerElectronicCard.setStationName(stationInfos.getStationName());
             }
-            if(stationInfos.getCardRuleFlag().equals("1")){
-                if(stationInfos.getCardEnabledFlagGroup().equals("1")){
-                    customerPoints.setStationId(stationInfos.getGroupId());
-                    this.insertCustomerPointsInfo(customerPoints, request, stationInfos);
-                }
-            }
+//            if(stationInfos.getCardRuleFlag().equals("1")){
+//                if(stationInfos.getCardEnabledFlagGroup().equals("1")){
+//                    customerPoints.setStationId(stationInfos.getGroupId());
+//                    this.insertCustomerPointsInfo(customerPoints, request, stationInfos);
+//                }
+//            }
 
             //是否开起积分功能
             if(stationInfos.getIntegralRuleFlagGroup().equals("1")){
+                customerPoints.setStationId(stationInfos.getGroupId());
                 if(stationInfos.getIntegralFlagGroup().equals("1")){
                     this.insertCustomerPointsInfo(customerPoints, request, stationInfos);
                 }
+            }else {
+                if(stationInfos.getIntegralFlag().equals("1")){
+                    customerPoints.setStationId(request.getStationId());
+                    this.insertCustomerPointsInfo(customerPoints, request, stationInfos);
+                }
+
             }
-//            if(stationInfos !=null && stationInfos.getIntegralFlag().equals("1")){
-//                this.insertCustomerPointsInfo(customerPoints, request, stationInfos);
-//            }
             //是否开起电子卡功能
-//            if(stationInfos !=null && stationInfos.getCardEnabledFlag().equals("1")){
-//                this.insertCustomerElectronicCard(customerElectronicCard, request, stationInfos);
-//            }
+            if(stationInfos !=null && stationInfos.getCardRuleFlagGroup().equals("1")){
+                customerElectronicCard.setStationId(stationInfos.getGroupId());
+                if(stationInfos.getCardEnabledFlagGroup().equals("1")){
+                    this.insertCustomerElectronicCard(customerElectronicCard, request, stationInfos);
+                }
+            }else {
+                customerElectronicCard.setStationId(request.getStationId());
+                if(stationInfos.getCardEnabledFlag().equals("1")){
+                    this.insertCustomerElectronicCard(customerElectronicCard, request, stationInfos);
+                }
+            }
             resultData = ResultData.success(CodeMsg.SUCCESS);
         }catch (Exception e){
             resultData = ResultData.error(CodeMsg.INSERT_FAIL);
@@ -643,14 +655,8 @@ public class AppUserInfoController {
             c.setStationId(request.getStationId());
             c.setMobilePhone(request.getMobilePhone());
             c.setStationId(request.getStationId());
-//            if(stationInfos !=null && stationInfos.getIntegralRuleFlag().equals("1")){
-//                c.setStationId(stationInfos.getGroupId());
-//            }
             customerPointsService.updateCustomerPointsInfo(c);
         }else {
-//            if(stationInfos !=null && stationInfos.getIntegralRuleFlag().equals("1")){
-//                customerPoints.setStationId(stationInfos.getGroupId());
-//            }
             customerPointsService.insertCustomerPointsInfo(customerPoints);
         }
     }
@@ -659,7 +665,7 @@ public class AppUserInfoController {
     public void insertCustomerElectronicCard(CustomerElectronicCard customerElectronicCard, AppUserInfoRequest request, StationInfo stationInfos){
         CustomerCardSetting customerCardSetting = new CustomerCardSetting();
         customerCardSetting.setStationId(request.getStationId());
-        if(stationInfos.getCardRuleFlag().equals("1")){
+        if(stationInfos.getCardRuleFlagGroup().equals("1")){
             //表示共享则使用集团ID为查询条件
             customerCardSetting.setStationId(stationInfos.getGroupId());
             customerElectronicCard.setStationId(stationInfos.getGroupId());

+ 84 - 52
YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java

@@ -352,6 +352,15 @@ public class ElectronicMembershipCardController {
                 customerElectronicCard.setCardOilsType(cardOilsType);
                 customerElectronicCard.setUnionId(resultMap.get("unionId").toString());
                 customerElectronicCard.setStationId(Integer.valueOf(resultMap.get("stationId").toString()));
+
+                //获取油站信息
+                StationInfo stationInfo = new StationInfo();
+                stationInfo.setStationId(Integer.valueOf(stationId));
+                StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+                if(stationInfos.getCardRuleFlagGroup().equals("1")){
+                    customerElectronicCard.setStationId(stationInfos.getGroupId());
+                }
+
                 //获取用户电子会员卡信息
                 CustomerElectronicCard cardInfo = electronicMembershipCardService.getElectronicCardInfoByUnionId(customerElectronicCard);
                 if(cardInfo !=null ){
@@ -362,8 +371,8 @@ public class ElectronicMembershipCardController {
                     customerCardUseRecord.setStatus("1");
                     customerCardUseRecord.setCardOilsType(cardInfo.getCardOilsType());
                     customerCardUseRecord.setBalance(cardInfo.getAmt().subtract(new BigDecimal(amt)));
-                    customerCardUseRecord.setStationName(cardInfo.getStationName());
-                    customerCardUseRecord.setStationId(cardInfo.getStationId());
+                    customerCardUseRecord.setStationName(stationName);
+                    customerCardUseRecord.setStationId(Integer.valueOf(stationId));
                     customerCardUseRecord.setUsageType("-");
                     customerCardUseRecord.setCustomerName(consumer);
                     customerCardUseRecord.setCreateTime(new Date());
@@ -377,6 +386,9 @@ public class ElectronicMembershipCardController {
                     c.setAmt(balance.subtract(customerCardUseRecord.getAmt()));
                     c.setUnionId(customerCardUseRecord.getUnionId());
                     c.setStationId(customerCardUseRecord.getStationId());
+                    if(stationInfos.getCardRuleFlagGroup().equals("1")){
+                        c.setStationId(stationInfos.getGroupId());
+                    }
                     c.setCardOilsType(cardOilsType);
                     c.setRecentlyTime(new Date());
                     electronicMembershipCardService.updateElectronicCardInfoByUnionId(c);
@@ -457,10 +469,10 @@ public class ElectronicMembershipCardController {
                     }
 
                     //电子卡消费公众号通知
-                    if(blogOpenid !=""){
+                    if(StringUtils.isNotBlank(blogOpenid)){
                         String gzhAppId ="";
                         String gzhAppSecret ="";
-                        Map<String, String> m = stationService.getStationAppIdAndAppSecret(cardInfo.getStationId());
+                        Map<String, String> m = stationService.getStationAppIdAndAppSecret(Integer.valueOf(stationId));
                         if(m !=null && m.containsKey("stationName") && m.containsKey("gzhAppId") && m.containsKey("gzhAppSecret")){
                             stationName = m.get("stationName");
                             gzhAppId = m.get("gzhAppId");
@@ -475,7 +487,7 @@ public class ElectronicMembershipCardController {
                             wxMpTemplate.add(new WxMpTemplateData("keyword5", amt));
                             wxMpTemplate.add(new WxMpTemplateData("remark","感谢您在"+stationName+"本次消费,当前还剩余额 "+c.getAmt()+"元,祝您生活愉快~!"));
                             GzhNewsTemplate gzhNewsTemplate = new GzhNewsTemplate();
-                            gzhNewsTemplate.setStationId(cardInfo.getStationId());
+                            gzhNewsTemplate.setStationId(Integer.valueOf(stationId));
                             gzhNewsTemplate.setTemplateType("5");
                             GzhNewsTemplate gzhNewsTemplateInfo = gzhNewsTemplateService.getGzhNewsTemplate(gzhNewsTemplate);
                             if(gzhNewsTemplateInfo !=null && gzhNewsTemplateInfo.getTemplateId() !=null){
@@ -485,32 +497,50 @@ public class ElectronicMembershipCardController {
                     }
                     int integral =0;
                     //是否启用积分功能
-                    StationInfo stationInfo = new StationInfo();
-                    stationInfo.setStationId(Integer.valueOf(stationId));
-                    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());      //是否共享积分
-                        calculateIntegral.setAmt(new BigDecimal(amt));                                  //客户实收金额
-                        calculateIntegral.setReceivableAmt(new BigDecimal(receivableAmt));              //应收金额
-                        calculateIntegral.setOilLiters(new BigDecimal(oilLiters));                      //加油升数
-                        calculateIntegral.setOilName(oilName);                                          //油品名称
-                        calculateIntegral.setOilType(oilType);                                        //油类
-                        calculateIntegral.setStationId(Integer.valueOf(stationId));                     //油站ID
-                        calculateIntegral.setUnionId(unionId);                                          //客户UnionID
-                        calculateIntegral.setOpenId(minaOpenid);                                        //小程序openId
-                        calculateIntegral.setBlogOpenid(blogOpenid);                                    //公众号openId
-                        CalculateIntegral calculateIntegralInfo = this.calculateIntegral(calculateIntegral);    //计算积分
-                        integral = calculateIntegralInfo.getIntegral(); //赋值积分
-                        CustomerPoints customerPoints = this.insertUserIntegral(calculateIntegralInfo); //插入客户积分信息
-                        this.pushIntegral(customerPoints);  //推送积分
+//                    StationInfo stationInfo = new StationInfo();
+//                    stationInfo.setStationId(Integer.valueOf(stationId));
+//                    StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+                    CalculateIntegral calculateIntegral = new CalculateIntegral();
+                    calculateIntegral.setGroupId(stationInfos.getGroupId());
+                    calculateIntegral.setNickName(consumer);
+                    calculateIntegral.setOrderNo(ordNo);                                            //订单号
+                    calculateIntegral.setCustomerGrade(customerManage.getGrade());                  //客户等级
+                    calculateIntegral.setIntegralRuleFlag(stationInfos.getIntegralRuleFlagGroup());      //是否共享积分
+                    calculateIntegral.setAmt(new BigDecimal(amt));                                  //客户实收金额
+                    calculateIntegral.setReceivableAmt(new BigDecimal(receivableAmt));              //应收金额
+                    calculateIntegral.setOilLiters(new BigDecimal(oilLiters));                      //加油升数
+                    calculateIntegral.setOilName(oilName);                                          //油品名称
+                    calculateIntegral.setOilType(oilType);                                        //油类
+                    calculateIntegral.setStationId(Integer.valueOf(stationId));                     //油站ID
+                    calculateIntegral.setUnionId(unionId);                                          //客户UnionID
+                    calculateIntegral.setOpenId(minaOpenid);                                        //小程序openId
+                    calculateIntegral.setBlogOpenid(blogOpenid);                                    //公众号openId
+                    CustomerPoints customerPoints;
+                    //计算积分
+                    CalculateIntegral calculateIntegralInfos;
+                    if(stationInfos.getIntegralRuleFlagGroup().equals("1")){    //表示积分共享
+                        if(stationInfos.getIntegralFlagGroup().equals("1")){    //集团开启积分功能
+                            //calculateIntegral.setGroupId(stationInfos.getGroupId());
+                            calculateIntegralInfos = this.calculateIntegral(calculateIntegral);
+                            //插入客户所得积分
+                            customerPoints = this.insertUserIntegral(calculateIntegralInfos);
+                            //推送积分
+                            this.pushIntegral(customerPoints, calculateIntegral);
+                            integral =calculateIntegralInfos.getIntegral();
+                        }
+                    }else {
+                        if(stationInfos.getIntegralRuleFlag().equals("1")){
+                            //calculateIntegral.setStationId(stationInfos.getStationId());
+                            calculateIntegralInfos = this.calculateIntegral(calculateIntegral);
+                            //插入客户所得积分
+                            customerPoints = this.insertUserIntegral(calculateIntegralInfos);
+                            //推送积分
+                            this.pushIntegral(customerPoints, calculateIntegral);
+                            integral =calculateIntegralInfos.getIntegral();
+                        }
                     }
                     resultData = ResultData.success(CodeMsg.SUCCESS);
 
-                    //logger.info("小票打印方式:" + stationInfo.getPrintDeviceType());
                     //油站小票打印方式
                     if(stationInfos !=null && stationInfos.getPrintDeviceType() !=null){
                         logger.info("小票打印方式:" + stationInfo.getPrintDeviceType());
@@ -616,7 +646,6 @@ public class ElectronicMembershipCardController {
                 m.put("orderType", "oil");
             }
         }
-        //m.put("orderType", "oil");
         logger.info("要推送的订单的信息:" +m.toString());
         //定义推送格式
         Map<String, Object> params = new HashMap<>();
@@ -633,22 +662,23 @@ public class ElectronicMembershipCardController {
             params.put("posQueue", stationDeviceManagerInfo.getPosQueue());
             params.put("tusn", stationDeviceManagerInfo.getDeviceNo());
             params.put("printSetting", payOrder.getPrintSetting()); //小票打印方式
+            List<Map<String, Object>> list = new ArrayList<>();
+            list.add(m);
+            Map<String, Object> map = new HashMap<>();
+            map.put("contentData", list);
+            params.put("messageContent", map);
+            logger.info("开始推送消息:" +JSONObject.toJSONString(params));
+            String resultString = PosPrinterUtil.sendPosPrintDirectMessage(params);
+            JSONObject jsonObject = JSONObject.parseObject(resultString);
+            if(jsonObject.containsKey("code") && jsonObject.get("code").toString().equals("200")){
+                //如果打印成功 添加小票数量
+                PayOrder p = new PayOrder();
+                p.setPrintCount(1);
+                p.setOrderNo(infoMap.get("orderNo").toString());
+                payOrderService.getUpdatePayOrder(p);
+            }
         }
-        List<Map<String, Object>> list = new ArrayList<>();
-        list.add(m);
-        Map<String, Object> map = new HashMap<>();
-        map.put("contentData", list);
-        params.put("messageContent", map);
-        logger.info("开始推送消息:" +JSONObject.toJSONString(params));
-        String resultString = PosPrinterUtil.sendPosPrintDirectMessage(params);
-        JSONObject jsonObject = JSONObject.parseObject(resultString);
-        if(jsonObject.containsKey("code") && jsonObject.get("code").toString().equals("200")){
-            //如果打印成功 添加小票数量
-            PayOrder p = new PayOrder();
-            p.setPrintCount(1);
-            p.setOrderNo(infoMap.get("orderNo").toString());
-            payOrderService.getUpdatePayOrder(p);
-        }
+
     }
 
     //小票机打印
@@ -1184,7 +1214,7 @@ public class ElectronicMembershipCardController {
             StationInfo stationInfo = new StationInfo();
             stationInfo.setStationId(stationId);
             StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
-            if(stationInfos.getCardRuleFlag() !=null && stationInfos.getCardRuleFlag().equals("1")){
+            if(stationInfos.getCardRuleFlagGroup() !=null && stationInfos.getCardRuleFlagGroup().equals("1")){
                 //如果集团充值规则共享
                 customerCardSetting.setStationId(stationInfos.getGroupId());
             }
@@ -1499,9 +1529,9 @@ public class ElectronicMembershipCardController {
             logger.info("当前客户原有剩余积分:"+ customerPointsInfo.getPoints().toString());
             CustomerPointsRecord customerPointsRecord = new CustomerPointsRecord();
             customerPointsRecord.setCreateTime(new Date());
-            customerPointsRecord.setCustomerName(customerPointsInfo.getCustomerName());
-            customerPointsRecord.setStationName(customerPointsInfo.getStationName());
-            customerPointsRecord.setStationId(customerPointsInfo.getStationId());
+            customerPointsRecord.setCustomerName(calculateIntegral.getNickName());
+            customerPointsRecord.setStationName(calculateIntegral.getStationName());
+            customerPointsRecord.setStationId(calculateIntegral.getStationId());
             customerPointsRecord.setRecordType("+");
             customerPointsRecord.setUnionId(customerPointsInfo.getUnionId());
             customerPointsRecord.setIntegral(calculateIntegral.getIntegral());
@@ -1551,13 +1581,15 @@ public class ElectronicMembershipCardController {
     }
 
     //公众号推送积分
-    public void pushIntegral(CustomerPoints customerPoints){
+    public void pushIntegral(CustomerPoints customerPoints, CalculateIntegral calculateIntegral){
         String gzhAppId ="";
         String gzhAppSecret ="";
         String stationName = "";        //油站名称
         logger.info("客户小程序openId:" + customerPoints.getMinaOpenId());
-        if(customerPoints.getStationId() !=null){
-            Map<String, String> m = stationService.getStationAppIdAndAppSecret(customerPoints.getStationId());
+        logger.info("客户公众号openId:" + calculateIntegral.getBlogOpenid());
+        logger.info("客户所加油的油站ID:" + calculateIntegral.getStationId());
+        if(calculateIntegral.getStationId() !=null){
+            Map<String, String> m = stationService.getStationAppIdAndAppSecret(calculateIntegral.getStationId());
             if(m !=null && m.containsKey("stationName") && m.containsKey("gzhAppId") && m.containsKey("gzhAppSecret")){
                 stationName = m.get("stationName");
                 gzhAppId = m.get("gzhAppId");
@@ -1574,7 +1606,7 @@ public class ElectronicMembershipCardController {
                 wxMpTemplate.add(new WxMpTemplateData("remark",
                         "截止至" + new SimpleDateFormat(" yyyy年MM月dd日HH时mm分").format(new Date())+",您在"+stationName+"的可用积分为 "+customerPoints.getPoints().toString()+" 分"));
                 GzhNewsTemplate gzhNewsTemplate = new GzhNewsTemplate();
-                gzhNewsTemplate.setStationId(customerPoints.getStationId());
+                gzhNewsTemplate.setStationId(calculateIntegral.getStationId());
                 gzhNewsTemplate.setTemplateType("1");
                 GzhNewsTemplate gzhNewsTemplateInfo = gzhNewsTemplateService.getGzhNewsTemplate(gzhNewsTemplate);
                 if(gzhNewsTemplateInfo !=null && gzhNewsTemplateInfo.getTemplateId() !=null){

+ 6 - 0
YijiaRestful/src/main/java/com/platform/yijia/controller/IntegralShoppingMallController.java

@@ -464,6 +464,12 @@ public class IntegralShoppingMallController {
         if(stationId !=null && StringUtils.isNotBlank(oilName) && StringUtils.isNotBlank(oilType)){
             IntegralRule integralRule = new IntegralRule();
             integralRule.setStationId(stationId);
+            StationInfo stationInfo = new StationInfo();
+            stationInfo.setStationId(stationId);
+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+            if(stationInfos !=null && stationInfos.getIntegralRuleFlagGroup().equals("1")){
+                integralRule.setStationId(stationInfos.getGroupId());
+            }
             integralRule.setOilName(oilName);
             integralRule.setOilType(oilType);
             integralRule.setEmptyDate(new Date()); //有效期时间是否大于当前时间

+ 75 - 55
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -570,40 +570,57 @@ public class PayController {
                             stationInfo.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));
                             StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
                             int integral =0;
-                            if(stationInfos !=null && stationInfos.getIntegralFlag().equals("1")){                             //是否启用积分功能
-                                CalculateIntegral calculateIntegral = new CalculateIntegral();
-                                calculateIntegral.setOrderNo(ordNo);
-                                if(infoMap.containsKey("consumer") && infoMap.get("consumer") !=null){
-                                    calculateIntegral.setNickName(infoMap.get("consumer").toString());
-                                }else {
-                                    calculateIntegral.setNickName("");
+                            CalculateIntegral calculateIntegral = new CalculateIntegral();
+                            calculateIntegral.setOrderNo(ordNo);
+                            if(infoMap.containsKey("consumer") && infoMap.get("consumer") !=null){
+                                calculateIntegral.setNickName(infoMap.get("consumer").toString());
+                            }else {
+                                calculateIntegral.setNickName("");
+                            }
+                            calculateIntegral.setGroupId(Integer.valueOf(infoMap.get("groupId").toString()));               //集团ID
+                            calculateIntegral.setCustomerGrade(customerManage.getGrade());                                  //客户等级
+                            calculateIntegral.setIntegralRuleFlag(stationInfos.getIntegralRuleFlagGroup());                 //是否共享积分规则
+                            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()));                        //实收金额
+                            calculateIntegral.setOilType(infoMap.get("oilType").toString());                               //订单类型
+                            calculateIntegral.setOilName(infoMap.get("oilName").toString());                                //油品名称
+                            calculateIntegral.setOilLiters(new BigDecimal(infoMap.get("orderLiters").toString()));          //加油升数
+                            calculateIntegral.setUnionId(infoMap.get("unionId").toString());                                //客户unionId
+                            calculateIntegral.setNickName(infoMap.get("consumer").toString());                              //客户昵称
+                            calculateIntegral.setMobilePhone(infoMap.get("mobilePhone").toString());                        //客户手机号
+                            calculateIntegral.setReceivableAmt(new BigDecimal(infoMap.get("receivableAmt").toString()));    //应收金额
+
+                            CustomerPoints customerPoints;
+                            //计算积分
+                            CalculateIntegral calculateIntegralInfos;
+                            if(stationInfos.getIntegralRuleFlagGroup().equals("1")){    //表示积分共享
+                                if(stationInfos.getIntegralFlagGroup().equals("1")){    //集团开启积分功能
+                                    //calculateIntegral.setGroupId(stationInfos.getGroupId());
+                                    calculateIntegralInfos = this.calculateIntegral(calculateIntegral);
+                                    //插入客户所得积分
+                                    customerPoints = this.insertUserIntegral(calculateIntegralInfos);
+                                    //推送积分
+                                    this.pushIntegral(customerPoints, calculateIntegral);
+                                    integral =calculateIntegralInfos.getIntegral();
                                 }
-                                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());
+                            }else {
+                                if(stationInfos.getIntegralRuleFlag().equals("1")){
+                                    //calculateIntegral.setStationId(stationInfos.getStationId());
+                                    calculateIntegralInfos = this.calculateIntegral(calculateIntegral);
+                                    //插入客户所得积分
+                                    customerPoints = this.insertUserIntegral(calculateIntegralInfos);
+                                    //推送积分
+                                    this.pushIntegral(customerPoints, calculateIntegral);
+                                    integral =calculateIntegralInfos.getIntegral();
                                 }
-                                calculateIntegral.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));           //油站ID
-                                calculateIntegral.setStationName(infoMap.get("stationName").toString());                        //油站名称
-                                calculateIntegral.setAmt(new BigDecimal(infoMap.get("amt").toString()));                        //实收金额
-                                calculateIntegral.setOilType(infoMap.get("oilType").toString());                              //订单类型
-                                calculateIntegral.setOilName(infoMap.get("oilName").toString());                                //油品名称
-                                calculateIntegral.setOilLiters(new BigDecimal(infoMap.get("orderLiters").toString()));          //加油升数
-                                calculateIntegral.setUnionId(infoMap.get("unionId").toString());                                //客户unionId
-                                calculateIntegral.setNickName(infoMap.get("consumer").toString());                              //客户昵称
-                                calculateIntegral.setMobilePhone(infoMap.get("mobilePhone").toString());                        //客户手机号
-                                calculateIntegral.setReceivableAmt(new BigDecimal(infoMap.get("receivableAmt").toString()));    //应收金额
-                                //计算积分
-                                CalculateIntegral calculateIntegralInfos = this.calculateIntegral(calculateIntegral);
-                                integral =calculateIntegralInfos.getIntegral();
-                                //插入客户所得积分
-                                CustomerPoints customerPoints = this.insertUserIntegral(calculateIntegralInfos);
-                                //推送积分
-                                this.pushIntegral(customerPoints);
                             }
 
+
                             //logger.info("小票打印方式:" + stationInfo.getPrintDeviceType());
                             if(stationInfos !=null && stationInfos.getPrintDeviceType() !=null){
                                 switch (stationInfos.getPrintDeviceType()){
@@ -810,23 +827,24 @@ public class PayController {
             params.put("posQueue", stationDeviceManagerInfo.getPosQueue());
             params.put("tusn", stationDeviceManagerInfo.getDeviceNo());
             params.put("printSetting", payOrder.getPrintSetting()); //小票打印方式
-        }
-        List<Map<String, Object>> list = new ArrayList<>();
-        list.add(m);
-        Map<String, Object> map = new HashMap<>();
-        map.put("contentData", list);
-        params.put("messageContent", map);
-        logger.info("开始推送消息:" +JSONObject.toJSONString(params));
+            List<Map<String, Object>> list = new ArrayList<>();
+            list.add(m);
+            Map<String, Object> map = new HashMap<>();
+            map.put("contentData", list);
+            params.put("messageContent", map);
+            logger.info("开始推送消息:" +JSONObject.toJSONString(params));
 
-        String resultString = PosPrinterUtil.sendPosPrintDirectMessage(m);
-        JSONObject jsonObject = JSONObject.parseObject(resultString);
-        if(jsonObject.containsKey("code") && jsonObject.get("code").toString().equals("200")){
-            //如果打印成功 添加小票数量
-            PayOrder p = new PayOrder();
-            p.setPrintCount(1);
-            p.setOrderNo(infoMap.get("orderNo").toString());
-            payOrderService.getUpdatePayOrder(p);
+            String resultString = PosPrinterUtil.sendPosPrintDirectMessage(m);
+            JSONObject jsonObject = JSONObject.parseObject(resultString);
+            if(jsonObject.containsKey("code") && jsonObject.get("code").toString().equals("200")){
+                //如果打印成功 添加小票数量
+                PayOrder p = new PayOrder();
+                p.setPrintCount(1);
+                p.setOrderNo(infoMap.get("orderNo").toString());
+                payOrderService.getUpdatePayOrder(p);
+            }
         }
+
     }
 
     //打印机打印小票
@@ -1265,9 +1283,9 @@ public class PayController {
             logger.info("当前客户原有剩余积分:"+ customerPointsInfo.getPoints().toString());
             CustomerPointsRecord customerPointsRecord = new CustomerPointsRecord();
             customerPointsRecord.setCreateTime(new Date());
-            customerPointsRecord.setCustomerName(customerPointsInfo.getCustomerName());
-            customerPointsRecord.setStationName(customerPointsInfo.getStationName());
-            customerPointsRecord.setStationId(customerPointsInfo.getStationId());
+            customerPointsRecord.setCustomerName(calculateIntegral.getNickName());
+            customerPointsRecord.setStationName(calculateIntegral.getStationName());
+            customerPointsRecord.setStationId(calculateIntegral.getStationId());
             customerPointsRecord.setRecordType("+");
             customerPointsRecord.setUnionId(customerPointsInfo.getUnionId());
             customerPointsRecord.setIntegral(calculateIntegral.getIntegral());
@@ -1317,23 +1335,25 @@ public class PayController {
     }
 
     //公众号推送积分
-    public void pushIntegral(CustomerPoints customerPoints){
+    public void pushIntegral(CustomerPoints customerPoints, CalculateIntegral calculateIntegral){
         String gzhAppId ="";
         String gzhAppSecret ="";
         String stationName = "";        //油站名称
         logger.info("客户小程序openId:" + customerPoints.getMinaOpenId());
-        if(customerPoints.getStationId() !=null){
-            Map<String, String> m = stationService.getStationAppIdAndAppSecret(customerPoints.getStationId());
+        logger.info("客户公众号openId:" + calculateIntegral.getBlogOpenid());
+        logger.info("客户所加油的油站ID:" + calculateIntegral.getStationId());
+        if(calculateIntegral.getStationId() !=null){
+            Map<String, String> m = stationService.getStationAppIdAndAppSecret(calculateIntegral.getStationId());
             if(m !=null && m.containsKey("stationName") && m.containsKey("gzhAppId") && m.containsKey("gzhAppSecret")){
                 stationName = m.get("stationName");
                 gzhAppId = m.get("gzhAppId");
                 gzhAppSecret = m.get("gzhAppSecret");
             }
             //String blogOpenId = customerPoints.getBlogOpenId();     //公众号openId
-            if(customerPoints.getBlogOpenId() !=null){
+            if(calculateIntegral.getBlogOpenid() !=null){
                 //推送模板
                 List<WxMpTemplateData> wxMpTemplate = new ArrayList<>();
-                wxMpTemplate.add(new WxMpTemplateData("first","尊敬的"+customerPoints.getCustomerName()+",您好:\n" + "您在"+stationName+"的积分最新交易信息如下"));
+                wxMpTemplate.add(new WxMpTemplateData("first","尊敬的"+calculateIntegral.getNickName()+",您好:\n" + "您在"+stationName+"的积分最新交易信息如下"));
                 wxMpTemplate.add(new WxMpTemplateData("time", new SimpleDateFormat("yyyy年MM月dd日HH时mm分").format(new Date())));
                 wxMpTemplate.add(new WxMpTemplateData("type", "增加"));
                 wxMpTemplate.add(new WxMpTemplateData("Point", String.valueOf(customerPoints.getRecentlyPoints())));
@@ -1341,11 +1361,11 @@ public class PayController {
                 wxMpTemplate.add(new WxMpTemplateData("remark",
                         "截止至" + new SimpleDateFormat(" yyyy年MM月dd日HH时mm分").format(new Date())+",您在"+stationName+"的可用积分为 "+customerPoints.getPoints().toString()+" 分"));
                 GzhNewsTemplate gzhNewsTemplate = new GzhNewsTemplate();
-                gzhNewsTemplate.setStationId(customerPoints.getStationId());
+                gzhNewsTemplate.setStationId(calculateIntegral.getStationId());
                 gzhNewsTemplate.setTemplateType("1");
                 GzhNewsTemplate gzhNewsTemplateInfo = gzhNewsTemplateService.getGzhNewsTemplate(gzhNewsTemplate);
                 if(gzhNewsTemplateInfo !=null && gzhNewsTemplateInfo.getTemplateId() !=null){
-                    wxPushUtil.push(gzhAppId, gzhAppSecret, gzhNewsTemplateInfo.getTemplateId(), customerPoints.getBlogOpenId(), wxMpTemplate);
+                    wxPushUtil.push(gzhAppId, gzhAppSecret, gzhNewsTemplateInfo.getTemplateId(), calculateIntegral.getBlogOpenid(), wxMpTemplate);
                 }
             }
 

+ 99 - 31
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -72,9 +72,16 @@ public class PayOrderController {
                 resultMap.put("stationName", stationInfos.getStationName());
                 AppUserInfo appUserInfos = appUserInfoService.getAppUserInfo(appUserInfo);
                 if(appUserInfos !=null){
-                    payOrderRequest.setCustomerPhone(appUserInfos.getMobilePhone());    //客户手机号; 注:此处存放手机号用于获取客户信息参数查询
-                    payOrderRequest.setUnionId(appUserInfos.getUnionId());              //客户UnionId;注:此处存放unionId用于获取客户电子卡参数查询
-                    payOrderRequest.setCustomerName(appUserInfos.getBlogNickName());             //昵称
+                    //payOrderRequest存放参数原因:用于其他方法形参
+                    payOrderRequest.setCardEnabledFlagGroup(stationInfos.getCardEnabledFlagGroup());        //集团是否开启电子卡
+                    payOrderRequest.setCardRuleFlagGroup(stationInfos.getCardRuleFlagGroup());              //集团是否共享
+                    payOrderRequest.setIntegralFlagGroup(stationInfos.getIntegralFlagGroup());              //集团是否启用积分功能
+                    payOrderRequest.setIntegralRuleFlagGroup(stationInfos.getIntegralRuleFlagGroup());      //集团是否共享
+                    payOrderRequest.setCustomerPhone(appUserInfos.getMobilePhone());                        //客户手机号; 注:此处存放手机号用于获取客户信息参数查询
+                    payOrderRequest.setUnionId(appUserInfos.getUnionId());                                  //客户UnionId;注:此处存放unionId用于获取客户电子卡参数查询
+                    payOrderRequest.setCustomerName(appUserInfos.getBlogNickName());                        //昵称
+                    payOrderRequest.setGroupId(stationInfos.getGroupId());                                  //集团ID
+
                     payOrder.setConsumer(appUserInfos.getBlogNickName());             //昵称
                     payOrder.setConsumerId(appUserInfos.getUserId());                 //用户id
                     Random random = new Random();
@@ -195,8 +202,8 @@ public class PayOrderController {
         String oilPrice = result.get("oilPrice").toString();                //油站油品价格
         String discountSetting = result.get("discountSetting").toString();  //优惠方案
         String cardEnabledFlag = result.get("cardEnabledFlag").toString();  //是否开启电子卡
-        String cardRuleFlag = result.get("cardRuleFlag").toString();  //是否共享电子卡储值规则
-        String groupId = result.get("groupId").toString();  //是否共享电子卡储值规则
+        String cardRuleFlag = result.get("cardRuleFlag").toString();        //是否共享电子卡储值规则
+        String groupId = payOrderRequest.getGroupId().toString();           //集团ID
 
         Map<String ,Object> params = new HashMap<String, Object>();
         params.put("stationId", stationId);
@@ -212,6 +219,14 @@ public class PayOrderController {
         params.put("cardOilsType", payOrderRequest.getCardOilsType());
         params.put("customerName", customerName);
         params.put("userPhone", userPhone);
+//      integralRuleFlagGroup;   //集团积分规则是否共享
+//      integralFlagGroup;       //集团是否开启积分功能
+//      cardRuleFlagGroup;       //集团是否共享电子卡充值规则
+//      cardEnabledFlagGroup;    //集团是否开启电子卡
+        params.put("integralRuleFlagGroup", payOrderRequest.getIntegralRuleFlagGroup());
+        params.put("integralFlagGroup", payOrderRequest.getIntegralFlagGroup());
+        params.put("cardRuleFlagGroup", payOrderRequest.getCardRuleFlagGroup());
+        params.put("cardEnabledFlagGroup", payOrderRequest.getCardEnabledFlagGroup());
 
         switch (discountSetting){
             case "0":   //不执营销方案时 计算等级优惠
@@ -293,12 +308,26 @@ public class PayOrderController {
         payOrderResultInfo.setOilPrice(oilPrice.toString());
         payOrderResultInfo.setDzkAmt(amt.toString());
         payOrderResultInfo.setOilsCardFlag("0");
-        payOrderResultInfo.setCardEnabledFlag(params.get("cardEnabledFlag").toString());
+        if(params.get("cardRuleFlagGroup").toString().equals("1")){
+            //表示开启共享
+            if(params.get("cardEnabledFlagGroup").toString().equals("1")){  //表示开启电子卡功能
+                payOrderResultInfo.setCardEnabledFlag("1");
+            }else {
+                payOrderResultInfo.setCardEnabledFlag("0");
+            }
+        }else {
+            //不共享,则查看油站电子卡是否开启
+            if(params.get("cardEnabledFlag").toString().equals("1")){
+                payOrderResultInfo.setCardEnabledFlag("1");
+            }else {
+                payOrderResultInfo.setCardEnabledFlag("0");
+            }
+        }
         logger.info("油站是否开启电子会员卡功能: " +params.get("cardEnabledFlag").toString());
-        if(params.get("cardEnabledFlag").toString().equals("1")){
+        if(payOrderResultInfo.getCardEnabledFlag().equals("1")){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
             customerCardSetting.setStationId(Integer.valueOf(params.get("stationId").toString()));
-            if(params.get("cardRuleFlag").toString().equals("1")){
+            if(params.get("cardRuleFlagGroup").toString().equals("1")){
                 customerCardSetting.setStationId(Integer.valueOf(params.get("groupId").toString()));
             }
             List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
@@ -341,7 +370,7 @@ public class PayOrderController {
             customerElectronicCard.setMobilePhone(params.get("userPhone").toString());
             customerElectronicCard.setCustomerName(params.get("customerName").toString());
             //查询客户余额和卡的类型
-            Map<String, String> map = this.selectCardBalance(customerElectronicCard);
+            Map<String, String> map = this.selectCardBalance(customerElectronicCard, params);
             payOrderResultInfo.setBalance(map.get("balance"));
             payOrderResultInfo.setOilsCardFlag(map.get("oilsCardFlag"));
             payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
@@ -399,12 +428,26 @@ public class PayOrderController {
         payOrderResultInfo.setOilPrice(oilPrice.toString());
         payOrderResultInfo.setDzkAmt(amt.toString());
         payOrderResultInfo.setOilsCardFlag("0");
-        payOrderResultInfo.setCardEnabledFlag(params.get("cardEnabledFlag").toString());
+        if(params.get("cardRuleFlagGroup").toString().equals("1")){
+            //表示开启共享
+            if(params.get("cardEnabledFlagGroup").toString().equals("1")){  //表示开启电子卡功能
+                payOrderResultInfo.setCardEnabledFlag("1");
+            }else {
+                payOrderResultInfo.setCardEnabledFlag("0");
+            }
+        }else {
+            //不共享,则查看油站电子卡是否开启
+            if(params.get("cardEnabledFlag").toString().equals("1")){
+                payOrderResultInfo.setCardEnabledFlag("1");
+            }else {
+                payOrderResultInfo.setCardEnabledFlag("0");
+            }
+        }
         logger.info("油站是否开启电子会员卡功能: " +params.get("cardEnabledFlag").toString());
-        if(params.get("cardEnabledFlag").toString().equals("1")){
+        if(payOrderResultInfo.getCardEnabledFlag().equals("1")){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
             customerCardSetting.setStationId(Integer.valueOf(params.get("stationId").toString()));
-            if(params.get("cardRuleFlag").toString().equals("1")){
+            if(params.get("cardRuleFlagGroup").toString().equals("1")){
                 customerCardSetting.setStationId(Integer.valueOf(params.get("groupId").toString()));
             }
             List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
@@ -445,7 +488,7 @@ public class PayOrderController {
             customerElectronicCard.setMobilePhone(params.get("userPhone").toString());
             customerElectronicCard.setCustomerName(params.get("customerName").toString());
             //查询客户余额和卡的类型
-            Map<String, String> map = this.selectCardBalance(customerElectronicCard);
+            Map<String, String> map = this.selectCardBalance(customerElectronicCard, params);
             payOrderResultInfo.setBalance(map.get("balance"));
             payOrderResultInfo.setOilsCardFlag(map.get("oilsCardFlag"));
             payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
@@ -505,12 +548,26 @@ public class PayOrderController {
         payOrderResultInfo.setOilPrice(oilPrice.toString());
         payOrderResultInfo.setDzkAmt(amt.toString());
         payOrderResultInfo.setOilsCardFlag("0");
-        payOrderResultInfo.setCardEnabledFlag(params.get("cardEnabledFlag").toString());
+        if(params.get("cardRuleFlagGroup").toString().equals("1")){
+            //表示开启共享
+            if(params.get("cardEnabledFlagGroup").toString().equals("1")){  //表示开启电子卡功能
+                payOrderResultInfo.setCardEnabledFlag("1");
+            }else {
+                payOrderResultInfo.setCardEnabledFlag("0");
+            }
+        }else {
+            //不共享,则查看油站电子卡是否开启
+            if(params.get("cardEnabledFlag").toString().equals("1")){
+                payOrderResultInfo.setCardEnabledFlag("1");
+            }else {
+                payOrderResultInfo.setCardEnabledFlag("0");
+            }
+        }
         logger.info("油站是否开启电子会员卡功能: " +params.get("cardEnabledFlag").toString());
-        if(params.get("cardEnabledFlag").toString().equals("1")){
+        if(payOrderResultInfo.getCardEnabledFlag().equals("1")){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
             customerCardSetting.setStationId(Integer.valueOf(params.get("stationId").toString()));
-            if(params.get("cardRuleFlag").toString().equals("1")){
+            if(params.get("cardRuleFlagGroup").toString().equals("1")){
                 customerCardSetting.setStationId(Integer.valueOf(params.get("groupId").toString()));
             }
             List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
@@ -552,7 +609,7 @@ public class PayOrderController {
             customerElectronicCard.setMobilePhone(params.get("userPhone").toString());
             customerElectronicCard.setCustomerName(params.get("customerName").toString());
             //查询客户余额和卡的类型
-            Map<String, String> map = this.selectCardBalance(customerElectronicCard);
+            Map<String, String> map = this.selectCardBalance(customerElectronicCard, params);
             payOrderResultInfo.setBalance(map.get("balance"));
             payOrderResultInfo.setOilsCardFlag(map.get("oilsCardFlag"));
             payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
@@ -616,15 +673,29 @@ public class PayOrderController {
         payOrderResultInfo.setOilPrice(oilPrice.toString());
         payOrderResultInfo.setDzkAmt(amt.toString());
         payOrderResultInfo.setOilsCardFlag("0");
-        payOrderResultInfo.setCardEnabledFlag(params.get("cardEnabledFlag").toString());
-        //电子卡是否开启
-        logger.info("油站是否开启电子会员卡功能: " +params.get("cardEnabledFlag").toString());
-        if(params.get("cardEnabledFlag").toString().equals("1")){
+        if(params.get("cardRuleFlagGroup").toString().equals("1")){
+            //表示开启共享
+            if(params.get("cardEnabledFlagGroup").toString().equals("1")){  //表示开启电子卡功能
+                payOrderResultInfo.setCardEnabledFlag("1");
+            }else {
+                payOrderResultInfo.setCardEnabledFlag("0");
+            }
+        }else {
+            //不共享,则查看油站电子卡是否开启
+            if(params.get("cardEnabledFlag").toString().equals("1")){
+                payOrderResultInfo.setCardEnabledFlag("1");
+            }else {
+                payOrderResultInfo.setCardEnabledFlag("0");
+            }
+        }
+        //电子卡功能是否开启
+        logger.info("油站是否开启电子会员卡功能: " +payOrderResultInfo.getCardEnabledFlag());
+        if(payOrderResultInfo.getCardEnabledFlag().equals("1")){
             payOrderResultInfo.setDzkAmt(receivableAmt.toString());
             payOrderResultInfo.setDzkDiscountAmt("0");
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
             customerCardSetting.setStationId(Integer.valueOf(params.get("stationId").toString()));
-            if(params.get("cardRuleFlag").toString().equals("1")){
+            if(params.get("cardRuleFlagGroup").toString().equals("1")){
                 customerCardSetting.setStationId(Integer.valueOf(params.get("groupId").toString()));
             }
             List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
@@ -642,7 +713,7 @@ public class PayOrderController {
             customerElectronicCard.setMobilePhone(params.get("userPhone").toString());
             customerElectronicCard.setCustomerName(params.get("customerName").toString());
             //查询客户余额和卡的类型
-            Map<String, String> map = this.selectCardBalance(customerElectronicCard);
+            Map<String, String> map = this.selectCardBalance(customerElectronicCard, params);
             payOrderResultInfo.setBalance(map.get("balance"));
             payOrderResultInfo.setOilsCardFlag(map.get("oilsCardFlag"));
             payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
@@ -651,22 +722,19 @@ public class PayOrderController {
     }
 
     //查询用户电子会员卡余额
-    public Map<String, String>  selectCardBalance(CustomerElectronicCard card) {
+    public Map<String, String>  selectCardBalance(CustomerElectronicCard card, Map params) {
         CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard();
         customerElectronicCard.setCardOilsType(card.getCardOilsType());
         customerElectronicCard.setStationId(card.getStationId());
         customerElectronicCard.setUnionId(card.getUnionId());
-        BigDecimal balance = null;
+        BigDecimal balance = new BigDecimal(0);
         String cardOilsType1 ="";
         Map<String, String> result = new HashMap<>();
-        StationInfo stationInfo  = new StationInfo();
-        stationInfo.setStationId(card.getStationId());
-        StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
         CustomerCardSetting customerCardSetting = new CustomerCardSetting();
         customerCardSetting.setStationId(card.getStationId());
-        if(stationInfos.getCardRuleFlag().equals("1")){
-            customerCardSetting.setStationId(stationInfos.getGroupId());
-            customerElectronicCard.setStationId(stationInfos.getGroupId());
+        if(params.get("cardRuleFlagGroup").equals("1")){    //
+            customerCardSetting.setStationId(Integer.valueOf(params.get("groupId").toString()));
+            customerElectronicCard.setStationId(Integer.valueOf(params.get("groupId").toString()));
         }
         List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
         if(cardRechargeSettingList !=null && cardRechargeSettingList.size()>0){

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

@@ -43,8 +43,15 @@ public class PayOrderRequest {
     private String customerGrade; //客户等级
     private String oilType; //油品类型
 
-    private String unionId; //unionId
-    private String customerName; //unionId
+    private String unionId;                 //unionId
+    private String customerName;            //客户昵称
+
+    private Integer groupId;                //集团ID
+
+    private String integralRuleFlagGroup;   //集团积分规则是否共享
+    private String integralFlagGroup;       //集团是否开启积分功能
+    private String cardRuleFlagGroup;       //集团是否共享电子卡充值规则
+    private String cardEnabledFlagGroup;    //集团是否开启电子卡
 
 
 

+ 2 - 2
YijiaRestful/src/main/java/com/platform/yijia/utils/weixinapp/WxPushUtil.java

@@ -69,9 +69,9 @@ public class WxPushUtil {
         try {
 //            wxMpTemplateMessage.setToUser(openId);
             wxMpService.getTemplateMsgService().sendTemplateMsg(wxMpTemplateMessage);
-            logger.info("推送成功");
+            logger.info("公众号消息推送成功");
         } catch (WxErrorException e) {
-            logger.error("推送失败" + e.getMessage());
+            logger.error("公众号消息推送失败" + e.getMessage());
             e.printStackTrace();
         }