|
@@ -94,13 +94,18 @@ class policy extends ProviderManager implements IPolicy
|
|
|
if($auto_find && in_array($card_type,$mobile_types) && in_array($quality,$qualities))
|
|
|
{
|
|
|
$names = $this->mChannelControl->auto_match($names, $spec, $card_type, $quality, $price, time() - $order_time);
|
|
|
- Log::record("policy::find_providers ChannelControl auto_match result=" . implode(',', $names), Log::DEBUG);
|
|
|
+ Log::record("policy::find_providers ChannelControl auto_match quality={$quality} spec={$spec} card_type={$card_type} result=" . implode(',', $names), Log::DEBUG);
|
|
|
+
|
|
|
+ $name_provider = [];
|
|
|
+ foreach ($providers as $provider) {
|
|
|
+ $name = $provider->name();
|
|
|
+ $name_provider[$name] = $provider;
|
|
|
+ }
|
|
|
|
|
|
$result = [];
|
|
|
- foreach ($providers as $provider)
|
|
|
+ foreach ($names as $name)
|
|
|
{
|
|
|
- $name = $provider->name();
|
|
|
- if (in_array($name, $names)) {
|
|
|
+ if(array_key_exists($name,$name_provider)) {
|
|
|
$result[] = $provider;
|
|
|
}
|
|
|
}
|