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;? ? ? ? // 提現(xiàn)中狀態(tài)
? ? ? ? ? ? ? ? $user_award->save();
? ? ? ? ? ? }
});
if (!is_null($user_award)) {
? ? ? $amount = $user_award->money * 100;? ?
}
laravel使用 lockForUpdate 可并發(fā)無錯更新
DB::beginTransaction();
$goodsInfo?= Goods::where('seckill_goods_id',$gid)->lockForUpdate()->first();
$goodsInfo->seckill_stock-=1;
$goodsInfo->save();
DB::commit();