Quellcode durchsuchen

管乐迷商城改造

zouxuan vor 1 Jahr
Ursprung
Commit
2caa38635b

+ 13 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -2247,24 +2247,29 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             if(CollectionUtils.isEmpty(dtos)){
                 continue;
             }
-            Map<Long,Integer> indexMap = new HashMap<>();
             Map<Long,List<SellOrder>> goodsSkuMap = dtos.stream().collect(Collectors.groupingBy(e->e.getGoodsSkuId().longValue()));
             for (OrderSkuSync.SkuSync skuSync : orderSkuSync.getSkuSyncList()) {
                 List<SellOrder> sellOrderList = goodsSkuMap.get(skuSync.getSku());
                 for (int i = 0; i < skuSync.getCount(); i++) {
-                    SellOrder sellOrder = sellOrderList.get(indexMap.get(skuSync.getSku())==null?0:indexMap.get(skuSync.getSku()));
-                    if (sellOrder != null) {
-                        sellOrder.setDeliveryTime(format);
-                        sellOrder.setSellCost(skuSync.getPrice());
-                        sellOrder.setStockType(StringUtils.equalsIgnoreCase(skuSync.getType(),"INTERNAL")?StockType.INTERNAL:StockType.EXTERNAL);
-                    }
-                    indexMap.put(skuSync.getSku(),indexMap.get(skuSync.getSku())==null?0:indexMap.get(skuSync.getSku())+1);
+                    SellOrder sellOrder = this.getSellorder(sellOrderList,i);
+                    sellOrder.setDeliveryTime(format);
+                    sellOrder.setSellCost(skuSync.getPrice());
+                    sellOrder.setStockType(StringUtils.equalsIgnoreCase(skuSync.getType(),"INTERNAL")?StockType.INTERNAL:StockType.EXTERNAL);
                 }
             }
         }
         sellOrderDao.batchUpdate(sellOrders);
     }
 
+    private SellOrder getSellorder(List<SellOrder> sellOrderList,Integer index){
+        SellOrder sellOrder = sellOrderList.get(index);
+        if(StringUtils.isNotEmpty(sellOrder.getDeliveryTime())){
+            return getSellorder(sellOrderList,index+1);
+        }else {
+            return sellOrder;
+        }
+    }
+
     public BigDecimal getActualAmount(BigDecimal price, StudentPaymentOrderExportDto row) {
         if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
             return price.multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);