盲盒转盘错误修改

This commit is contained in:
2026-01-07 12:28:14 +08:00
parent b46bef67df
commit d1f5dbf5e9
2 changed files with 27 additions and 3 deletions

View File

@@ -1649,9 +1649,24 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model
// 先处理上期剩余的礼物
if (!empty($remaining_gifts)) {
foreach ($remaining_gifts as $remaining_gift) {
$gift_id = $remaining_gift['foreign_id'];
$drawn_gifts[$gift_id] = ($drawn_gifts[$gift_id] ?? 0) + 1;
$gift_id = $remaining_gift['foreign_id'];//礼物ID
//查询上把这个礼物抽取数量----------------
$count_num = Db::name('vs_gift_bag_receive_pan_log')->where(['gift_bag_id' => $gift_bag_id,'gift_id' => $gift_id,'periods'=>$periods-1])->count();
$error_gifts[$gift_id] =[
//上期抽中数量
'count_num'=>$count_num,
'quantity'=>$remaining_gift['quantity'],
];
//查询这个礼物上期数量
// $this_gift_quantity = Db::name('vs_gift_bag_detail')->where(['gift_bag_id' => $gift_bag_id,'foreign_id' => $gift_id])->value('quantity');
//上期这个礼物抽走数量与礼物上限数量相同剔除这个礼物
if ($count_num >= $remaining_gift['quantity']){
//剔除该礼物
continue;
}
//查询上把这个礼物抽取数量------防止并发多出容错----------
$drawn_gifts[$gift_id] = ($drawn_gifts[$gift_id] ?? 0) + 1;
$precomputed_results[] = [
'gift_id' => $gift_id,
'gift_detail_id' => $remaining_gift['id'],
@@ -1661,6 +1676,14 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model
'periods' => $periods,
];
}
//防止上把数据错误
foreach ($drawn_gifts as $gift_id => $count){
//正常数量
$normal_num = $error_gifts[$gift_id]['quantity'] - $error_gifts[$gift_id]['count_num'];
if($count > $normal_num){
$drawn_gifts[$gift_id] = $normal_num;
}
}
}
// 计算还需要抽取的数量