Merge pull request !166 from develop
This commit is contained in:
赵世界 2023-04-26 02:51:49 +00:00 committed by Gitee
commit a15fc270b0
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -63,32 +63,27 @@ class CombinationGoodsStockUpdateListener
} }
// 计算主商品库存 // 计算主商品库存
if ($combinationGoodsItemIds) { if ($combinationGoodsItemIds) {
$itemIds = array_keys($combinationGoodsItemIds); $combinationGoodsItems = CombinationGood::query()
$goodsSkuIds = CombinationGood::query() ->whereIn('item_id', array_keys($combinationGoodsItemIds))
->whereIn('item_id', $itemIds) ->get();
->pluck('goods_sku_id') if ($combinationGoodsItems->isEmpty()){
->toArray();
if (empty($goodsSkuIds)) {
return false; return false;
} }
$goodsSkuIds = array_column($combinationGoodsItems->toArray(), 'goods_sku_id');
$goodsSkus = GoodsSku::query() $goodsSkus = GoodsSku::query()
->whereIn('id', $goodsSkuIds) ->whereIn('id', $goodsSkuIds)
->pluck('stock', 'id') ->pluck('stock', 'id')
->toArray(); ->toArray();
foreach ($combinationGoodsItemIds as $itemId => $stock) { foreach ($combinationGoodsItems as $item){
$combinationGoods = CombinationGood::query() $stock = $combinationGoodsItemIds[$item['item_id']] / $item['item_num'];
->where('item_id', $itemId) if ($stock < $goodsSkus[$item['goods_sku_id']]) {
->get(); GoodsSku::query()->where('id', $item['goods_sku_id'])->update(['stock' => $stock]);
foreach ($combinationGoods as $goods) { $updateIds[] = $item['goods_sku_id'];
$stock = $combinationGoodsItemIds[$goods['item_id']] / $goods['item_num'];
if ($stock < $goodsSkus[$goods['goods_sku_id']]) {
GoodsSku::query()->where('id', $goods['goods_sku_id'])->update(['stock' => $stock]);
$updateIds[] = $goods['goods_sku_id'];
}
} }
} }
} }
if ($updateIds) { if ($updateIds) {
$updateIds = array_unique($updateIds);
event(new StockUpdateEvent($updateIds, 1, true)); event(new StockUpdateEvent($updateIds, 1, true));
} }
} }