| 
					
				 | 
			
			
				@@ -1,27 +1,22 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.platform.yijia.controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.gson.Gson; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.platform.yijia.dao.PayOrderMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.platform.yijia.param.request.PayOrderRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.platform.yijia.pojo.AppUserInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.platform.yijia.pojo.PayOrder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.platform.yijia.pojo.StationOilPrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.platform.yijia.service.AppUserInfoService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.platform.yijia.service.CustomerGradeServices; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.platform.yijia.service.PayOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.platform.yijia.service.StationService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.platform.yijia.pojo.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.platform.yijia.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.platform.yijia.utils.CodeMsg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.platform.yijia.utils.ResultData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.naming.ldap.HasControls; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @RequestMapping("/demo") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35,6 +30,10 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private StationService stationService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private CustomerGradeServices customerGradeServices; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private PayOrderMapper payOrderMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ElectronicMembershipCardService electronicMembershipCardService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //一键支付,生成订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping(value = "/AddPayOrderInfo", consumes = "application/json", method = RequestMethod.POST) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -70,7 +69,7 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 resultData=ResultData.success(ordNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //接口修订 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            //接口修订 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //            Map<String, Object> stringObjectMap = payOrderService.AddPayOrderInfoNew(payOrderRequest, payOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //            if(stringObjectMap.containsKey("balanceNoEnough")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //                resultData=ResultData.error(CodeMsg.BALANCE_NOT_EENOUGH); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -84,23 +83,215 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return gson.toJson(resultData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //小程序支付生成订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @RequestMapping(value = "/AddPayOrderInfoNew", consumes = "application/json", method = RequestMethod.POST) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String  AddPayOrderInfoNew(@RequestBody PayOrderRequest payOrderRequest){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        logger.info("获取订单前端传来参数openId:"+ payOrderRequest.getOpenId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        logger.info("获取订单前端传来参数userType:"+ payOrderRequest.getUserType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Gson gson =new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ResultData resultData =null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AppUserInfo appUserInfo =new AppUserInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        appUserInfo.setUserType(payOrderRequest.getUserType());         //订单类型 是小程序还是公众号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(payOrderRequest.getUserType().equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            appUserInfo.setBlogOpenid(payOrderRequest.getOpenId());     //1 是公众号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else if(payOrderRequest.getUserType().equals("2")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            appUserInfo.setMinaOpenid(payOrderRequest.getOpenId());   //2是小程序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<AppUserInfo> appUserInfoList =appUserInfoService.Authentication(appUserInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String ,Object> resultMap = new HashMap<>();            //返回结果集 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //判断登录人员是否验证成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(appUserInfoList!=null && appUserInfoList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PayOrder payOrder = new PayOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setConsumer(appUserInfoList.get(0).getBlogNickName());             //昵称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setConsumerId(appUserInfoList.get(0).getUserId());                 //用户id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Random random = new Random(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String result=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(int i=0;i<6;i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result+=random.nextInt(10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String ordNo=System.nanoTime()+result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setOrderNo(ordNo);                                             //订单号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.info("生成的订单号:" + ordNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setDiscountCouponAmt(payOrderRequest.getDiscountCouponAmt());  //优惠劵金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setDiscountCoupon(payOrderRequest.getDiscountCoupon());        //优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setCarNo(payOrderRequest.getCarNo());                          //车牌号、 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setCustomerGrade(payOrderRequest.getCustomerGrade());          //客户电话 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setMemberNo(payOrderRequest.getMemberNo());                    //会员卡号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setMemberAmt(payOrderRequest.getMemberAmt());                  //会员支付金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //payOrder.setPrintCount(payOrderRequest.getPrintCount());              //小票数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setScore(payOrderRequest.getScore());                          //积分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setStationId(payOrderRequest.getStationId());                  //油站id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setStatus("0");                                                //创建订单 未支付状态 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isNotBlank(payOrderRequest.getUserType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String userType = payOrderRequest.getUserType();            //支付方式:02公众号,03小程序', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                switch (userType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case "1": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        payOrder.setPayWay("02"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case "2": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        payOrder.setPayWay("03"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setCreatedDate(new Date());                    //创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setOrderType(payOrderRequest.getOrderType());  //订单类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setOilGun(payOrderRequest.getOilGun());        //油枪号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //根据油站和油枪获取加油员和油品价格 油站名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            HashMap<String, Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            params.put("oliGunNo", payOrderRequest.getOilGun()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            params.put("stationId", payOrderRequest.getStationId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String oilPersonnel = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //使用list原因:一个枪号对应多个加油员场景 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<Map> mapResultList = payOrderMapper.selectPersonelName(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(mapResultList != null && mapResultList.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (Map per : mapResultList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(per.containsKey("personelName") && per.get("personelName").toString() !=null && per.get("personelName").toString() !=""){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        oilPersonnel += per.get("personelName").toString() +","; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(oilPersonnel !=""){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrder.setOilPersonnel(oilPersonnel.substring(0, oilPersonnel.length()-1));   //加油员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(mapResultList.get(0).containsKey("stationName") && mapResultList.get(0).get("stationName").toString() !="" && mapResultList.get(0).get("stationName").toString() !=null ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrder.setStationName(mapResultList.get(0).get("stationName").toString());        //油站名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String orderType = payOrderRequest.getOrderType();                          //获取订单类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(orderType.equals("1")){                                                  //订单类型是油品时计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultMap = this.calculateAmt(payOrderRequest);                         //计算油价 加油升数 优惠金额 实收金额 优惠价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrder.setOilPirce(resultMap.get("oilPrice").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrder.setOrderLiters(resultMap.get("oilLiters").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrder.setDiscountAmt(Double.valueOf(resultMap.get("discountAmt").toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrder.setAmt(Double.valueOf(resultMap.get("amt").toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setReceivableAmt(payOrderRequest.getReceivableAmt());                //订单应收金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String oilName =payOrderRequest.getOilName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setOilName(oilName);                   //油品名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String cardOilsType =""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            switch (oilName){                               //根据油品名称存储油品类型 1.柴油 2 汽油 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "92#": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrder.setOilType("2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cardOilsType ="2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "95#": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrder.setOilType("2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cardOilsType ="2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "97#": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrder.setOilType("2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cardOilsType ="2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "0#": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrder.setOilType("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cardOilsType ="1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "-10#": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrder.setOilType("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cardOilsType ="1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "-20#": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrder.setOilType("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cardOilsType ="1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payOrder.setOilType(orderType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //判断当前传来支付类型是电子卡支付 还是微信 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(payOrderRequest.getPayType().equals("wx")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrder.setPayType("wx");                          //支付类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                switch (orderType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case "1":       //油品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        payOrderMapper.insertSelective(payOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        resultMap.put("ordNo", ordNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        resultData = ResultData.success(resultMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case "2":       //非油品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Map<String, String> m = stationService.getStationAppIdAndAppSecret(payOrderRequest.getStationId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(m.containsKey("stationName") && m.get("stationName") !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            payOrder.setStationName(m.get("stationName")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt()));        //非油品金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        payOrder.setDiscountAmt(Double.valueOf(0));                                 //优惠金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        payOrder.setOilPirce(payOrderRequest.getReceivableAmt().toString());        //非油品价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        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"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        payOrderMapper.insertSelective(payOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        resultMap.put("ordNo", ordNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        resultData = ResultData.success(resultMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else if(payOrderRequest.getPayType().equals("dzk")){                           //电子会员卡 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrder.setPayType("dzk");                                                 //支付类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrder.setPayDate(new Date());                                            //支付时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrder.setReceivedAmt(Double.valueOf(resultMap.get("amt").toString()));   //实收金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                CustomerCardUseRecord customerCardUseRecord = new CustomerCardUseRecord();  //电子会员卡插入消费记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal balance = null;                                                  //电子会员卡余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrder.setDzkAmt(Double.valueOf(resultMap.get("amt").toString()));        //订单电子会员卡消费金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                customerElectronicCard.setCardOilsType(cardOilsType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                customerElectronicCard.setMinaOpenid(payOrderRequest.getOpenId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                customerElectronicCard.setStationId(payOrderRequest.getStationId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //获取用户电子会员卡信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                CustomerElectronicCard cardInfo = electronicMembershipCardService.getElectronicCardInfoByMinaOpenId(customerElectronicCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(cardInfo !=null ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setOrderNo(ordNo);                                        //电子会员卡记录订单号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setUnionId(cardInfo.getUnionId());                        //电子会员卡记录用户唯一标识 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setCustomerNo(cardInfo.getCustomerNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setAmt(new BigDecimal(resultMap.get("amt").toString()));      //电子会员卡记录用户余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setCardOilsType(cardInfo.getCardOilsType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setBalance(cardInfo.getAmt().subtract(new BigDecimal(resultMap.get("amt").toString()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setStationName(cardInfo.getStationName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setStationId(cardInfo.getStationId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setUsageType("-"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setCustomerName(payOrder.getConsumer()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerCardUseRecord.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    balance = cardInfo.getAmt(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //判断订单金额是否小于电子会员卡的余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(balance !=null && customerCardUseRecord.getAmt().compareTo(balance) == -1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    electronicMembershipCardService.insetCardUseRecord(customerCardUseRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //更新电子会员卡余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    CustomerElectronicCard c = new CustomerElectronicCard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    c.setAmt(balance.subtract(customerCardUseRecord.getAmt())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    c.setUnionId(customerCardUseRecord.getUnionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    c.setStationId(customerCardUseRecord.getStationId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    c.setCardOilsType(cardOilsType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    electronicMembershipCardService.updateElectronicCardInfoByUnionId(c); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrder.setStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderMapper.insertSelective(payOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultMap.put("ordNo", ordNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultData = ResultData.success(resultMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultData=ResultData.error(CodeMsg.BALANCE_NOT_EENOUGH); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //登录人验证失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return gson.toJson(resultData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /*** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 计算订单金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @RequestMapping(value = "/calculateAmt", consumes = "application/json", method = RequestMethod.POST) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public String calculateAmt(@RequestBody PayOrderRequest payOrderRequest){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Gson gson =new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ResultData resultData =null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Map<String ,Object> calculateAmt(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 oilGun = payOrderRequest.getOilGun();                //油枪号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String oilName = payOrderRequest.getOilName();          //油品名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String openId = payOrderRequest.getOpenId();        //用户的openId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String mobilePhone = payOrderRequest.getCustomerPhone();        //客户手机号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //获取油品价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             StationOilPrice stationOilPrice = new StationOilPrice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             stationOilPrice.setStationId(stationId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -112,10 +303,8 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BigDecimal discountPrice = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BigDecimal amt = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<String ,Object> resultMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultMap.put("oilPrice", oilPrice);        //油品价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultMap.put("receivableAmt", receivableAmt);        //应收价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //该油站的优惠方式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String stationDiscountWay = stationService.getStationDiscountWay(stationId.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Map<String ,Object> params = new HashMap<String, Object>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -301,13 +490,12 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            resultData = ResultData.success(resultMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //resultData = ResultData.success(resultMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return gson.toJson(resultData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return resultMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 根据订单号获取订单信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * produces="application/json;charset=UTF-8",consumes = "application/json", 
			 |