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

Loading…
Cancel
Save