|
@@ -926,21 +926,15 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
|
if(goodsSubStockModels.isEmpty()){
|
|
|
return false;
|
|
|
}
|
|
|
- List<Integer> mallGoodIds = goodsSubStockModels.stream().map(GoodsSubStockModel::getMallGoodsId).distinct().collect(Collectors.toList());
|
|
|
List<Integer> skus = goodsSubStockModels.stream().map(GoodsSubStockModel::getSku).distinct().collect(Collectors.toList());
|
|
|
|
|
|
QueryWrapper<GoodsSub> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.in("mall_goods_id_", mallGoodIds).in("sku_", skus);
|
|
|
+ queryWrapper.in("sku_", skus);
|
|
|
List<GoodsSub> goodsSubs = goodsSubMapper.selectList(queryWrapper);
|
|
|
if (CollectionUtils.isEmpty(goodsSubs)) {
|
|
|
return true;
|
|
|
}
|
|
|
- Map<String, Integer> stockMap = goodsSubStockModels.stream().collect(Collectors.toMap(next -> next.getMallGoodsId() + "_" + next.getSku(), next -> next.getStock()));
|
|
|
- Set<String> keys = stockMap.keySet();
|
|
|
- goodsSubs.removeIf(next -> !keys.contains(next.getMallGoodsId() + "_" + next.getSku()));
|
|
|
- if (CollectionUtils.isEmpty(goodsSubs)) {
|
|
|
- return true;
|
|
|
- }
|
|
|
+ Map<Integer, Integer> stockMap = goodsSubStockModels.stream().collect(Collectors.toMap(GoodsSubStockModel::getSku, GoodsSubStockModel::getStock));
|
|
|
List<Integer> goodIds = goodsSubs.stream().map(GoodsSub::getGoodsId).distinct().collect(Collectors.toList());
|
|
|
goodsDao.lockGoods(goodIds);
|
|
|
List<Goods> goodsList = goodsDao.findGoodsByIds(goodIds.stream().map(String::valueOf).collect(Collectors.joining(",")));
|
|
@@ -949,8 +943,7 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
|
List<Goods> updateGoods = new ArrayList<>();
|
|
|
for (GoodsSub goodsSub : goodsSubs) {
|
|
|
Integer goodsId = goodsSub.getGoodsId();
|
|
|
- String key = goodsSub.getMallGoodsId() + "_" + goodsSub.getSku();
|
|
|
- Integer stock = stockMap.get(key);
|
|
|
+ Integer stock = stockMap.get(goodsSub.getSku());
|
|
|
int updateStock = Math.min(goodStockMap.get(goodsId), stock);
|
|
|
|
|
|
Goods goods = new Goods();
|