stanley-king 2 年之前
父节点
当前提交
17a1e7d0e4
共有 1 个文件被更改,包括 26 次插入18 次删除
  1. 26 18
      helper/refill/policy/quaility.php

+ 26 - 18
helper/refill/policy/quaility.php

@@ -333,33 +333,41 @@ class Quality
             Log::record("{$tag}={$str}", Log::DEBUG);
         };
 
-        $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} all_qualities", $all_qualities);
-        [$match_ratio, $can_last] = $this->mRatioCtl->ratio_match($mchid, $org_quality, $card_type, $spec, $all_qualities);
-        Log::record("ratio_phone_quality mchid={$mchid} must calc next quality match_ratio={$match_ratio} can_last={$can_last}", Log::DEBUG);
+        if($used_times > 0)
+        {
+            $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} all_qualities", $all_qualities);
+            [$match_ratio, $can_last] = $this->mRatioCtl->ratio_match($mchid, $org_quality, $card_type, $spec, $all_qualities);
+            Log::record("ratio_phone_quality mchid={$mchid} must calc next quality match_ratio={$match_ratio} can_last={$can_last}", Log::DEBUG);
 
-        $times_qualities = $times_checker($match_ratio, $all_qualities, $used_times);
-        $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} times_qualities", $times_qualities);
+            $times_qualities = $times_checker($match_ratio, $all_qualities, $used_times);
+            $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} times_qualities", $times_qualities);
 
-        $timeout_qualities = $timeout_checker($match_ratio, $all_qualities, $left_time);
-        $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} timeout_qualities", $timeout_qualities);
+            $timeout_qualities = $timeout_checker($match_ratio, $all_qualities, $left_time);
+            $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} timeout_qualities", $timeout_qualities);
 
-        $pre_qualities = array_intersect($times_qualities, $timeout_qualities, $all_qualities);
-        $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} pre_qualities", $pre_qualities);
+            $pre_qualities = array_intersect($times_qualities, $timeout_qualities, $all_qualities);
+            $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} pre_qualities", $pre_qualities);
 
 
-        if (!$timeing_checker($pre_qualities)) {
-            $pre_qualities = [];
-            Log::record("calc_quality timeing_checker result is empty", Log::DEBUG);
-        }
+            if (!$timeing_checker($pre_qualities)) {
+                $pre_qualities = [];
+                Log::record("calc_quality timeing_checker result is empty", Log::DEBUG);
+            }
 
-        $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} after timeing_checker qualities", $pre_qualities);
-        $cur_qualities = $pre_qualities;
+            $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} after timeing_checker qualities", $pre_qualities);
+            $cur_qualities = $pre_qualities;
 
-        if (!$can_last) {
-            $all = $this->qualities($org_quality);
-            $cur_qualities = PolicyUtil::mixed_remove_last($org_quality, $cur_qualities, $all);
+            if (!$can_last) {
+                $all = $this->qualities($org_quality);
+                $cur_qualities = PolicyUtil::mixed_remove_last($org_quality, $cur_qualities, $all);
+            }
+        }
+        else {
+            $match_ratio = true;
+            $cur_qualities = $all_qualities;
         }
 
+
         return [$cur_qualities,$match_ratio];
 
     }