|
@@ -301,45 +301,29 @@ class policy extends ProviderManager implements IPolicy
|
|
|
|
|
|
$mobile_types = [mtopcard\ChinaMobileCard, mtopcard\ChinaUnicomCard, mtopcard\ChinaTelecomCard];
|
|
$mobile_types = [mtopcard\ChinaMobileCard, mtopcard\ChinaUnicomCard, mtopcard\ChinaTelecomCard];
|
|
$qualities = [Quality::Normal];
|
|
$qualities = [Quality::Normal];
|
|
- if($auto_find && in_array($card_type,$mobile_types) && in_array($cur_quality,$qualities))
|
|
|
|
- {
|
|
|
|
|
|
+ if ($auto_find && in_array($card_type, $mobile_types) && in_array($cur_quality, $qualities)) {
|
|
$names = $this->mChannelControl->auto_match($names, $spec, $card_type, $cur_quality, $price - $extra_price, time() - $order_time);
|
|
$names = $this->mChannelControl->auto_match($names, $spec, $card_type, $cur_quality, $price - $extra_price, time() - $order_time);
|
|
- Log::record("policy::find_providers ChannelControl auto_match quality={$cur_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 ($names as $name)
|
|
|
|
- {
|
|
|
|
- if(array_key_exists($name,$name_provider)) {
|
|
|
|
- $result[] = $name_provider[$name];
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ Log::record("policy::find_providers ChannelControl auto_match quality={$cur_quality} spec={$spec} card_type={$card_type} result=" . implode(',', $names), Log::DEBUG);
|
|
|
|
+ } else {
|
|
|
|
+ $names = $this->mChannelControl->match($names, $spec, $card_type, $cur_quality);
|
|
|
|
+ Log::record("policy::find_providers ChannelControl match quality={$cur_quality} spec={$spec} card_type={$card_type} result=" . implode(',', $names), Log::DEBUG);
|
|
|
|
+ }
|
|
|
|
|
|
- return [$result,false];
|
|
|
|
|
|
+ $name_provider = [];
|
|
|
|
+ foreach ($providers as $provider) {
|
|
|
|
+ $name = $provider->name();
|
|
|
|
+ $name_provider[$name] = $provider;
|
|
}
|
|
}
|
|
- else
|
|
|
|
- {
|
|
|
|
- $name_overloads = $this->mChannelControl->match($names, $spec, $card_type, $cur_quality);
|
|
|
|
- Log::record("policy::find_providers ChannelControl match result=" . implode(',',array_keys($name_overloads)),Log::DEBUG);
|
|
|
|
|
|
|
|
- $result = [];
|
|
|
|
- foreach ($name_overloads as $name => $overload)
|
|
|
|
- {
|
|
|
|
- foreach ($providers as $provider)
|
|
|
|
- {
|
|
|
|
- if($name == $provider->name()) {
|
|
|
|
- $result[] = $provider;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ $result = [];
|
|
|
|
+ foreach ($names as $name)
|
|
|
|
+ {
|
|
|
|
+ if(array_key_exists($name,$name_provider)) {
|
|
|
|
+ $result[] = $name_provider[$name];
|
|
}
|
|
}
|
|
-
|
|
|
|
- return [$result,false];
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ return [$result,false];
|
|
}
|
|
}
|
|
|
|
|
|
public function price($mchid,$spec,$card_type,$quality,$pcode)
|
|
public function price($mchid,$spec,$card_type,$quality,$pcode)
|