| 
					
				 | 
			
			
				@@ -7,10 +7,7 @@ import com.ym.mec.biz.dal.dao.MusicGroupDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dao.SellOrderDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.GoodsType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.SellTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.enums.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.dal.BaseDAO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.service.impl.BaseServiceImpl; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -31,6 +28,8 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private StudentPaymentOrderDao studentPaymentOrderDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private MusicGroupDao musicGroupDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SysPaymentConfigService sysPaymentConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public BaseDAO<Integer, SellOrder> getDAO() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -67,6 +66,9 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal hasRouteBalance = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal goodsTotalBalance = goodsTotalPrice.multiply(balance).divide(totalAmount, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<SellOrder> sellOrders = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AccountType accountType = sysPaymentConfigService.checkAccountType(PaymentChannelEnum.valueOf(order.getPaymentChannel()), order.getMerNos()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (Integer goodsId : goodsIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             SellOrder sellOrder = new SellOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BigDecimal goodsPrice = BigDecimal.ZERO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -106,6 +108,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setUserId(order.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setPaymentChannel(order.getPaymentChannel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setMerNo(order.getMerNos()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sellOrder.setAccountType(accountType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setSellTime(order.getCreateTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setCreateIme(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrder.setUpdateTime(new Date()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -116,6 +119,24 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sellOrder.setType(SellTypeEnum.OTHER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StockType goodsStockType = StockType.INTERNAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (Goods goods : goodies) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (goods.getId().equals(goodsId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    goodsStockType = goods.getStockType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //库存类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(goodsStockType.equals(StockType.ALL) && accountType.equals(AccountType.INTERNAL)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sellOrder.setStockType(StockType.INTERNAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else if(goodsStockType.equals(StockType.ALL) && accountType.equals(AccountType.EXTERNAL)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sellOrder.setStockType(StockType.EXTERNAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sellOrder.setStockType(goodsStockType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //批次号 TODO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sellOrders.add(sellOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -138,8 +159,10 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int i = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal detailRouteBalance = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (StudentPaymentOrderDetail orderDetail : orderDetails) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AccountType accountType = sysPaymentConfigService.checkAccountType(PaymentChannelEnum.valueOf(studentPaymentOrder.getPaymentChannel()), studentPaymentOrder.getMerNos()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (StudentPaymentOrderDetail orderDetail : orderDetails) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BigDecimal detailBalance = orderDetail.getPrice().compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     orderDetail.getPrice().multiply(detailTotalBalance).divide(detailTotalPrice, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (i == orderDetails.size()) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -192,6 +215,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sellOrder.setUserId(studentPaymentOrder.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sellOrder.setPaymentChannel(studentPaymentOrder.getPaymentChannel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sellOrder.setMerNo(studentPaymentOrder.getMerNos()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sellOrder.setAccountType(accountType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sellOrder.setSellTime(studentPaymentOrder.getCreateTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sellOrder.setCreateIme(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sellOrder.setUpdateTime(new Date()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -211,6 +235,16 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sellOrder.setBalanceAmount(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sellOrder.setExpectAmount(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //库存类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(goods.getStockType().equals(StockType.ALL) && accountType.equals(AccountType.INTERNAL)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sellOrder.setStockType(StockType.INTERNAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else if(goods.getStockType().equals(StockType.ALL) && accountType.equals(AccountType.EXTERNAL)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sellOrder.setStockType(StockType.EXTERNAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sellOrder.setStockType(goods.getStockType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //批次号 TODO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sellOrders.add(sellOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |