|
@@ -212,35 +212,41 @@ class Quality
|
|
|
|
|
|
$match_ratio = $this->mRatioCtl->ratio_match($mchid, $org_quality, $cur_quality, $card_type, $spec, $qualities);
|
|
|
|
|
|
+ Log::record("match_ratio = {$match_ratio}",Log::DEBUG);
|
|
|
Log::record("ratio_phone_quality begin qualities= " . implode(',',$qualities),Log::DEBUG);
|
|
|
+
|
|
|
$times_checker = function ($qualities, $times) use ($match_ratio, $cur_quality, $max_times, $mchid)
|
|
|
{
|
|
|
$result = [];
|
|
|
$pre_times = 0;
|
|
|
|
|
|
$compare = $cur_quality > 0 ? false : true;
|
|
|
+
|
|
|
foreach ($qualities as $quality)
|
|
|
{
|
|
|
+ $qtimes = $this->mRatioCtl->times($mchid, $quality);
|
|
|
+
|
|
|
if($compare == false)
|
|
|
{
|
|
|
if($quality == $cur_quality) {
|
|
|
$compare = true;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if($qtimes == false) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ $pre_times += $qtimes;
|
|
|
+ }
|
|
|
+
|
|
|
if($compare == false) continue;
|
|
|
|
|
|
if ($match_ratio) {
|
|
|
$result[] = $quality;
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- $qtimes = $this->mRatioCtl->times($mchid, $quality);
|
|
|
- if($qtimes == false) continue;
|
|
|
-
|
|
|
- $pre_times += $qtimes;
|
|
|
- if ($times < $pre_times) {
|
|
|
- $result[] = $quality;
|
|
|
- }
|
|
|
+ elseif ($times < $pre_times) {
|
|
|
+ $result[] = $quality;
|
|
|
}
|
|
|
}
|
|
|
|