Files
xujl 23855ef0e4 开发了多角色登录与鉴权接口:实现了普通用户、企业和管理员的登录分流,并支持Token验证。
开发了权限控制接口:实现了通过数据库分配菜单权限节点,控制接口访问安全。
开发了实名认证中心:实现了个人身份证信息与企业营业执照的提交与审核接口。
开发了任务与协作大厅核心业务:实现了任务的发布、接单、状态流转以及专家邀约接口。
配置了全局环境变量与数据库引擎:集成了 PostgreSQL 数据库、Redis 缓存与 MinIO 对象存储。
2026-04-28 16:32:02 +08:00

121 lines
7.0 KiB
Python
Raw Permalink 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.

"""Seed 10 certified OPC users with online avatar photos."""
from django.core.management.base import BaseCommand
from django.utils import timezone
from users.models import User, Role, UserRole
from opc_cert.models import OpcCertification
USERS_DATA = [
{
"username": "zhanglei", "nickname": "张磊", "email": "zhanglei@opc.cn",
"phone": "13800000001", "bio": "10年全栈开发经验精通 Vue/React/Django曾主导多个百万级用户平台的架构设计与交付。",
"location": "北京", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=zhanglei",
"skills": ["Vue.js", "React", "Django", "全栈开发"], "experience": "前阿里巴巴高级工程师,负责过多个核心业务系统开发。",
},
{
"username": "liuyanmei", "nickname": "刘艳梅", "email": "liuyanmei@opc.cn",
"phone": "13800000002", "bio": "UI/UX 设计师,擅长移动端与 Web 端产品设计,拥有丰富的 B 端/C 端设计经验。",
"location": "上海", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=liuyanmei",
"skills": ["UI设计", "UX设计", "Figma", "Sketch"], "experience": "前腾讯设计中心资深设计师,主导过微信小程序生态设计规范。",
},
{
"username": "wangqiang", "nickname": "王强", "email": "wangqiang@opc.cn",
"phone": "13800000003", "bio": "数据科学家,擅长机器学习模型训练和数据可视化,熟悉 TensorFlow 与 PyTorch 框架。",
"location": "深圳", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=wangqiang",
"skills": ["数据分析", "Python", "机器学习", "TensorFlow"], "experience": "前华为云 AI 团队算法工程师。",
},
{
"username": "chenxiaoling", "nickname": "陈小玲", "email": "chenxiaoling@opc.cn",
"phone": "13800000004", "bio": "微信小程序和 App 开发专家3年独立开发经验已上线 20+ 款小程序。",
"location": "杭州", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=chenxiaoling",
"skills": ["微信小程序", "React Native", "Flutter"], "experience": "独立开发者,专注移动端开发与创新应用。",
},
{
"username": "zhaowei", "nickname": "赵伟", "email": "zhaowei@opc.cn",
"phone": "13800000005", "bio": "DevOps 工程师,精通 Kubernetes、Docker 和 CI/CD 流水线搭建。",
"location": "成都", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=zhaowei",
"skills": ["Docker", "Kubernetes", "CI/CD", "Linux"], "experience": "前字节跳动基础架构部高级 SRE 工程师。",
},
{
"username": "sunmengmeng", "nickname": "孙萌萌", "email": "sunmengmeng@opc.cn",
"phone": "13800000006", "bio": "品牌设计师与视觉创意总监,擅长 VI 体系设计、品牌策略和视觉营销。",
"location": "广州", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=sunmengmeng",
"skills": ["品牌设计", "VI设计", "平面设计", "Logo设计"], "experience": "服务过 50+ 品牌客户,包含多家上市企业。",
},
{
"username": "huangdawei", "nickname": "黄大伟", "email": "huangdawei@opc.cn",
"phone": "13800000007", "bio": "资深爬虫与数据采集工程师,精通反爬策略和大规模数据治理方案。",
"location": "南京", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=huangdawei",
"skills": ["爬虫", "Scrapy", "数据采集", "Python"], "experience": "曾为多家电商和金融企业搭建数据采集平台。",
},
{
"username": "lixuemei", "nickname": "李雪梅", "email": "lixuemei@opc.cn",
"phone": "13800000008", "bio": "内容运营与短视频创作者,抖音/快手/小红书多平台达人孵化经验。",
"location": "武汉", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=lixuemei",
"skills": ["视频剪辑", "短视频运营", "内容创作", "新媒体"], "experience": "MCN 机构签约创作者,累计粉丝 500 万+。",
},
{
"username": "zhoujianhua", "nickname": "周建华", "email": "zhoujianhua@opc.cn",
"phone": "13800000009", "bio": "自动化测试与质量保障专家,精通 Selenium、Playwright 和接口测试方案。",
"location": "西安", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=zhoujianhua",
"skills": ["自动化测试", "Playwright", "Selenium", "性能测试"], "experience": "前网易质量保障团队负责人,推动过全链路测试体系建设。",
},
{
"username": "yangtianyu", "nickname": "杨天宇", "email": "yangtianyu@opc.cn",
"phone": "13800000010", "bio": "AI 应用开发工程师,专注 LLM 集成、RAG 架构和智能对话系统。",
"location": "重庆", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=yangtianyu",
"skills": ["AI", "NLP", "LLM", "Python"], "experience": "前百度智能对话团队核心开发者。",
},
]
class Command(BaseCommand):
help = '创建10个已认证的OPC专家用户'
def handle(self, *args, **options):
# Get or create the OPC_USER role
opc_role, _ = Role.objects.get_or_create(code='OPC_USER', defaults={'name': 'OPC认证专家', 'is_system': True})
created = 0
for data in USERS_DATA:
user, was_created = User.objects.get_or_create(
username=data['username'],
defaults={
'nickname': data['nickname'],
'email': data['email'],
'phone': data['phone'],
'bio': data['bio'],
'location': data['location'],
'avatar_url': data['avatar_url'],
'rating': 4.80,
'completed_tasks': 0,
'is_recommended': True if created < 3 else False,
'recommend_priority': 10 - created if created < 3 else 0,
}
)
if was_created:
user.set_password('opc123456')
user.save()
# Assign OPC_USER role
UserRole.objects.get_or_create(user=user, role=opc_role)
# Create approved certification
OpcCertification.objects.get_or_create(
user=user,
defaults={
'real_name': data['nickname'],
'skills': data['skills'],
'experience': data['experience'],
'status': 'APPROVED',
'reviewed_at': timezone.now(),
}
)
if was_created:
created += 1
self.stdout.write(f' ✓ 创建用户: {data["nickname"]} ({data["username"]})')
else:
self.stdout.write(f' - 已存在: {data["nickname"]} ({data["username"]})')
self.stdout.write(self.style.SUCCESS(f'\n✅ 已创建 {created} 个认证专家用户'))