Files
ALL-teach_sys/frontend_视觉设计/update_visual_design_data.py

250 lines
8.1 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import re
from datetime import datetime
def load_visual_design_data():
"""加载视觉设计岗位简历数据"""
with open('网页未导入数据/视觉设计产业/视觉设计岗位简历.json', 'r', encoding='utf-8') as f:
return json.load(f)
def create_position_groups(visual_data):
"""根据岗位群对数据进行分组"""
groups = {}
for position in visual_data:
group_name = position['简历岗位群']
if group_name not in groups:
groups[group_name] = []
groups[group_name].append(position)
return groups
def convert_to_industries_format(position_groups):
"""转换为industries格式"""
industries = []
for group_id, (group_name, positions) in enumerate(position_groups.items()):
industry = {
"id": f"visual_design_{group_id + 1}",
"name": group_name,
"positions": [],
"questions": [{
"id": f"group_q{group_id + 1}",
"question": f"# 一、专业能力与行业认知",
"subQuestions": [{
"id": f"q{group_id + 1}_1",
"question": f"{group_name}类岗位的核心职责是什么?",
"answer": f"负责{group_name}相关工作,包括设计规划、创意实现、项目协作等。"
}]
}]
}
for pos_id, position in enumerate(positions):
# 确定岗位等级
level = position.get('岗位等级标签', '普通岗')
# 创建岗位对象
pos_obj = {
"id": f"visual_design_{group_id + 1}_{pos_id + 1}",
"title": position['岗位名称'],
"level": level,
"avatar": position.get('简历头像url', ''),
"department": group_name,
"type": "全职",
"experience": "1-3年",
"education": "大专",
"salary": "6-12K",
"location": "苏州",
"updateTime": "2024-01-20",
"description": f"负责{position['岗位名称']}相关工作",
"requirements": [
f"具备{group_name}专业技能",
"熟悉相关设计软件",
"具备良好的沟通协作能力",
"有创新意识和学习能力"
]
}
industry["positions"].append(pos_obj)
industries.append(industry)
return industries
def create_resume_templates(visual_data):
"""创建简历模板数据"""
templates = {}
# 按岗位群分组
groups = create_position_groups(visual_data)
for group_name, positions in groups.items():
templates[group_name] = []
for position in positions:
template = {
"id": f"resume_{len(templates[group_name]) + 1}",
"position": position['岗位名称'],
"level": position.get('岗位等级标签', '普通岗'),
"industry": group_name,
"studentInfo": {
"name": "张小同",
"gender": "",
"age": 22,
"education": "大专",
"major": "数字媒体艺术设计",
"avatar": position.get('简历头像url', '')
},
"content": {
"original": position.get('简历内容', ''),
"modified": position.get('简历内容', '')
},
"interviewQuestions": position.get('面试题内容', '')
}
templates[group_name].append(template)
return templates
def create_joblevel_data(visual_data):
"""创建joblevel.json数据"""
job_levels = {
"储备干部岗": [],
"技术骨干岗": [],
"普通岗": []
}
# 映射岗位等级
level_mapping = {
"储备干部岗": "high",
"技术骨干岗": "middle",
"普通岗": "ordinary"
}
for i, position in enumerate(visual_data):
level_name = position.get('岗位等级标签', '普通岗')
job_data = {
"record_id": f"visual_design_{i + 1}",
"position_name": position['岗位名称'],
"img": position.get('简历头像url', '')
}
if level_name in job_levels:
job_levels[level_name].append(job_data)
# 构建最终数据结构
result = {
"code": 200,
"message": "操作成功",
"data": {}
}
for level_name, positions in job_levels.items():
level_key = level_mapping.get(level_name, "ordinary")
result["data"][level_key] = {
"name": level_name,
"list": positions
}
return result
def update_resume_interview_mock(industries, resume_templates):
"""更新resumeInterviewMock.js文件"""
# 创建完整的mock数据结构
mock_data = {
"industries": industries,
"resumeTemplates": resume_templates,
"myResume": {
"name": "张小同",
"studentId": "2024001",
"major": "数字媒体艺术设计",
"education": "大专",
"avatar": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/butler_position_avatar/default_student.jpeg"
}
}
# 读取原文件
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
content = f.read()
# 生成新的数据内容
js_content = f"""// 简历与面试题Mock数据
// 岗位群列表
const industries = {json.dumps(industries, ensure_ascii=False, indent=2)};
// 简历模板数据
const resumeTemplates = {json.dumps(resume_templates, ensure_ascii=False, indent=2)};
// 我的简历数据
const myResume = {json.dumps(mock_data['myResume'], ensure_ascii=False, indent=2)};
// 获取页面数据
export const getMockPageData = () => {{
return {{
industries,
resumeTemplates,
myResume
}};
}};
// 导出各个数据模块
export {{ industries, resumeTemplates, myResume }};
"""
# 写入文件
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
f.write(js_content)
print("✅ 已更新 resumeInterviewMock.js")
def update_joblevel_json(joblevel_data):
"""更新joblevel.json文件"""
with open('src/data/joblevel.json', 'w', encoding='utf-8') as f:
json.dump(joblevel_data, f, ensure_ascii=False, indent=4)
print("✅ 已更新 joblevel.json")
def main():
print("🚀 开始更新视觉设计产业数据...")
# 1. 加载视觉设计数据
print("📖 加载视觉设计岗位数据...")
visual_data = load_visual_design_data()
print(f" 共加载 {len(visual_data)} 个岗位")
# 2. 创建岗位群分组
print("📝 创建岗位群分组...")
position_groups = create_position_groups(visual_data)
print(f" 共分为 {len(position_groups)} 个岗位群")
for group_name, positions in position_groups.items():
print(f" - {group_name}: {len(positions)} 个岗位")
# 3. 转换为industries格式
print("🔄 转换数据格式...")
industries = convert_to_industries_format(position_groups)
# 4. 创建简历模板数据
resume_templates = create_resume_templates(visual_data)
# 5. 创建joblevel数据
joblevel_data = create_joblevel_data(visual_data)
# 6. 更新文件
print("💾 更新文件...")
update_resume_interview_mock(industries, resume_templates)
update_joblevel_json(joblevel_data)
print("🎉 数据更新完成!")
print("\n📊 更新统计:")
print(f" - 产业数量: {len(industries)}")
print(f" - 岗位总数: {sum(len(industry['positions']) for industry in industries)}")
print(f" - 简历模板: {sum(len(templates) for templates in resume_templates.values())}")
if __name__ == "__main__":
main()