mirror of
https://gitee.com/hzchunfen/erp.git
synced 2025-11-30 22:20:45 +00:00
增加锁
This commit is contained in:
parent
a8290bd5d0
commit
c017753fe6
@ -67,7 +67,6 @@ class GoodsCombinationController extends Controller
|
||||
->sum('already_cancel_number');
|
||||
$item['total_orders_num'] = $number - $cancelNumber;
|
||||
foreach ($item['combinationGoods'] as $combinationItem) {
|
||||
Log::info("TEST", [$combinationItem]);
|
||||
$title = !empty($combinationItem['goodsSkuItem']['name']) ? $combinationItem['goodsSkuItem']['name'] :
|
||||
(!empty($combinationItem['goodsSkuItem']['goods']) ? $combinationItem['goodsSkuItem']['goods']['title']
|
||||
. " " . $combinationItem['goodsSkuItem']['title'] : $combinationItem['goodsSkuItem']['title']);
|
||||
|
||||
@ -9,6 +9,7 @@ use App\Utils\DateTimeUtils;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use App\Events\BatchStockUpdateEvent;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class CombinationGoodsStockUpdateListener implements ShouldQueue
|
||||
@ -54,6 +55,7 @@ class CombinationGoodsStockUpdateListener implements ShouldQueue
|
||||
}
|
||||
}
|
||||
}
|
||||
$updateIds = [];
|
||||
//拉取三分订单时可能出现组合订单的情况 需要同步扣减库存
|
||||
if ($combinationGoodsIds) {
|
||||
$combinationGoods = CombinationGood::query()
|
||||
@ -61,16 +63,18 @@ class CombinationGoodsStockUpdateListener implements ShouldQueue
|
||||
->whereIn('goods_sku_id', $combinationGoodsIds)
|
||||
->get();
|
||||
foreach ($combinationGoods as $item) {
|
||||
$goodsSku = GoodsSku::query()->find($item['item_id']);
|
||||
$stock = $goodsSku->stock - $item['item_num'];
|
||||
//新增逻辑 在线库存同步扣减
|
||||
$saleStock = max($goodsSku->sale_stock - $item['item_num'],0);
|
||||
[$status, $stock] = $this->checkStatusAndStock($goodsSku, $stock, $saleStock);
|
||||
$goodsSku->status = $status;
|
||||
$goodsSku->stock = $stock;
|
||||
$goodsSku->sale_stock = $saleStock;
|
||||
$goodsSku->save();
|
||||
$updateIds[] = $goodsSku->id;
|
||||
DB::transaction(function () use ($item, &$updateIds) {
|
||||
$goodsSku = GoodsSku::query()->find($item['item_id'])->lockForUpdate();
|
||||
$stock = $goodsSku->stock - $item['item_num'];
|
||||
//新增逻辑 在线库存同步扣减
|
||||
$saleStock = max($goodsSku->sale_stock - $item['item_num'], 0);
|
||||
[$status, $stock] = $this->checkStatusAndStock($goodsSku, $stock, $saleStock);
|
||||
$goodsSku->status = $status;
|
||||
$goodsSku->stock = $stock;
|
||||
$goodsSku->sale_stock = $saleStock;
|
||||
$goodsSku->save();
|
||||
$updateIds[] = $goodsSku->id;
|
||||
});
|
||||
}
|
||||
}
|
||||
// 计算主商品库存
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user