|
@@ -138,6 +138,15 @@ class policy extends ProviderManager implements IPolicy
|
|
|
return [$org_quality,0];
|
|
|
}
|
|
|
|
|
|
+ $namer = function ($providers)
|
|
|
+ {
|
|
|
+ $result = [];
|
|
|
+ foreach ($providers as $provider) {
|
|
|
+ $result[] = $provider->name();
|
|
|
+ }
|
|
|
+ return $result;
|
|
|
+ };
|
|
|
+
|
|
|
foreach ($qualities as $quality)
|
|
|
{
|
|
|
$price = $this->mPrices->price($mchid,$card_type,$spec,$quality,$pcode);
|
|
@@ -147,7 +156,12 @@ class policy extends ProviderManager implements IPolicy
|
|
|
}
|
|
|
|
|
|
$providers = parent::get_providers($mchid, $spec, $card_type, $quality, $regin_no);
|
|
|
- if (!empty($providers)) {
|
|
|
+ if(empty($providers)) continue;
|
|
|
+
|
|
|
+ $names = $namer($providers);
|
|
|
+ $names_overload = $this->mChannelControl->match($names, $spec, $card_type, $quality);
|
|
|
+
|
|
|
+ if (!empty($names_overload)) {
|
|
|
return [$org_quality, $quality];
|
|
|
} else {
|
|
|
Log::record("Policy::find_quality:{$quality}-{$spec}-{$card_type} is fail", Log::DEBUG);
|