95 lines
3.3 KiB
JavaScript
95 lines
3.3 KiB
JavaScript
|
|
#!/usr/bin/env node
|
|||
|
|
|
|||
|
|
// 测试面试题数据是否正确加载
|
|||
|
|
import fs from 'fs';
|
|||
|
|
import path from 'path';
|
|||
|
|
import { fileURLToPath } from 'url';
|
|||
|
|
|
|||
|
|
const __filename = fileURLToPath(import.meta.url);
|
|||
|
|
const __dirname = path.dirname(__filename);
|
|||
|
|
|
|||
|
|
// 读取mock数据文件
|
|||
|
|
const mockFilePath = path.join(__dirname, 'src/mocks/resumeInterviewMock.js');
|
|||
|
|
const mockContent = fs.readFileSync(mockFilePath, 'utf-8');
|
|||
|
|
|
|||
|
|
// 提取industries数据
|
|||
|
|
const industriesMatch = mockContent.match(/const industries = (\[[\s\S]*?\]);/);
|
|||
|
|
|
|||
|
|
if (!industriesMatch) {
|
|||
|
|
console.error('❌ 无法找到industries数据');
|
|||
|
|
process.exit(1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 尝试解析数据(将JavaScript对象转换为JSON)
|
|||
|
|
const industriesDataStr = industriesMatch[1];
|
|||
|
|
|
|||
|
|
// 简单替换JavaScript对象语法为JSON格式
|
|||
|
|
const jsonStr = industriesDataStr
|
|||
|
|
.replace(/(\w+):/g, '"$1":') // 给属性名加引号
|
|||
|
|
.replace(/'/g, '"') // 单引号改双引号
|
|||
|
|
.replace(/,(\s*[\]}])/g, '$1'); // 移除尾随逗号
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
const industries = JSON.parse(jsonStr);
|
|||
|
|
|
|||
|
|
console.log('✅ 成功解析industries数据');
|
|||
|
|
console.log(`📊 共找到 ${industries.length} 个产业群`);
|
|||
|
|
|
|||
|
|
let totalPositions = 0;
|
|||
|
|
let positionsWithQuestions = 0;
|
|||
|
|
let questionsFromHealthData = 0;
|
|||
|
|
|
|||
|
|
industries.forEach(industry => {
|
|||
|
|
console.log(`\n🏢 产业: ${industry.name} (${industry.positions.length} 个岗位)`);
|
|||
|
|
|
|||
|
|
industry.positions.forEach(position => {
|
|||
|
|
totalPositions++;
|
|||
|
|
|
|||
|
|
if (position.questions && position.questions.length > 0) {
|
|||
|
|
positionsWithQuestions++;
|
|||
|
|
|
|||
|
|
// 检查问题内容是否包含大健康特定问题
|
|||
|
|
const questionTexts = position.questions.flatMap(q =>
|
|||
|
|
q.subQuestions ? q.subQuestions.map(sq => sq.question) : [q.question]
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
const hasHealthQuestions = questionTexts.some(q =>
|
|||
|
|
q.includes('健康管理') ||
|
|||
|
|
q.includes('康复') ||
|
|||
|
|
q.includes('药品') ||
|
|||
|
|
q.includes('医疗') ||
|
|||
|
|
q.includes('生产流程') ||
|
|||
|
|
q.includes('质量控制') ||
|
|||
|
|
q.includes('GMP') ||
|
|||
|
|
q.includes('患者')
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
if (hasHealthQuestions) {
|
|||
|
|
questionsFromHealthData++;
|
|||
|
|
console.log(` ✅ ${position.title}: 包含大健康相关问题 (${position.questions.length} 组)`);
|
|||
|
|
} else {
|
|||
|
|
console.log(` ❌ ${position.title}: 可能仍是原始问题`);
|
|||
|
|
console.log(` 示例问题: ${questionTexts[0]?.substring(0, 50)}...`);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
console.log(` ⚠️ ${position.title}: 无面试题`);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
console.log('\n📈 统计总结:');
|
|||
|
|
console.log(`总岗位数: ${totalPositions}`);
|
|||
|
|
console.log(`有面试题的岗位: ${positionsWithQuestions}`);
|
|||
|
|
console.log(`包含大健康相关问题的岗位: ${questionsFromHealthData}`);
|
|||
|
|
console.log(`更新完成率: ${((questionsFromHealthData / totalPositions) * 100).toFixed(1)}%`);
|
|||
|
|
|
|||
|
|
if (questionsFromHealthData < totalPositions * 0.8) {
|
|||
|
|
console.log('\n⚠️ 警告: 大部分岗位可能仍在使用原始问题,需要检查数据更新是否成功');
|
|||
|
|
} else {
|
|||
|
|
console.log('\n🎉 成功: 大部分岗位已更新为大健康相关问题');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error('❌ JSON解析失败:', error.message);
|
|||
|
|
console.log('尝试的JSON字符串前100字符:', jsonStr.substring(0, 100));
|
|||
|
|
}
|