|
@@ -333,31 +333,38 @@ class Quality
|
|
|
Log::record("{$tag}={$str}", Log::DEBUG);
|
|
|
};
|
|
|
|
|
|
- $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} all_qualities", $all_qualities);
|
|
|
- [$match_ratio, $can_last] = $this->mRatioCtl->ratio_match($mchid, $org_quality, $card_type, $spec, $all_qualities);
|
|
|
- Log::record("ratio_phone_quality mchid={$mchid} must calc next quality match_ratio={$match_ratio} can_last={$can_last}", Log::DEBUG);
|
|
|
+ if($used_times > 0)
|
|
|
+ {
|
|
|
+ $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} all_qualities", $all_qualities);
|
|
|
+ [$match_ratio, $can_last] = $this->mRatioCtl->ratio_match($mchid, $org_quality, $card_type, $spec, $all_qualities);
|
|
|
+ Log::record("ratio_phone_quality mchid={$mchid} must calc next quality match_ratio={$match_ratio} can_last={$can_last}", Log::DEBUG);
|
|
|
|
|
|
- $times_qualities = $times_checker($match_ratio, $all_qualities, $used_times);
|
|
|
- $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} times_qualities", $times_qualities);
|
|
|
+ $times_qualities = $times_checker($match_ratio, $all_qualities, $used_times);
|
|
|
+ $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} times_qualities", $times_qualities);
|
|
|
|
|
|
- $timeout_qualities = $timeout_checker($match_ratio, $all_qualities, $left_time);
|
|
|
- $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} timeout_qualities", $timeout_qualities);
|
|
|
+ $timeout_qualities = $timeout_checker($match_ratio, $all_qualities, $left_time);
|
|
|
+ $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} timeout_qualities", $timeout_qualities);
|
|
|
|
|
|
- $pre_qualities = array_intersect($times_qualities, $timeout_qualities, $all_qualities);
|
|
|
- $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} pre_qualities", $pre_qualities);
|
|
|
+ $pre_qualities = array_intersect($times_qualities, $timeout_qualities, $all_qualities);
|
|
|
+ $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} pre_qualities", $pre_qualities);
|
|
|
|
|
|
|
|
|
- if (!$timeing_checker($pre_qualities)) {
|
|
|
- $pre_qualities = [];
|
|
|
- Log::record("calc_quality timeing_checker result is empty", Log::DEBUG);
|
|
|
- }
|
|
|
+ if (!$timeing_checker($pre_qualities)) {
|
|
|
+ $pre_qualities = [];
|
|
|
+ Log::record("calc_quality timeing_checker result is empty", Log::DEBUG);
|
|
|
+ }
|
|
|
|
|
|
- $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} after timeing_checker qualities", $pre_qualities);
|
|
|
- $cur_qualities = $pre_qualities;
|
|
|
+ $qualities_log("ratio_phone_quality {$mchid}-{$card_type}-{$spec} after timeing_checker qualities", $pre_qualities);
|
|
|
+ $cur_qualities = $pre_qualities;
|
|
|
|
|
|
- if (!$can_last) {
|
|
|
- $all = $this->qualities($org_quality);
|
|
|
- $cur_qualities = PolicyUtil::mixed_remove_last($org_quality, $cur_qualities, $all);
|
|
|
+ if (!$can_last) {
|
|
|
+ $all = $this->qualities($org_quality);
|
|
|
+ $cur_qualities = PolicyUtil::mixed_remove_last($org_quality, $cur_qualities, $all);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ $match_ratio = true;
|
|
|
+ $cur_qualities = $all_qualities;
|
|
|
}
|
|
|
|
|
|
return [$cur_qualities,$match_ratio];
|