| 
					
				 | 
			
			
				@@ -840,13 +840,12 @@ DISCOUNT("畅学卡") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 判断满减 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (couponInfo.getUseLimit() != null && amount.compareTo(BigDecimal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .valueOf(couponInfo.getUseLimit()).setScale(2, BigDecimal.ROUND_HALF_UP)) < 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                && !couponAmountMap.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .valueOf(couponInfo.getUseLimit()).setScale(2, BigDecimal.ROUND_HALF_UP)) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new BizException("优惠券不可用"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 总金额扣除优惠金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        amount = amount.subtract(BigDecimal.valueOf(couponInfo.getDiscountPrice())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal actual = amount.subtract(BigDecimal.valueOf(couponInfo.getDiscountPrice())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 根据商品金额比例分摊优惠金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 剩余金额 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -857,7 +856,7 @@ DISCOUNT("畅学卡") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BigDecimal actualPrice = entry.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BigDecimal couponAmount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (amount.compareTo(BigDecimal.ZERO) >0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (actual.compareTo(BigDecimal.ZERO) >0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 couponAmount = BigDecimal.valueOf(couponInfo.getDiscountPrice()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .multiply(userOrderDetail.getActualPrice()).divide(amount, 2, RoundingMode.HALF_DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -870,7 +869,7 @@ DISCOUNT("畅学卡") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     couponAmount,userOrderDetail.getDiscountJson())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             userOrderDetail.setActualPrice(actualPrice.subtract(couponAmount)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (remainAmount.compareTo(BigDecimal.ZERO) > 0&& amount.compareTo(BigDecimal.ZERO) >0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (remainAmount.compareTo(BigDecimal.ZERO) > 0 && actual.compareTo(BigDecimal.ZERO) >0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             UserOrderDetail userOrderDetail = goodsInfos.get(couponAmountMap.keySet().stream().findFirst().get()).getUserOrderDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             userOrderDetail.setActualPrice(userOrderDetail.getActualPrice().subtract(remainAmount)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |