Selaa lähdekoodia

fix 修复低成功率满足,但质量通道没有的时候,会坚持走高质量通道的问题

stanley-king 2 vuotta sitten
vanhempi
commit
e4aaf17433

+ 9 - 19
helper/refill/policy/PolicyUtil.php

@@ -14,28 +14,18 @@ class PolicyUtil
         }
     }
 
-//    public static function mixed_qualities()
-//    {
-//        return PolicyUtil::MixedQuality;
-//    }
-//
-//    public static function mixed_ratio()
-//    {
-//        $mixed = [Quality::DefSuccess];
-//        return $mixed;
-//    }
-//
-//    public static function isMixedQuality($org_quality)
-//    {
-//        return in_array($org_quality,[Quality::NormalQuick]);
-//    }
-
-    public static function mixed_remove_last($org_quality,$qualities)
+    public static function mixed_remove_last($org_quality,$qualities,$all_aualities)
     {
         if(self::mixed_quality($org_quality))
         {
-
-
+            $last_quality = end($all_aualities);
+            $result = [];
+            foreach ($qualities as $quality) {
+                if($last_quality != $quality) {
+                    $result[] = $quality;
+                }
+            }
+            return $result;
         }
         else {
             return $qualities;

+ 3 - 7
helper/refill/policy/quaility.php

@@ -345,13 +345,9 @@ class Quality
             }
         }
 
-        if($match_ratio)
-        {
-            if (PolicyUtil::mixed_quality($org_quality))
-            {
-
-                return false;
-            }
+        if ($match_ratio) {
+            $all = $this->qualities($org_quality);
+            $qualities = PolicyUtil::mixed_remove_last($org_quality, $qualities, $all);
         }
 
         return [$qualities,$match_ratio];

+ 6 - 0
test/TestRefillMonitor.php

@@ -9,10 +9,13 @@ require_once(BASE_ROOT_PATH . '/global.php');
 require_once(BASE_CORE_PATH . '/lrlz.php');
 require_once(BASE_ROOT_PATH . '/fooder.php');
 
+require_once(BASE_HELPER_PATH . '/refill/RefillFactory.php');
 require_once(BASE_HELPER_PATH . '/queue/iqueue.php');
 require_once(BASE_HELPER_PATH . '/queue/monitor.php');
 require_once(BASE_HELPER_PATH . '/refill/util.php');
 
+use refill;
+
 
 class TestRefillMonitor extends TestCase
 {
@@ -89,6 +92,9 @@ class TestRefillMonitor extends TestCase
 
     public function testQuality()
     {
+        $quality = new refill\quality_ploy();
+        $all = $quality->qualities(refill\Quality::DefSuccess);
+        refill\PolicyUtil::mixed_remove_last(refill\Quality::DefSuccess, [1, 2], $all);
 
     }
 }