增加锁

This commit is contained in:
杨建炊 2024-10-31 16:33:15 +08:00
parent 495253e791
commit a9e542f89b

View File

@ -62,12 +62,13 @@ class CombinationGoodsStockUpdateListener implements ShouldQueue
->with('goodsSku:id,stock')
->whereIn('goods_sku_id', $combinationGoodsIds)
->get();
$num = !empty($event->num) ? $event->num : 1;
foreach ($combinationGoods as $item) {
DB::transaction(function () use ($item, &$updateIds) {
DB::transaction(function () use ($item, &$updateIds, $num) {
$goodsSku = GoodsSku::query()->lockForUpdate()->find($item['item_id']);
$stock = $goodsSku->stock - $item['item_num'];
$stock = $goodsSku->stock - $item['item_num'] * $num;
//新增逻辑 在线库存同步扣减
$saleStock = max($goodsSku->sale_stock - $item['item_num'], 0);
$saleStock = max($goodsSku->sale_stock - $item['item_num'] * $num, 0);
[$status, $stock] = $this->checkStatusAndStock($goodsSku, $stock, $saleStock);
$goodsSku->status = $status;
$goodsSku->stock = $stock;