天空之镜加概率限制
This commit is contained in:
@@ -50,7 +50,7 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model
|
||||
return $validationResult;
|
||||
}
|
||||
//2.预计算抽奖结果
|
||||
$precomputeResult = $this->precomputeDrawResults($gift_bag_id, $total_num, $gift_user_ids,$periods );
|
||||
$precomputeResult = $this->precomputeDrawResults($gift_bag_id, $total_num, $gift_user_ids,$periods,$user_id );
|
||||
$precomputedResults = $precomputeResult['precomputedResults']; //预计算结果集
|
||||
$availableGiftss = $precomputeResult['precomputedResultss']; //可用礼物/需更新的礼物/需更新
|
||||
|
||||
@@ -136,7 +136,7 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model
|
||||
/**
|
||||
* 预计算抽奖结果
|
||||
*/
|
||||
private function precomputeDrawResults($gift_bag_id, $total_num, $gift_user_ids,$periods)
|
||||
private function precomputeDrawResults($gift_bag_id, $total_num, $gift_user_ids,$periods,$user_id)
|
||||
{
|
||||
$pan_total_draw_times = $this->getCachedPanDrawTimes($gift_bag_id); //总抽奖次数
|
||||
$pan_total_remaining = $this->getCachedPanTotalRemaining($gift_bag_id); //剩余数量
|
||||
@@ -244,6 +244,23 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model
|
||||
$selectedGift = $this->selectGiftWithAliasMethod($aliasTableForNew);
|
||||
}
|
||||
$gift = $giftInfoMap[$selectedGift['foreign_id']]??[];
|
||||
|
||||
//防止过高爆率,检查本期用户概率
|
||||
//当前用户在本期的(补偿 防止漏洞 超过预期 把盘拉平)
|
||||
//总抽奖金额(支出)
|
||||
$total_money = db::name('vs_gift_bag_receive_log')->where(['gift_bag_id' => $gift_bag_id,'user_id' => $user_id,'periods'=>$periods])->sum('bag_price');
|
||||
//总礼物价值(收入)
|
||||
$total_gift_money = db::name('vs_gift_bag_receive_log')->where(['gift_bag_id' => $gift_bag_id,'user_id' => $user_id,'periods'=>$periods])->sum('gift_price');
|
||||
if($total_money>0 && $total_gift_money>0){
|
||||
$ratio =round(($total_gift_money / $total_money),3) ?? 0;
|
||||
if($ratio > 1.03){
|
||||
$gift_bag_detail_duo = db::name("vs_gift_bag_detail")->where([ 'gift_bag_id' => $gift_bag_id,'remaining_number' => ['>',0]])->order('remaining_number', 'desc')->find();
|
||||
if($gift_bag_detail_duo){
|
||||
$gift_bag_detail = $gift_bag_detail_duo;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$precomputedResults[] = [
|
||||
'gift_user_id' => $giftUserId,
|
||||
'gift_bag_detail' => $selectedGift,
|
||||
|
||||
Reference in New Issue
Block a user