金币扣除使用行级锁 和礼物墙处理

This commit is contained in:
2026-01-14 22:13:01 +08:00
parent 097b719937
commit 6b08d327ec
3 changed files with 296 additions and 2 deletions

View File

@@ -237,7 +237,13 @@ class UserWallet extends Model
//减少用户金币类型
$out_types = [4,7,10,17,20,24,25,32,42,50,56,59];
$user_coin = Db::name('user_wallet_coin')->where(['user_id' => $user_id])->value('coin');
$user_wallet = Db::name('user_wallet_coin')->where(['user_id' => $user_id])->lock(true)->value('coin');
if (!$user_wallet) {
return false;
}
$user_coin = $user_wallet['coin'];
$original_coin = $user_coin; // 保存原始值用于日志
if(in_array($change_type,$in_types)){
$update_coin = $user_coin + $money;
}elseif(in_array($change_type,$out_types)){
@@ -257,7 +263,7 @@ class UserWallet extends Model
'user_id' => $user_id,
'room_id' => $room_id,
'coin' => $money,
'before' => $user_coin,
'before' => $original_coin,
'after' => $update_coin,
'change_type' => $change_type,
'remarks' => $remarks,