|
|
|
@ -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; |
|
|
|
|