| 
					
				 | 
			
			
				@@ -119,8 +119,11 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (orderByOrderNo.getBalancePaymentAmount() != null && orderByOrderNo.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sysUserCashAccountService.updateBalance(orderByOrderNo.getUserId(), orderByOrderNo.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭订单"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            studentGoodsSell = studentGoodsSellDao.findByOrderNo(studentGoodsSell.getOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            studentGoodsSell.setGoodsSellDtos(JSON.parseArray(studentGoodsSell.getGoodsJson(),GoodsSellDto.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StudentGoodsSell byOrderNo = studentGoodsSellDao.findByOrderNo(studentGoodsSell.getOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(byOrderNo != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                studentGoodsSell = byOrderNo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                studentGoodsSell.setGoodsSellDtos(JSON.parseArray(byOrderNo.getGoodsJson(),GoodsSellDto.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Integer studentId = studentGoodsSell.getUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<GoodsSellDto> goodsSellDtos = studentGoodsSell.getGoodsSellDtos(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -743,7 +746,9 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer, List<Goods>> goodsMap = goodsByIds.stream().collect(Collectors.groupingBy(Goods::getId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, BigDecimal> costMap = new HashMap<>(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<SellOrder> sellOrders = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        goodsId.forEach(e->{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal balancePaymentAmount = orderByOrderNo.getBalancePaymentAmount(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (Integer e : goodsId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             GoodsSellDto goodsSellDto = collect.get(e).get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Goods goods = goodsMap.get(e).get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -756,9 +761,24 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setTransNo(orderByOrderNo.getTransNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setOrderId(orderByOrderNo.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setOrderNo(orderByOrderNo.getOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sellOrder.setExpectAmount(orderByOrderNo.getExpectAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sellOrder.setActualAmount(orderByOrderNo.getActualAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sellOrder.setBalanceAmount(orderByOrderNo.getBalancePaymentAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sellOrder.setExpectAmount(goodsSellDto.getTotalGoodsPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //如果没有使用余额,那么实际金额和预计金额一致 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(balancePaymentAmount.doubleValue() == 0l){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sellOrder.setActualAmount(goodsSellDto.getTotalGoodsPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sellOrder.setBalanceAmount(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //余额大于等于商品总价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(balancePaymentAmount.compareTo(goodsSellDto.getTotalGoodsPrice()) >= 1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sellOrder.setActualAmount(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sellOrder.setBalanceAmount(goodsSellDto.getTotalGoodsPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    balancePaymentAmount = balancePaymentAmount.subtract(goodsSellDto.getTotalGoodsPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //余额小于商品总价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sellOrder.setActualAmount(goodsSellDto.getTotalGoodsPrice().subtract(balancePaymentAmount)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sellOrder.setBalanceAmount(balancePaymentAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    balancePaymentAmount = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setSellCost(goods.getDiscountPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setSellCost2(JSONObject.toJSONString(costMap)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setType(SellTypeEnum.valueOf(goods.getType().getCode())); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -772,7 +792,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setEduTeacherId(studentGoodsSell.getTeacherId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setCooperationOrganId(studentGoodsSell.getCooperationOrganId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrders.add(sellOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(sellOrders.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrderService.batchInsert(sellOrders); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |