|
@@ -159,11 +159,15 @@ class mratio_control
|
|
|
|
|
|
public function ratio_match($mchid, $org_quality, $cur_quality, $card_type, $spec,$qualities)
|
|
public function ratio_match($mchid, $org_quality, $cur_quality, $card_type, $spec,$qualities)
|
|
{
|
|
{
|
|
|
|
+ $header = __METHOD__;
|
|
[$ratio, $period] = $this->lower_ratio($mchid);
|
|
[$ratio, $period] = $this->lower_ratio($mchid);
|
|
[$_succ, $_fail, $gross_ratio] = $this->gross_ratio($mchid, $period);
|
|
[$_succ, $_fail, $gross_ratio] = $this->gross_ratio($mchid, $period);
|
|
|
|
+ Log::record("{$header} gross_ratio = {$gross_ratio},lower_ratio={$ratio}",Log::DEBUG);
|
|
|
|
|
|
if($gross_ratio >= $ratio) return true;
|
|
if($gross_ratio >= $ratio) return true;
|
|
[$_succ, $_fail, $cur_ratio] = $this->detail_ratio($mchid, $cur_quality, $card_type, $spec, $period);
|
|
[$_succ, $_fail, $cur_ratio] = $this->detail_ratio($mchid, $cur_quality, $card_type, $spec, $period);
|
|
|
|
+ Log::record("{$header} cur_ratio = {$cur_ratio},lower_ratio={$ratio}",Log::DEBUG);
|
|
|
|
+
|
|
if($cur_ratio >= $ratio) return true;
|
|
if($cur_ratio >= $ratio) return true;
|
|
|
|
|
|
if (!PolicyUtil::mixed_quality($org_quality)) {
|
|
if (!PolicyUtil::mixed_quality($org_quality)) {
|
|
@@ -184,19 +188,19 @@ class mratio_control
|
|
|
|
|
|
$profit = 0;
|
|
$profit = 0;
|
|
$amount = 0;
|
|
$amount = 0;
|
|
- foreach ($qualities as $quality)
|
|
|
|
- {
|
|
|
|
|
|
+ foreach ($qualities as $quality) {
|
|
$inprice = $prices[$quality] ?? false;
|
|
$inprice = $prices[$quality] ?? false;
|
|
- if($inprice === false) continue;
|
|
|
|
|
|
+ if ($inprice === false) continue;
|
|
|
|
|
|
- [$succ,$fail,$ratio] = $dratios[$quality];
|
|
|
|
|
|
+ [$succ, $fail, $ratio] = $dratios[$quality];
|
|
$profit += $succ * ($sale - $inprice);
|
|
$profit += $succ * ($sale - $inprice);
|
|
- $amount += $succ * $inprice;
|
|
|
|
|
|
+ $amount += $succ * $sale;
|
|
}
|
|
}
|
|
|
|
|
|
$cur_pratio = round(($profit + 0.00001) / ($amount + 0.00001),4);
|
|
$cur_pratio = round(($profit + 0.00001) / ($amount + 0.00001),4);
|
|
$profit_ratio = round($profit_ratio,4);
|
|
$profit_ratio = round($profit_ratio,4);
|
|
|
|
|
|
|
|
+ Log::record("ratio_match profit_ratio = {$cur_pratio},profit_ratio={$profit_ratio}",Log::DEBUG);
|
|
return $cur_pratio > $profit_ratio;
|
|
return $cur_pratio > $profit_ratio;
|
|
};
|
|
};
|
|
|
|
|