| 
					
				 | 
			
			
				@@ -59,7 +59,72 @@ public class ElectronicMembershipCardController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //用户充值储蓄卡拉起随行付支付接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping(value = "/rechargeBalance", method = RequestMethod.POST) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public String rechargeBalance(@RequestBody RechargeBalance rechargeBalance){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String rechargeBalance(RechargeBalance rechargeBalance){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Gson gson =new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //返回结果集 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ResultData resultData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(rechargeBalance !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BigDecimal amt = new BigDecimal(rechargeBalance.getAmt()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String openId = rechargeBalance.getOpenId();    //公众号的openId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Integer stationId = rechargeBalance.getStationId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BigDecimal presentAmt = new BigDecimal(rechargeBalance.getPresentAmt()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String customerName = rechargeBalance.getCustomerName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String cardOilsType = rechargeBalance.getCardOilsType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String unionId = rechargeBalance.getUnionId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String stationName = rechargeBalance.getStationName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //电子会员卡使用记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CustomerCardUseRecord customerCardUseRecord = new CustomerCardUseRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setUnionId(unionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setAmt(amt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setPresentAmt(presentAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setCardOilsType(cardOilsType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setStationName(stationName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setCustomerName(customerName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setUsageType("+"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setType("1");      //1表示微信 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setStatus("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //订单规则 时间+6位随机数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Random random = new Random(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String str=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(int i=0; i<6; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                str+=random.nextInt(10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String orderNo = System.nanoTime()+str; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setOrderNo(orderNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //电子会员卡 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            customerElectronicCard.setUnionId(unionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            customerElectronicCard.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            customerElectronicCard.setCardOilsType(cardOilsType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerElectronicCard.setId(rechargeBalance.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerElectronicCard.setRecentlyTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //获取当前用户要充值的的电子会员卡信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CustomerElectronicCard electronicCardInfo = electronicMembershipCardService.getElectronicCardInfo(customerElectronicCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(electronicCardInfo != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal amtBalance = electronicCardInfo.getAmt();        //用户当前卡内余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(presentAmt !=null){  //有赠送金额时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerElectronicCard.setAmt(amtBalance.add(presentAmt).add(amt)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else { //无赠送金额时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerElectronicCard.setAmt(amtBalance.add(amt)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                electronicMembershipCardService.updateElectronicCardInfo(customerElectronicCard);   //更新电子会员看余额信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                electronicMembershipCardService.insetCardUseRecord(customerCardUseRecord);      //插入电子会员卡的使用记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultData = ResultData.success(orderNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultData = ResultData.error(CodeMsg.USER_EXSIST_CARD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return gson.toJson(resultData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //用户充值储蓄卡拉起随行付支付接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @RequestMapping(value = "/rechargeBalanceSXFPay", method = RequestMethod.POST) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String rechargeBalanceSXFPay(@RequestBody RechargeBalance rechargeBalance){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Gson gson =new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //返回结果集 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ResultData resultData = null; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -289,10 +354,25 @@ public class ElectronicMembershipCardController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         HashMap<String, Object> result = JSON.parseObject(gson.toJson(reqData), LinkedHashMap.class, Feature.OrderedField); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //验签 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String resultStr = RSASignature.getOrderContent(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        JSONObject req = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //JSONObject req = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         System.out.println(resultStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (RSASignature.doCheck(resultStr, sign, SXFPaySign.sxfPublic)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logger.info("验签成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //随行付回调验签成功更新客户电子卡余额 和 更新客户充值记录状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CustomerCardUseRecord customerCardUseRecord = new CustomerCardUseRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customerCardUseRecord.setOrderNo(ordNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CustomerCardUseRecord customerCardUseRecordInfo = electronicMembershipCardService.getCardRecordByOrderNo(customerCardUseRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 0表示未支付  1表示已支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(customerCardUseRecordInfo !=null && customerCardUseRecordInfo.getStatus().equals("0")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                customerElectronicCard.setUnionId(customerCardUseRecord.getUnionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                customerElectronicCard.setAmt(new BigDecimal(amt)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                customerElectronicCard.setRecentlyTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                electronicMembershipCardService.updateElectronicCardInfo(customerElectronicCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                customerCardUseRecord.setStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                electronicMembershipCardService.updateCardRecordStatusByOrderNo(customerCardUseRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                logger.info("=====================电子会员卡充值成功============================="); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logger.info("验签失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |