@leo
$skuIds = collect($request->input('items'))->pluck('sku_id');
$skuItems = ProductSku::whereIn('id',$skuIds)->get()->keyBy('id')->toArray();
$orderItems = [];
foreach ($items as $data){
$item = $order->items()->make([
'amount' => $data['amount'],
'price' => $skuItems[$data['sku_id']]['price'],
]);
$item->product()->associate($skuItems[$data['sku_id']]['product_id']);
$item->productSku()->associate($data['sku_id']);
$orderItems[] = $item;
$totalAmount += $skuItems[$data['skuid']]['price'] * $data['amount'];
}
$order->items()->saveMany($orderItems);
这样写数据库压力不会那么大 批量查一次批量存一次 会不会好一些 库存量的减少要在下单时扣吗 如果付款成功后才扣除库存呢 这个搞不清楚该怎么处理 ^^
讨论数量:
推荐文章: