88 lines
3.3 KiB
Python
88 lines
3.3 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
|
|||
|
|
import json
|
|||
|
|
import re
|
|||
|
|
|
|||
|
|
# 读取简历映射数据
|
|||
|
|
with open('/Users/apple/Documents/cursor/教务系统/frontend/scripts/resume_mapping.json', 'r', encoding='utf-8') as f:
|
|||
|
|
position_map = json.load(f)
|
|||
|
|
|
|||
|
|
# 读取当前的mockData.js文件
|
|||
|
|
with open('/Users/apple/Documents/cursor/教务系统/frontend/src/data/mockData.js', 'r', encoding='utf-8') as f:
|
|||
|
|
mockdata_lines = f.readlines()
|
|||
|
|
|
|||
|
|
# 创建一个函数来转义字符串用于JavaScript
|
|||
|
|
def escape_for_js(text):
|
|||
|
|
# 转义反引号和反斜杠
|
|||
|
|
text = text.replace('\\', '\\\\')
|
|||
|
|
text = text.replace('`', '\\`')
|
|||
|
|
text = text.replace('${', '\\${')
|
|||
|
|
return text
|
|||
|
|
|
|||
|
|
# 更新计数器
|
|||
|
|
update_count = 0
|
|||
|
|
not_found_positions = []
|
|||
|
|
|
|||
|
|
# 遍历所有行,找到需要更新的位置
|
|||
|
|
i = 0
|
|||
|
|
while i < len(mockdata_lines):
|
|||
|
|
line = mockdata_lines[i]
|
|||
|
|
|
|||
|
|
# 查找jobTitle字段
|
|||
|
|
if 'jobTitle:' in line:
|
|||
|
|
# 提取职位名称
|
|||
|
|
match = re.search(r'jobTitle:\s*["\']([^"\']+)["\']', line)
|
|||
|
|
if match:
|
|||
|
|
job_title = match.group(1)
|
|||
|
|
|
|||
|
|
# 检查是否有对应的简历数据
|
|||
|
|
if job_title in position_map:
|
|||
|
|
print(f"更新岗位: {job_title}")
|
|||
|
|
update_count += 1
|
|||
|
|
|
|||
|
|
# 找到resumeContent的起始位置
|
|||
|
|
j = i + 1
|
|||
|
|
while j < len(mockdata_lines) and 'resumeContent:' not in mockdata_lines[j]:
|
|||
|
|
j += 1
|
|||
|
|
|
|||
|
|
if j < len(mockdata_lines):
|
|||
|
|
# 找到resumeContent的结束位置(下一个},)
|
|||
|
|
k = j + 1
|
|||
|
|
brace_count = 1
|
|||
|
|
while k < len(mockdata_lines) and brace_count > 0:
|
|||
|
|
if '{' in mockdata_lines[k]:
|
|||
|
|
brace_count += mockdata_lines[k].count('{')
|
|||
|
|
if '}' in mockdata_lines[k]:
|
|||
|
|
brace_count -= mockdata_lines[k].count('}')
|
|||
|
|
k += 1
|
|||
|
|
|
|||
|
|
# 构建新的resumeContent
|
|||
|
|
resume_data = position_map[job_title]
|
|||
|
|
new_content = []
|
|||
|
|
new_content.append(" resumeContent: {\n")
|
|||
|
|
new_content.append(f" projectExperience: `{escape_for_js(resume_data['projectExperience'])}`,\n")
|
|||
|
|
new_content.append(f" skills: `{escape_for_js(resume_data['skills'])}`,\n")
|
|||
|
|
new_content.append(f" personalSummary: `{escape_for_js(resume_data['personalSummary'])}`,\n")
|
|||
|
|
new_content.append(" },\n")
|
|||
|
|
|
|||
|
|
# 替换原有内容
|
|||
|
|
mockdata_lines[j:k] = new_content
|
|||
|
|
i = j + len(new_content)
|
|||
|
|
continue
|
|||
|
|
else:
|
|||
|
|
not_found_positions.append(job_title)
|
|||
|
|
|
|||
|
|
i += 1
|
|||
|
|
|
|||
|
|
# 写回更新后的内容
|
|||
|
|
with open('/Users/apple/Documents/cursor/教务系统/frontend/src/data/mockData.js', 'w', encoding='utf-8') as f:
|
|||
|
|
f.writelines(mockdata_lines)
|
|||
|
|
|
|||
|
|
print(f"\n更新完成!")
|
|||
|
|
print(f"成功更新了 {update_count} 个岗位的简历数据")
|
|||
|
|
|
|||
|
|
if not_found_positions:
|
|||
|
|
print(f"\n以下 {len(not_found_positions)} 个岗位在简历数据中未找到匹配:")
|
|||
|
|
for pos in not_found_positions:
|
|||
|
|
print(f" - {pos}")
|