修改9
This commit is contained in:
@@ -285,7 +285,8 @@ class MatchService
|
||||
$majorCodeMap = [];
|
||||
$majorCodes = [];
|
||||
foreach ($educations as $education) {
|
||||
$codeFields = ['major_code', 'majors_code', 'code', 'major_id', 'majors_id', 'major_no'];
|
||||
// 收集所有可能的专业代码字段
|
||||
$codeFields = ['major_code', 'majors_code', 'code', 'major_id', 'majors_id', 'major_no', 'id'];
|
||||
foreach ($codeFields as $field) {
|
||||
if (!empty($education[$field])) {
|
||||
$majorCodes[] = $education[$field];
|
||||
@@ -296,23 +297,52 @@ class MatchService
|
||||
|
||||
if (!empty($majorCodes)) {
|
||||
try {
|
||||
$majors = Db::name('da_majors')
|
||||
->whereIn('code', $majorCodes)
|
||||
->select()
|
||||
->toArray();
|
||||
// 尝试多种可能的查询字段:id, code, major_code, majors_id
|
||||
$majors = [];
|
||||
$queryFields = ['id', 'code', 'major_code', 'majors_id', 'major_id'];
|
||||
|
||||
foreach ($queryFields as $queryField) {
|
||||
try {
|
||||
$majors = Db::name('da_majors')
|
||||
->whereIn($queryField, $majorCodes)
|
||||
->select()
|
||||
->toArray();
|
||||
if (!empty($majors)) {
|
||||
error_log("成功从da_majors表查询到 " . count($majors) . " 条专业记录,使用字段: {$queryField}");
|
||||
break; // 找到匹配的字段,退出循环
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
// 字段不存在,继续尝试下一个
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// 构建专业代码映射表
|
||||
foreach ($majors as $major) {
|
||||
$code = $major['code'] ?? $major['major_code'] ?? null;
|
||||
// 尝试多种可能的代码字段
|
||||
$code = $major['id'] ?? $major['code'] ?? $major['major_code'] ?? $major['majors_id'] ?? $major['major_id'] ?? null;
|
||||
if (!$code) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 尝试多种可能的名称字段
|
||||
$name = $major['major_name'] ?? $major['name'] ?? $major['title'] ?? $major['专业名称'] ?? '';
|
||||
|
||||
// 尝试多种可能的类别字段
|
||||
$category = $major['category_name'] ?? $major['category'] ?? $major['major_category'] ?? $major['专业类别'] ?? $major['学科类别'] ?? '';
|
||||
|
||||
$majorCodeMap[$code] = [
|
||||
'name' => $major['major_name'] ?? $major['name'] ?? $major['title'] ?? '',
|
||||
'category' => $major['category_name'] ?? $major['category'] ?? $major['major_category'] ?? '',
|
||||
'name' => $name,
|
||||
'category' => $category,
|
||||
];
|
||||
}
|
||||
|
||||
error_log("专业代码映射表构建完成,共 " . count($majorCodeMap) . " 条记录");
|
||||
} catch (\Exception $e) {
|
||||
// da_majors 表不存在或字段不匹配时忽略
|
||||
error_log("查询da_majors表失败: " . $e->getMessage());
|
||||
}
|
||||
} else {
|
||||
error_log("未找到专业代码,无法查询da_majors表");
|
||||
}
|
||||
|
||||
// 构建简历数据结构
|
||||
@@ -347,12 +377,19 @@ class MatchService
|
||||
|
||||
// 如果有专业代码但没有名称,尝试从 da_majors 映射获取
|
||||
if (empty($majorName)) {
|
||||
$codeFields = ['major_code', 'majors_code', 'code', 'major_id', 'majors_id', 'major_no'];
|
||||
$codeFields = ['major_code', 'majors_code', 'code', 'major_id', 'majors_id', 'major_no', 'id'];
|
||||
foreach ($codeFields as $field) {
|
||||
if (!empty($education[$field]) && isset($majorCodeMap[$education[$field]])) {
|
||||
$majorName = $majorCodeMap[$education[$field]]['name'] ?? '';
|
||||
$education['major_category'] = $majorCodeMap[$education[$field]]['category'] ?? '';
|
||||
break;
|
||||
if (!empty($education[$field])) {
|
||||
$codeValue = $education[$field];
|
||||
// 尝试直接匹配
|
||||
if (isset($majorCodeMap[$codeValue])) {
|
||||
$majorName = $majorCodeMap[$codeValue]['name'] ?? '';
|
||||
$education['major_category'] = $majorCodeMap[$codeValue]['category'] ?? '';
|
||||
if (!empty($majorName)) {
|
||||
error_log("从majorCodeMap获取到专业名称: {$majorName}, 代码: {$codeValue}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user