This commit is contained in:
杨志
2026-01-06 15:02:17 +08:00
parent 0e38177c4b
commit bcabbcd40a

View File

@@ -62,6 +62,7 @@ class MatchService
// 3. 计算匹配度
$results = [];
foreach ($filteredPositions as $position) {
try {
$score = $this->calculateMatchScore($position, $resume);
if ($filterZero && $score == 0) {
@@ -73,6 +74,11 @@ class MatchService
'match_score' => $score,
'position' => $position
];
} catch (\Exception $e) {
// 如果计算出错,记录错误但继续处理其他岗位
error_log("计算匹配度失败 - 岗位ID: {$position['id']}, 错误: " . $e->getMessage());
continue;
}
}
// 4. 按匹配度降序排序
@@ -291,8 +297,9 @@ class MatchService
}
// 3. 年龄要求(硬性)
if (!empty($positionRequire['年龄要求'])) {
$ageCheck = $this->checkAge($positionRequire['年龄要求'], $resume);
$ageRequire = $positionRequire['年龄要求'] ?? '';
if (!empty($ageRequire) && trim($ageRequire) !== '' && trim($ageRequire) !== '无' && trim($ageRequire) !== '不限制') {
$ageCheck = $this->checkAge($ageRequire, $resume);
$result['details']['年龄要求'] = $ageCheck;
if (!$ageCheck['passed']) {
$result['passed'] = false;
@@ -313,6 +320,19 @@ class MatchService
}
// 5. 性别要求(硬性,如果明确要求)
// 优先检查 sex_require 字段
$sexRequire = $positionRequire['性别要求'] ?? '';
if (!empty($sexRequire) && $sexRequire !== '不限制' && $sexRequire !== '无') {
$genderCheck = $this->checkGender($sexRequire, $resume);
$result['details']['性别要求'] = $genderCheck;
if (!$genderCheck['passed']) {
$result['passed'] = false;
$result['rejection_reasons'][] = $genderCheck['reason'];
}
}
// 如果 sex_require 字段没有明确要求,再检查其他资格条件
if (empty($sexRequire) || $sexRequire === '不限制' || $sexRequire === '无') {
$otherConditions = $positionRequire['其他资格条件'] ?? '';
if (preg_match('/适合(男|女)性/u', $otherConditions, $matches)) {
$genderCheck = $this->checkGender($matches[1], $resume);
@@ -322,6 +342,7 @@ class MatchService
$result['rejection_reasons'][] = $genderCheck['reason'];
}
}
}
return $result;
}