stanley-king 2 rokov pred
rodič
commit
5f10ae347b

+ 17 - 10
helper/refill/policy/chctlex.php

@@ -304,18 +304,22 @@ class chctlex
         {
             $workers = [];
             $overs = [];
+            $stops = [];
 
             foreach ($ctls as $item)
             {
                 Log::record("ctl_splitor {$item->name()} speed={$item->cur_speed()} max_speed={$item->max_speed()}",Log::DEBUG);
-                if($item->speed_overload()) {
+                if($item->speed_stoped()) {
+                    $stops[] = $item;
+                }
+                elseif($item->speed_overload()) {
                     $overs[] = $item;
                 }
                 else {
                     $workers[] = $item;
                 }
             }
-            return [$workers,$overs];
+            return [$workers, $overs, $stops];
         };
 
         $time_map = function ($ctls, $left_time)
@@ -364,22 +368,25 @@ class chctlex
         $ctls = $price_filter($names, $spec, $card_type, $quality);
         $ctlitem_logger("price filter", $ctls);
 
-        [$workers,$overloads] = $ctl_splitor($ctls);
+        [$workers,$overloads,$stops] = $ctl_splitor($ctls);
 
         $ctlitem_logger("workers",$workers);
-        $ctlitem_logger("over loads",$overloads);
+        $ctlitem_logger("overloads",$overloads);
+        $ctlitem_logger("stops",$stops);
 
         usort($workers, $desc_profit);
         usort($overloads, $desc_profit);
+        usort($stops, $desc_profit);
 
-        $ctlitem_logger("sort works",$workers);
-        $ctlitem_logger("sort loads",$overloads);
+        $ctlitem_logger("sort workers",$workers);
+        $ctlitem_logger("sort overloads",$overloads);
+        $ctlitem_logger("sort stops",$stops);
 
-        $ctls = array_merge($workers, $overloads);
-        $ctlitem_logger("result merge ctls",$ctls);
+        $ctls = array_merge($workers, $overloads, $stops);
+        $ctlitem_logger("result merge ctls", $ctls);
 
-        $ctls = $time_map($ctls,$left_time);
-        $ctlitem_logger("result time check ctls",$ctls);
+        $ctls = $time_map($ctls, $left_time);
+        $ctlitem_logger("result time check ctls", $ctls);
 
         $names = $names_getter($ctls);
         return $names;

+ 3 - 0
helper/refill/policy/ctl_itemex.php

@@ -106,6 +106,9 @@ class ctl_itemex
             return $this->mSpeed >= $this->mMaxSpeed;
         }
     }
+    public function speed_stoped() {
+        return $this->mMaxSpeed == 0;
+    }
     public function cur_speed()
     {
         return $this->mSpeed;