|  | @@ -75,7 +75,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          BigDecimal hasRouteBalance = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | -        BigDecimal goodsTotalBalance = goodsTotalPrice.multiply(balance).divide(totalAmount, 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +        BigDecimal goodsTotalBalance = totalAmount.compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : goodsTotalPrice.multiply(balance).divide(totalAmount, 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  |          AccountType accountType = sysPaymentConfigService.checkAccountType(PaymentChannelEnum.valueOf(order.getPaymentChannel()), order.getMerNos());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<SellOrder> sellOrderList = goodsService.subtractStock(goodsIds, accountType);
 | 
	
	
		
			
				|  | @@ -91,7 +91,8 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              goodsPrice = nowGoods.getDiscountPrice();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            BigDecimal goodsBalance = goodsTotalBalance.multiply(goodsPrice).divide(goodsTotalPrice, 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +            BigDecimal goodsBalance = goodsTotalPrice.compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO :
 | 
	
		
			
				|  |  | +                    goodsTotalBalance.multiply(goodsPrice).divide(goodsTotalPrice, 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  |              if (i == goodsNum) {
 | 
	
		
			
				|  |  |                  goodsBalance = goodsTotalBalance.subtract(hasRouteBalance);
 | 
	
		
			
				|  |  |              }
 |