修复竞争比和按钮问题

This commit is contained in:
杨志
2026-01-21 10:42:18 +08:00
parent 08cb6b2b03
commit bc622c6c34
6 changed files with 124 additions and 64 deletions

View File

@@ -292,7 +292,7 @@ class CrawlerService
}
/**
* 计算竞争比(格式:招聘人数:审核通过人数,简化比例保留2位小数
* 计算竞争比(格式:1:比例保留2位小数
* @param int $zprs 招聘人数
* @param int $bkrs 审核通过人数
* @return string
@@ -304,33 +304,13 @@ class CrawlerService
}
if ($bkrs <= 0) {
return $zprs . ':0';
return '1:0';
}
// 计算最大公约数
$gcd = $this->gcd($zprs, $bkrs);
// 将招聘人数简化为1计算审核通过人数与招聘人数的比例
$ratio = $bkrs / $zprs;
// 简化比例
$simplifiedZprs = $zprs / $gcd;
$simplifiedBkrs = $bkrs / $gcd;
// 如果两个数都是整数,直接返回
if ($simplifiedZprs == intval($simplifiedZprs) && $simplifiedBkrs == intval($simplifiedBkrs)) {
return intval($simplifiedZprs) . ':' . intval($simplifiedBkrs);
}
// 如果招聘人数是1审核通过人数保留2位小数
if ($simplifiedZprs == 1) {
$bkrsFormatted = number_format($simplifiedBkrs, 2, '.', '');
// 如果小数部分是.00,则显示为整数
if (floatval($bkrsFormatted) == intval($bkrsFormatted)) {
return '1:' . intval($bkrsFormatted);
}
return '1:' . $bkrsFormatted;
}
// 否则将招聘人数简化为1审核通过人数按比例计算并保留2位小数
$ratio = $simplifiedBkrs / $simplifiedZprs;
// 保留2位小数
$ratioFormatted = number_format($ratio, 2, '.', '');
// 如果小数部分是.00,则显示为整数