Files
teach_sys_Demo/check_positions.js
KQL 561d5c286d feat: 实现日历课程点击跳转到直播间功能
- 添加日历课程详情弹窗的点击跳转功能
- 公共课直播间和课程直播间支持URL参数自动选中课程
- 优化岗位详情页面样式,复用简洁卡片样式
- 为岗位详情标题添加图标
- 调整不同类型课程的跳转逻辑

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 14:14:45 +08:00

100 lines
3.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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);
// 读取文件
const filePath = path.join(__dirname, 'src/mocks/resumeInterviewMock.js');
const content = fs.readFileSync(filePath, 'utf-8');
// 需要检查的岗位列表
const positionsToCheck = [
'民宿管家',
'民宿客房管家',
'民宿运营专员',
'露营地运营专员',
'新媒体运营专员',
'文创产品设计师',
'文创产品策划师',
'文创产品设计师助理',
'品牌策划运营专员',
'品牌公关',
'品牌推广专员',
'ip运营',
'IP运营总监助理',
'品牌公关管培生'
];
console.log('检查岗位数据完整性...');
console.log('=' * 50);
// 提取industries数据
const industriesMatch = content.match(/const industries = \[([\s\S]*?)\];/);
if (!industriesMatch) {
console.log('未找到industries数据');
process.exit(1);
}
// 提取resumeTemplates数据
const templatesMatch = content.match(/const resumeTemplates = \{([\s\S]*?)\n\};/);
if (!templatesMatch) {
console.log('未找到resumeTemplates数据');
process.exit(1);
}
// 分析每个岗位
const results = [];
for (const position of positionsToCheck) {
// 在industries中查找
const industryRegex = new RegExp(`title: "${position}"`, 'g');
const industryMatches = [...content.matchAll(industryRegex)];
// 在resumeTemplates中查找
const templateRegex = new RegExp(`position: "${position}"[\\s\\S]*?studentInfo:`, 'g');
const templateMatches = [...content.matchAll(templateRegex)];
// 检查是否有studentInfo
let hasStudentInfo = false;
for (const match of templateMatches) {
const afterMatch = content.substring(match.index, match.index + 1000);
if (afterMatch.includes('studentInfo: {')) {
// 检查studentInfo是否包含必要字段
const studentInfoEnd = afterMatch.indexOf('},') + match.index;
const studentInfoContent = content.substring(match.index, studentInfoEnd);
hasStudentInfo =
studentInfoContent.includes('project_experience:') &&
studentInfoContent.includes('core_skills:') &&
studentInfoContent.includes('personal_summary:');
}
}
results.push({
position,
inIndustries: industryMatches.length > 0,
inTemplates: templateMatches.length > 0,
hasStudentInfo
});
}
// 输出结果
console.log('\n检查结果\n');
console.log('岗位名称 | 在industries中 | 在templates中 | 有studentInfo');
console.log('-'.repeat(60));
let missingCount = 0;
for (const result of results) {
const status = result.hasStudentInfo ? '✅' : '❌';
console.log(`${result.position.padEnd(20)} | ${result.inIndustries ? '是' : '否'} | ${result.inTemplates ? '是' : '否'} | ${status}`);
if (!result.hasStudentInfo) {
missingCount++;
}
}
console.log('\n' + '='.repeat(50));
console.log(`总计:${results.length}个岗位,${missingCount}个缺少studentInfo数据`);