DB::transaction(function () use ($user, &$user_award) {
$user_award = UserAward::where([
['user_id', $user->id],
['status', 0],
])
->lockForUpdate()
->first();
if ($user_award) {
$user_award->status = 1; // 提现中状态
$user_award->save();
}
});
if (!is_null($user_award)) {
$amount = $user_award->money * 100;
}
laravel使用 lockForUpdate 可并发无错更新
DB::beginTransaction();
$goodsInfo = Goods::where('seckill_goods_id',$gid)->lockForUpdate()->first();
$goodsInfo->seckill_stock-=1;
$goodsInfo->save();
DB::commit();