|
@@ -26,6 +26,7 @@ import com.yonge.cooleshow.portal.dao.PortalOrderDao;
|
|
|
import com.yonge.cooleshow.portal.dao.PortalOrderItemDao;
|
|
|
import com.yonge.cooleshow.portal.dao.PortalProductDao;
|
|
|
import com.yonge.cooleshow.portal.domain.*;
|
|
|
+import com.yonge.cooleshow.portal.dto.StockOperateModel;
|
|
|
import com.yonge.cooleshow.portal.service.*;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
import org.slf4j.Logger;
|
|
@@ -592,17 +593,21 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
|
|
//解除订单商品库存锁定
|
|
|
if (!CollectionUtils.isEmpty(orderItemList)) {
|
|
|
portalOrderDao.releaseSkuStockLock(orderItemList);
|
|
|
-
|
|
|
+ Map<Long, List<OmsOrderItem>> collect = orderItemList
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.groupingBy(OmsOrderItem::getProductId));
|
|
|
List<ProductStock> productStockList = new ArrayList<>();
|
|
|
- Map<Long, List<OmsOrderItem>> collect = orderItemList.stream()
|
|
|
- .collect(Collectors.groupingBy(
|
|
|
- OmsOrderItem::getProductId));
|
|
|
- collect.forEach((k,v) -> {
|
|
|
- ProductStock productStock = new ProductStock();
|
|
|
- productStock.setProductId(k);
|
|
|
- productStock.setStock(v.size());
|
|
|
- productStockList.add(productStock);
|
|
|
- });
|
|
|
+ for (Map.Entry<Long, List<OmsOrderItem>> entry : collect.entrySet()) {
|
|
|
+ ProductStock stock = new ProductStock();
|
|
|
+ stock.setProductId(entry.getKey());
|
|
|
+ List<OmsOrderItem> value = entry.getValue();
|
|
|
+ if (CollectionUtils.isEmpty(value)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int sum = value.stream().mapToInt(OmsOrderItem::getProductQuantity).sum();
|
|
|
+ stock.setStock(sum);
|
|
|
+ productStockList.add(stock);
|
|
|
+ }
|
|
|
|
|
|
portalOrderDao.releaseProductStockLock(productStockList);
|
|
|
}
|