| 
					
				 | 
			
			
				@@ -44,6 +44,22 @@ public class ElectronicMembershipCardController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private WxPushUtil wxPushUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //查询该油站是否启用电子会员卡 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @RequestMapping(value = "/getStationCardEnabledFlag", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String getStationCardEnabledFlag(@RequestParam Integer stationId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Gson gson =new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //返回结果集 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ResultData resultData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(stationId !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String stationCardEnabledFlag = electronicMembershipCardService.getStationCardEnabledFlag(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            resultData = ResultData.success(stationCardEnabledFlag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            resultData = ResultData.error(CodeMsg.REQUEST_FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return gson.toJson(resultData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //获取用户电子会员卡(储蓄卡)列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping(value = "/getElectronicCardList", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ResponseBody 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -99,6 +115,7 @@ public class ElectronicMembershipCardController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(cardRechargeSettingList !=null && cardRechargeSettingList.size() ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     String discountTime = cardRechargeSettingList.get(0).getDiscountTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //stationName = cardRechargeSettingList.get(0).getStationName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     String[] dctime={};     //会员充值活动时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if(discountTime.contains(",")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         dctime =discountTime.split(","); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -202,7 +219,10 @@ public class ElectronicMembershipCardController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 CustomerElectronicCard electronicCardInfoByUnionId = electronicMembershipCardService.getElectronicCardInfoByUnionId(c); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(electronicCardInfoByUnionId !=null && electronicCardInfoByUnionId.getCustomerNo() !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     customerCardUseRecord.setCustomerNo(electronicCardInfoByUnionId.getCustomerNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    customerCardUseRecord.setBalance(amt.add(customerCardUseRecord.getPresentAmt()).add(electronicCardInfoByUnionId.getAmt())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setAmt(electronicCardInfoByUnionId.getAmt()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    BigDecimal amt1 = electronicCardInfoByUnionId.getAmt(); //客户原有金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    BigDecimal amt2 = amt.add(customerCardUseRecord.getPresentAmt());   //客户本次共充值金额:充值金额+赠送金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    customerCardUseRecord.setBalance(amt1.add(amt2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //订单规则 时间+6位随机数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Random random = new Random(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -462,33 +482,44 @@ public class ElectronicMembershipCardController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             CustomerCardUseRecord customerCardUseRecordInfo = electronicMembershipCardService.getCardRecordByOrderNo(customerCardUseRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 0表示未支付  1表示已支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(customerCardUseRecordInfo !=null && customerCardUseRecordInfo.getStatus().equals("0")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                logger.info("客户unionId:" +customerCardUseRecordInfo.getUnionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 logger.info("充值单号:" + ordNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                customerElectronicCard.setUnionId(customerCardUseRecord.getUnionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                customerCardUseRecord.setStationId(customerCardUseRecordInfo.getStationId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                customerElectronicCard.setUnionId(customerCardUseRecordInfo.getUnionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                customerElectronicCard.setStationId(customerCardUseRecordInfo.getStationId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //customerCardUseRecord.setStationId(customerCardUseRecordInfo.getStationId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //是否有赠送金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 BigDecimal presentAmt =new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //BigDecimal cardSumAmt = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(customerCardUseRecordInfo.getPresentAmt() !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     presentAmt = customerCardUseRecordInfo.getPresentAmt();  //客户充值赠送金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    customerElectronicCard.setAmt(new BigDecimal(amt).add(presentAmt)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    customerElectronicCard.setAmt(new BigDecimal(amt)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    logger.info("客户充值赠送金额:" +presentAmt.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 customerElectronicCard.setRecentlyTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 customerElectronicCard.setCardOilsType(customerCardUseRecordInfo.getCardOilsType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                electronicMembershipCardService.updateElectronicCardInfoByUnionId(customerElectronicCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                customerCardUseRecord.setStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                customerCardUseRecord.setBalance(customerElectronicCard.getAmt()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                electronicMembershipCardService.updateCardRecordStatusByOrderNo(customerCardUseRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                logger.info("=====================电子会员卡充值成功============================="); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                customerCardUseRecord.setUnionId(customerCardUseRecordInfo.getUnionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                CustomerElectronicCard electronicCardInfo = electronicMembershipCardService.getElectronicCardInfo(customerElectronicCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(electronicCardInfo !=null && electronicCardInfo.getBlogOpenid() !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                logger.info("查询客户电子卡信息所传递参数: 油站ID:"+customerElectronicCard.getStationId()+"; 客户unionId:" + customerElectronicCard.getUnionId()+"; 卡的类型:"+ customerElectronicCard.getCardOilsType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //获取客户充值的得电子卡信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                CustomerElectronicCard electronicCardInfo = electronicMembershipCardService.getElectronicCardInfoByUnionId(customerElectronicCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(electronicCardInfo !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    logger.info("客户当前原有金额:" + electronicCardInfo.getAmt().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerElectronicCard.setAmt(electronicCardInfo.getAmt().add(new BigDecimal(amt)).add(presentAmt)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //更新客户要充值的电子会员卡的信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(customerElectronicCard.getStationId()!=null && customerElectronicCard.getUnionId() !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        logger.info("客户当前充值后应有金额:" + customerElectronicCard.getAmt().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        electronicMembershipCardService.updateElectronicCardInfoByUnionId(customerElectronicCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setBalance(customerElectronicCard.getAmt()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setOrderNo(ordNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //更新充值记录的状态和余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    electronicMembershipCardService.updateCardRecordStatusByOrderNo(customerCardUseRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    logger.info("===========客户电子会员卡充值成功已到账===="); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    logger.info("===========开始微信公众号推送消息功能:"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     String stationName = electronicCardInfo.getStationName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     String blogOpenid = electronicCardInfo.getBlogOpenid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     Integer stationId = electronicCardInfo.getStationId();      //油站ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     String customerName = electronicCardInfo.getCustomerName(); //客户名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    BigDecimal balance = electronicCardInfo.getAmt();   //当前余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal balance = customerElectronicCard.getAmt();   //当前余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     String customerNo = electronicCardInfo.getCustomerNo();     //电子卡号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //获取要推送充值成功模板的ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     GzhNewsTemplate gzhNewsTemplate = new GzhNewsTemplate(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -496,20 +527,29 @@ public class ElectronicMembershipCardController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     gzhNewsTemplate.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     GzhNewsTemplate gzhNewsTemplateInfo = gzhNewsTemplateService.getGzhNewsTemplate(gzhNewsTemplate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if(gzhNewsTemplateInfo !=null && gzhNewsTemplateInfo.getTemplateId() !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        logger.info("推送消息的油站ID:"+ gzhNewsTemplateInfo.getStationId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        logger.info("当前要推送消息所用使用的模板ID:"+ gzhNewsTemplateInfo.getTemplateId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         List<WxMpTemplateData> wxMpTemplate = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        wxMpTemplate.add(new WxMpTemplateData("first","尊敬的"+customerName+",您好:\n" + "您在"+stationName+"的电子会员卡充值成功信息如下")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        String cardName = customerCardUseRecordInfo.getCardOilsType() =="1"? "汽油":"柴油"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wxMpTemplate.add(new WxMpTemplateData("first","尊敬的"+customerName+",您好:\n" + "您在"+stationName+"的"+cardName+"电子会员卡充值成功信息如下")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         wxMpTemplate.add(new WxMpTemplateData("keyword1", customerNo)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        wxMpTemplate.add(new WxMpTemplateData("keyword2", amt)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        wxMpTemplate.add(new WxMpTemplateData("keyword3", presentAmt.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        wxMpTemplate.add(new WxMpTemplateData("keyword4", balance.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wxMpTemplate.add(new WxMpTemplateData("keyword2", amt + " 元")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wxMpTemplate.add(new WxMpTemplateData("keyword3", presentAmt.toString()+ " 元")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wxMpTemplate.add(new WxMpTemplateData("keyword4", balance.toString()+ " 元")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         wxMpTemplate.add(new WxMpTemplateData("keyword5", new SimpleDateFormat("yyyy年MM月dd日HH时mm分").format(new Date()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         wxMpTemplate.add(new WxMpTemplateData("remark","感谢您在"+ stationName+"的本次充值!")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        logger.info("要推送的消息内容:" +wxMpTemplate.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         Map<String, String> m = stationService.getStationAppIdAndAppSecret(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if(m !=null && m.containsKey("gzhAppId") && m.containsKey("gzhAppSecret")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             String gzhAppId = m.get("gzhAppId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             String gzhAppSecret = m.get("gzhAppSecret"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            wxPushUtil.push(gzhAppId, gzhAppSecret, gzhNewsTemplateInfo.getTemplateId(), blogOpenid, wxMpTemplate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            logger.info("电子会员卡公众号消息推送成功,推送人:"+ blogOpenid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if(electronicCardInfo.getBlogOpenid() !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                wxPushUtil.push(gzhAppId, gzhAppSecret, gzhNewsTemplateInfo.getTemplateId(), blogOpenid, wxMpTemplate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                logger.info("电子会员卡公众号消息推送成功,推送人:"+ blogOpenid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                logger.info("===================================本次充值流程结束==========================================="); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 |