Browse Source

优化

master
wanghongjun 2 years ago
parent
commit
faed9df4ce
  1. 51
      app/logic/ZoneLogic.php

51
app/logic/ZoneLogic.php

@ -33,6 +33,7 @@ class ZoneLogic
protected static $awards_number_count = 0; // 中奖号码数量
protected static $direction = 3; // 纵向数量
protected static $transverse = 4; // 横向数量
protected static $rate; // 概率
/**
* 刮奖初始化数据
@ -154,7 +155,7 @@ class ZoneLogic
$item['amount'] = $res['amount'];
$ZoneAmountParam = $res['data'];
}
$item['probability'] = round($item['probability'] / $sumCount,14);
#$item['probability'] = round($item['probability'] / $sumCount,14);
$sumProbability += $item['probability'];
}
@ -612,9 +613,10 @@ class ZoneLogic
protected static function judgeUserRate():array
{
$residue_amount = 0;
$usage_rate = 0;
//$usage_rate = 0;
try {
$rate = SettingModel::settingLoad('amount_probability') ?: '0.5';
self::$rate = $rate;
# 最近一次充值金额
$lastRechargeAmount = RechargeRecords::lastRechargeAmount([['user_id','=',self::$user_id]]);
@ -645,19 +647,19 @@ class ZoneLogic
return ['status' => 1];
}
# 使用金额充值金额占比
$usage_amount_rate = round($usage_amount / $recharge_amount,4);
# 中奖金额小于预估金额 且 使用占比 展示小于 中奖概率时 加码
$rateHalf = round($rate / 2,4);
if ($sum_amount < $estimate_awards_amount && $usage_amount_rate > $rateHalf && $usage_amount_rate < $rate) {
$usage_rate = round($sum_amount / $recharge_amount,4);
}
# 如果使用金额概率 达到 中奖概率 加码
$temp_rate = round($usage_amount_rate/$rate,4);
if ($temp_rate >= ($rateHalf + $rate)) {
$usage_rate = $temp_rate;
}
// # 使用金额充值金额占比
// $usage_amount_rate = round($usage_amount / $recharge_amount,4);
// # 中奖金额小于预估金额 且 使用占比 展示小于 中奖概率时 加码
// $rateHalf = round($rate / 2,4);
// if ($sum_amount < $estimate_awards_amount && $usage_amount_rate > $rateHalf && $usage_amount_rate < $rate) {
// $usage_rate = round($sum_amount / $recharge_amount,4);
// }
//
// # 如果使用金额概率 达到 中奖概率 加码
// $temp_rate = round($usage_amount_rate/$rate,4);
// if ($temp_rate >= ($rateHalf + $rate)) {
// $usage_rate = $temp_rate;
// }
}
} catch (\Exception $e) {
@ -667,7 +669,7 @@ class ZoneLogic
return [
'status' => 0,
'residue_amount' => $residue_amount,
'usage_rate' => $usage_rate
//'usage_rate' => $usage_rate
];
}
@ -688,20 +690,9 @@ class ZoneLogic
$item['id'] = 0;
$item['awards'] = 0;
} else {
//if (($item['amount'] * $sumCount) < $judgeRate['residue_amount']) {
if ($judgeRate['usage_rate']) {
$zoneGoodsData = self::$zoneGoodsData;
$ceilAmount = ceil($item['amount'] / $zoneGoodsData['price']);
if ($ceilAmount >= 5) {
$item['probability'] = $item['probability'] * 2;
}elseif($item['amount'] > $zoneGoodsData['price']) {
$rand = rand_float(0,$item['probability']);
$item['probability'] += $rand;
} else {
$item['probability'] += rand_float(0,$judgeRate['usage_rate']);
}
}
//}
$zoneGoodsData = self::$zoneGoodsData;
$rateTimes = round(1 / self::$rate,14);
$item['probability'] = (float) number_format($zoneGoodsData['price'] * self::$rate / $item['amount'] / $sumCount / $rateTimes, 14, '.', '');
}
}
return $item;

Loading…
Cancel
Save