| 
					
				 | 
			
			
				@@ -1442,16 +1442,17 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public String calculateCouponDiscount(@RequestParam String ordNo, @RequestParam Integer couponId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Gson gson =new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ResultData resultData =null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PayOrder payOrder = payOrderService.selectOrderInfoByOrdNo(ordNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PayOrder payOrder = new PayOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        payOrder.setOrderNo(ordNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(payOrder !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(infoMap !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Coupon coupon = new Coupon(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             coupon.setId(couponId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Coupon couponInfo = couponService.selectCouponInfo(coupon); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(couponInfo !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String status = couponInfo.getStatus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //该优惠券是否有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(status !=null && status.equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(status !=null && status.equals("1")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     String isMarketFlag = coupon.getIsMarketFlag(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     String isCardFlag = coupon.getIsCardFlag(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1463,40 +1464,61 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //                    BigDecimal dzkAmt = new BigDecimal(payOrder.getDzkAmt().toString());                //应收金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     BigDecimal receivableAmt = new BigDecimal(infoMap.get("receivableAmt").toString());  //应收金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    p.setReceivableAmt(receivableAmt.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     BigDecimal amt = new BigDecimal(infoMap.get("amt").toString());                      //实收金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    p.setAmt(amt.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     BigDecimal dzkAmt = new BigDecimal(infoMap.get("dzkAmt").toString());                //电子卡金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    p.setDzkAmt(dzkAmt.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     BigDecimal oilPrice = new BigDecimal(infoMap.get("oilPirce").toString());            //油品价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    BigDecimal couponAmt = coupon.getCouponAmt();                                       //优惠券金额:金额 比例值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    String couponType = coupon.getCouponType();     //优惠劵类型 1现金劵,2折扣券,3兑换券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    switch (couponType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //查询优惠券使用时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //String effectiveTimeType = coupon.getEffectiveTimeType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    String availableControl = coupon.getAvailableControl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(availableControl.equals("0")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        BigDecimal couponAmt = coupon.getCouponAmt();                                       //优惠券金额:金额 比例值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        String couponType = coupon.getCouponType();     //优惠劵类型 1现金劵,2折扣券,3兑换券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        switch (couponType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         case "1": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             //现金券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             //与营销方案,电子卡互斥 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             BigDecimal subtract = receivableAmt.subtract(couponAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            subtract =subtract.signum() == -1 ? new BigDecimal("0.01"): subtract; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            subtract = subtract.signum() == -1 ? new BigDecimal("0.01") : subtract; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             p.setAmt(subtract.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             p.setDzkAmt(subtract.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             //是否与电子卡叠加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(isCardFlag.equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (isCardFlag.equals("1")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 BigDecimal dzkAmtSub = dzkAmt.subtract(couponAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                dzkAmtSub = dzkAmtSub.signum() == -1 ? new BigDecimal("0.01") : dzkAmtSub; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 p.setDzkAmt(dzkAmtSub.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             //是否与营销方案叠加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(isMarketFlag.equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (isMarketFlag.equals("1")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 BigDecimal marketSub = amt.subtract(couponAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                marketSub = marketSub.signum() == -1 ? new BigDecimal("0.01") : marketSub; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 p.setAmt(marketSub.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         case "2": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             //折扣券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(isMarketFlag.equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            BigDecimal multiply = receivableAmt.multiply(couponAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            multiply = receivableAmt.subtract(multiply).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            p.setAmt(multiply.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            p.setDzkAmt(multiply.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //是否与电子卡叠加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (isGradeFlag.equals("1")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                BigDecimal multiplyCard = dzkAmt.multiply(couponAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                multiplyCard = dzkAmt.subtract(multiplyCard).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                p.setDzkAmt(multiplyCard.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //是否与营销方案叠加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (isMarketFlag.equals("1")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                BigDecimal multiplyMarket = amt.multiply(couponAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                multiplyMarket = amt.subtract(multiplyMarket).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                p.setAmt(multiplyMarket.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     resultData = ResultData.success(payOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |