| 
														
															@@ -1442,16 +1442,17 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public String calculateCouponDiscount(@RequestParam String ordNo, @RequestParam Integer couponId){ 
														 | 
														
														 | 
														
															     public String calculateCouponDiscount(@RequestParam String ordNo, @RequestParam Integer couponId){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Gson gson =new Gson(); 
														 | 
														
														 | 
														
															         Gson gson =new Gson(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ResultData resultData =null; 
														 | 
														
														 | 
														
															         ResultData resultData =null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        PayOrder payOrder = payOrderService.selectOrderInfoByOrdNo(ordNo); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        PayOrder payOrder = new PayOrder(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        payOrder.setOrderNo(ordNo); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder); 
														 | 
														
														 | 
														
															         Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if(payOrder !=null){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if(infoMap !=null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             Coupon coupon = new Coupon(); 
														 | 
														
														 | 
														
															             Coupon coupon = new Coupon(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             coupon.setId(couponId); 
														 | 
														
														 | 
														
															             coupon.setId(couponId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             Coupon couponInfo = couponService.selectCouponInfo(coupon); 
														 | 
														
														 | 
														
															             Coupon couponInfo = couponService.selectCouponInfo(coupon); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if(couponInfo !=null){ 
														 | 
														
														 | 
														
															             if(couponInfo !=null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 String status = couponInfo.getStatus(); 
														 | 
														
														 | 
														
															                 String status = couponInfo.getStatus(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //该优惠券是否有效 
														 | 
														
														 | 
														
															                 //该优惠券是否有效 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if(status !=null && status.equals("1")){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if(status !=null && status.equals("1")) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     // 
														 | 
														
														 | 
														
															                     // 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     String isMarketFlag = coupon.getIsMarketFlag(); 
														 | 
														
														 | 
														
															                     String isMarketFlag = coupon.getIsMarketFlag(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     String isCardFlag = coupon.getIsCardFlag(); 
														 | 
														
														 | 
														
															                     String isCardFlag = coupon.getIsCardFlag(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1463,40 +1464,61 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //                    BigDecimal dzkAmt = new BigDecimal(payOrder.getDzkAmt().toString());                //应收金额 
														 | 
														
														 | 
														
															 //                    BigDecimal dzkAmt = new BigDecimal(payOrder.getDzkAmt().toString());                //应收金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     BigDecimal receivableAmt = new BigDecimal(infoMap.get("receivableAmt").toString());  //应收金额 
														 | 
														
														 | 
														
															                     BigDecimal receivableAmt = new BigDecimal(infoMap.get("receivableAmt").toString());  //应收金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    p.setReceivableAmt(receivableAmt.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     BigDecimal amt = new BigDecimal(infoMap.get("amt").toString());                      //实收金额 
														 | 
														
														 | 
														
															                     BigDecimal amt = new BigDecimal(infoMap.get("amt").toString());                      //实收金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    p.setAmt(amt.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     BigDecimal dzkAmt = new BigDecimal(infoMap.get("dzkAmt").toString());                //电子卡金额 
														 | 
														
														 | 
														
															                     BigDecimal dzkAmt = new BigDecimal(infoMap.get("dzkAmt").toString());                //电子卡金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    p.setDzkAmt(dzkAmt.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     BigDecimal oilPrice = new BigDecimal(infoMap.get("oilPirce").toString());            //油品价格 
														 | 
														
														 | 
														
															                     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": 
														 | 
														
														 | 
														
															                         case "1": 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             //现金券 
														 | 
														
														 | 
														
															                             //现金券 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             //与营销方案,电子卡互斥 
														 | 
														
														 | 
														
															                             //与营销方案,电子卡互斥 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             BigDecimal subtract = receivableAmt.subtract(couponAmt); 
														 | 
														
														 | 
														
															                             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.setAmt(subtract.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             p.setDzkAmt(subtract.doubleValue()); 
														 | 
														
														 | 
														
															                             p.setDzkAmt(subtract.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             //是否与电子卡叠加 
														 | 
														
														 | 
														
															                             //是否与电子卡叠加 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            if(isCardFlag.equals("1")){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            if (isCardFlag.equals("1")) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 BigDecimal dzkAmtSub = dzkAmt.subtract(couponAmt); 
														 | 
														
														 | 
														
															                                 BigDecimal dzkAmtSub = dzkAmt.subtract(couponAmt); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                dzkAmtSub = dzkAmtSub.signum() == -1 ? new BigDecimal("0.01") : dzkAmtSub; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 p.setDzkAmt(dzkAmtSub.doubleValue()); 
														 | 
														
														 | 
														
															                                 p.setDzkAmt(dzkAmtSub.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             } 
														 | 
														
														 | 
														
															                             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             //是否与营销方案叠加 
														 | 
														
														 | 
														
															                             //是否与营销方案叠加 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            if(isMarketFlag.equals("1")){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            if (isMarketFlag.equals("1")) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 BigDecimal marketSub = amt.subtract(couponAmt); 
														 | 
														
														 | 
														
															                                 BigDecimal marketSub = amt.subtract(couponAmt); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                marketSub = marketSub.signum() == -1 ? new BigDecimal("0.01") : marketSub; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 p.setAmt(marketSub.doubleValue()); 
														 | 
														
														 | 
														
															                                 p.setAmt(marketSub.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             } 
														 | 
														
														 | 
														
															                             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             break; 
														 | 
														
														 | 
														
															                             break; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         case "2": 
														 | 
														
														 | 
														
															                         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; 
														 | 
														
														 | 
														
															                             break; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     } 
														 | 
														
														 | 
														
															                     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     // 
														 | 
														
														 | 
														
															                     // 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     resultData = ResultData.success(payOrder); 
														 | 
														
														 | 
														
															                     resultData = ResultData.success(payOrder); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 |