|
@@ -448,7 +448,24 @@ class mratio_control
|
|
|
|
|
|
private function qts_checker($mchid, $org_quality,$cur_quality, $card_type, $spec, $qualities,$period,$header,$ratio)
|
|
|
{
|
|
|
- [$_succ, $_fail, $cur_ratio] = $this->detail_ratio($mchid, $cur_quality, $card_type, $spec, $period);
|
|
|
+ $ratio_calc = function ($mchid, $card_type, $spec, $period, $org_quality, $qualities)
|
|
|
+ {
|
|
|
+ $succs = 0;
|
|
|
+ $fails = 0;
|
|
|
+ foreach ($qualities as $quality)
|
|
|
+ {
|
|
|
+ if ($quality === $org_quality) continue;
|
|
|
+
|
|
|
+ [$_succ, $_fail, $cur_ratio] = $this->detail_ratio($mchid, $quality, $card_type, $spec, $period);
|
|
|
+ $succs += $_succ;
|
|
|
+ $fails += $_fail;
|
|
|
+ }
|
|
|
+ $ratio = round($succs / ($succs + $fails + 0.000001),4);
|
|
|
+
|
|
|
+ return $ratio;
|
|
|
+ };
|
|
|
+
|
|
|
+ $cur_ratio = $ratio_calc($mchid, $card_type, $spec, $period, $org_quality, $qualities);
|
|
|
Log::record("{$header} cur_ratio = {$cur_ratio},lower_ratio={$ratio}",Log::DEBUG);
|
|
|
|
|
|
if($cur_ratio >= $ratio) return true;
|
|
@@ -486,7 +503,7 @@ class mratio_control
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- $cur_pratio = round($profit / ($amount + 0.00001),4);
|
|
|
+ $cur_pratio = round($profit / ($amount + 0.000001),4);
|
|
|
$profit_ratio = round($profit_ratio,4);
|
|
|
|
|
|
Log::record("{$header} qts_checker cur_pratio = {$cur_pratio},profit_ratio={$profit_ratio}",Log::DEBUG);
|