Sfoglia il codice sorgente

fix times checker err:在高质量通道时,没计算低质量通道次数

stanley-king 3 anni fa
parent
commit
af122f2f9f
1 ha cambiato i file con 15 aggiunte e 9 eliminazioni
  1. 15 9
      helper/refill/policy/quaility.php

+ 15 - 9
helper/refill/policy/quaility.php

@@ -212,35 +212,41 @@ class Quality
 
         $match_ratio = $this->mRatioCtl->ratio_match($mchid, $org_quality, $cur_quality, $card_type, $spec, $qualities);
 
+        Log::record("match_ratio = {$match_ratio}",Log::DEBUG);
         Log::record("ratio_phone_quality begin qualities= " . implode(',',$qualities),Log::DEBUG);
+
         $times_checker = function ($qualities, $times) use ($match_ratio, $cur_quality, $max_times, $mchid)
         {
             $result = [];
             $pre_times = 0;
 
             $compare = $cur_quality > 0 ? false : true;
+
             foreach ($qualities as $quality)
             {
+                $qtimes = $this->mRatioCtl->times($mchid, $quality);
+
                 if($compare == false)
                 {
                     if($quality == $cur_quality) {
                         $compare = true;
                     }
                 }
+
+                if($qtimes == false) {
+                    continue;
+                }
+                else {
+                    $pre_times += $qtimes;
+                }
+
                 if($compare == false) continue;
 
                 if ($match_ratio) {
                     $result[] = $quality;
                 }
-                else
-                {
-                    $qtimes = $this->mRatioCtl->times($mchid, $quality);
-                    if($qtimes == false) continue;
-
-                    $pre_times += $qtimes;
-                    if ($times < $pre_times) {
-                        $result[] = $quality;
-                    }
+                elseif ($times < $pre_times) {
+                    $result[] = $quality;
                 }
             }