Files
ALL-teach_sys/frontend_交通物流/updateModifiedResumes.js

112 lines
4.2 KiB
JavaScript
Raw Normal View History

import fs from 'fs';
import path from 'path';
// 修改版简历的岗位列表
const modifiedPositions = [
"AGV运维专员",
"WMS技术顾问",
"物流运营",
"物流安全员",
"物流工程师",
"智能仓储规划师",
"无人仓拣选工程师",
"机器人运维工程师",
"智能仓储运维工程师",
"智慧物流解决方案工程师"
];
console.log('开始更新修改版简历数据...\n');
// 1. 首先更新 ResumeInterviewPage 的 hasRealModifiedVersion 函数
const pageFilePath = 'src/pages/ResumeInterviewPage/index.jsx';
let pageContent = fs.readFileSync(pageFilePath, 'utf-8');
// 替换 modifiedPositions 数组
const newModifiedPositions = ` const modifiedPositions = [
// 交通物流产业岗位
"AGV运维专员",
"WMS技术顾问",
"物流运营",
"物流安全员",
"物流工程师",
"智能仓储规划师",
"无人仓拣选工程师",
"机器人运维工程师",
"智能仓储运维工程师",
"智慧物流解决方案工程师"
];`;
pageContent = pageContent.replace(
/const modifiedPositions = \[[\s\S]*?\];/,
newModifiedPositions
);
fs.writeFileSync(pageFilePath, pageContent, 'utf-8');
console.log('✓ 已更新 ResumeInterviewPage 的修改版岗位列表\n');
// 2. 读取所有修改版简历内容
const modifiedResumesDir = '网页未导入数据/交通物流产业/交通物流修改版简历';
const modifiedResumes = {};
for (const position of modifiedPositions) {
const filePath = path.join(modifiedResumesDir, `${position}.md`);
if (fs.existsSync(filePath)) {
const content = fs.readFileSync(filePath, 'utf-8');
modifiedResumes[position] = content;
console.log(`✓ 读取修改版简历: ${position}`);
} else {
console.log(`✗ 未找到修改版简历文件: ${position}.md`);
}
}
// 3. 读取当前的 mock 数据
const mockFilePath = 'src/mocks/resumeInterviewMock.js';
let mockContent = fs.readFileSync(mockFilePath, 'utf-8');
// 4. 解析并更新 resumeTemplates 中对应岗位的 modified 字段
// 由于文件是 JavaScript我们需要通过字符串替换来更新
console.log('\n开始更新 resumeTemplates 的 modified 字段...');
// 读取交通物流原始数据来建立映射
const originalData = JSON.parse(fs.readFileSync('网页未导入数据/交通物流产业/交通物流岗位简历.json', 'utf-8'));
// 为每个修改版岗位更新数据
for (const [position, modifiedContent] of Object.entries(modifiedResumes)) {
// 找到原始数据
const originalItem = originalData.find(item => item.岗位名称 === position);
if (originalItem) {
// 在 mockContent 中查找并替换该岗位的 content.modified
// 使用更精确的正则表达式来匹配特定岗位的 content 部分
const positionPattern = new RegExp(
`("position":\\s*"${position}"[\\s\\S]*?"content":\\s*\\{[\\s\\S]*?"modified":\\s*)"[^"]*"`,
'g'
);
// 转义修改版内容中的特殊字符
const escapedContent = JSON.stringify(modifiedContent).slice(1, -1);
// 替换 modified 字段
const replacement = `$1"${escapedContent}"`;
if (mockContent.match(positionPattern)) {
mockContent = mockContent.replace(positionPattern, replacement);
console.log(`✓ 更新岗位 "${position}" 的修改版简历`);
} else {
console.log(`✗ 未找到岗位 "${position}" 在 resumeTemplates 中`);
}
}
}
// 5. 保存更新后的 mock 文件
// 先备份
const backupFileName = `src/mocks/resumeInterviewMock.js.backup_modified_${new Date().toISOString().replace(/[:.]/g, '-')}`;
fs.copyFileSync(mockFilePath, backupFileName);
console.log(`\n原文件已备份到: ${backupFileName}`);
fs.writeFileSync(mockFilePath, mockContent, 'utf-8');
console.log('✓ resumeInterviewMock.js 已更新\n');
console.log('修改版简历数据更新完成!');
console.log(`- 更新了 ${modifiedPositions.length} 个岗位的修改版状态`);
console.log(`- 成功读取并更新了 ${Object.keys(modifiedResumes).length} 个修改版简历内容`);