候选人质量模板接口
This commit is contained in:
parent
f5998c14a5
commit
88173b3988
@ -30,9 +30,174 @@ async def interview_find(
|
||||
await interview.init()
|
||||
res = interview.get_man_mass_form_sql()
|
||||
sql = res['sql']
|
||||
# data = await db.execute(sql)
|
||||
df = await db.query_dataframe(sql)
|
||||
if df.empty:
|
||||
data = await db.execute(sql)
|
||||
school_985 = ['清华大学', '北京大学', '中国人民大学', '北京理工大学', '北京航空航天大学', '中央民族大学', '北京师范大学',
|
||||
'中国农业大学', '天津大学', '南开大学', '复旦大学', '上海交通大学', '同济大学', '华东师范大学', '重庆大学', '四川大学',
|
||||
'电子科技大学', '湖南大学', '国防科技大学', '中南大学', '厦门大学']
|
||||
|
||||
school_211 = ['上海外国语大学', '东华大学', '上海财经大学', '华东理工大学', '上海大学', '天津医科大学', '吉林大学', '东北师范大学',
|
||||
'延边大学', '哈尔滨工业大学', '哈尔滨工程大学', '东北农业大学', '东北林业大学', '南京大学', '东南大学', '苏州大学',
|
||||
'中国矿业大学', '中国药科大学', '河海大学', '南京航空航天大学', '江南大学', '南京农业大学', '南京理工大学', '浙江大学',
|
||||
'中国科技大学', '安徽大学', '合肥工业大学', '福州大学', '南昌大学', '山东大学', '中国海洋大学', '石油大学',
|
||||
'湖南师范大学', '广西大学', '中山大学', '暨南大学', '华南理工大学', '华南师范大学', '广州中医药大学', '武汉大学',
|
||||
'华中科技大学', '中国地质大学', '武汉理工大学', '华中师范大学', '华中农业大学', '中南财经政法大学']
|
||||
# 性别
|
||||
gander = {
|
||||
'男': [],
|
||||
'女': []
|
||||
}
|
||||
# 年龄
|
||||
age = {
|
||||
'20-29': [],
|
||||
'30-39': [],
|
||||
'40-49': [],
|
||||
'50-59': [],
|
||||
'60-100': [],
|
||||
}
|
||||
# 学历
|
||||
education = {
|
||||
'大专': [],
|
||||
'本科': [],
|
||||
'研究生': [],
|
||||
'博士': [],
|
||||
'硕士': []
|
||||
}
|
||||
# 工作经验
|
||||
work_exp = {
|
||||
'0-2': [],
|
||||
'3-6': [],
|
||||
'6-10': [],
|
||||
'10-20': [],
|
||||
'20-40': []
|
||||
}
|
||||
# 所在地
|
||||
account = {
|
||||
}
|
||||
# 毕业院校
|
||||
school = {
|
||||
}
|
||||
# 就职公司
|
||||
work_for = {
|
||||
}
|
||||
# 渠道
|
||||
owner_name = {
|
||||
'前程无忧': [],
|
||||
'人才库': [],
|
||||
'智联招聘': [],
|
||||
'Boss直聘': [],
|
||||
'58同城': []
|
||||
}
|
||||
# 职位
|
||||
job_name = {
|
||||
}
|
||||
# 学校类型
|
||||
school_type = {
|
||||
'985': [],
|
||||
'211': [],
|
||||
'其他': [],
|
||||
}
|
||||
if not data:
|
||||
return schemas.Msg(code=-9, msg='无数据', data=None)
|
||||
|
||||
# return schemas.Msg(code=200, msg='ok', data=data)
|
||||
# 处理数据
|
||||
for interview_data in data.values():
|
||||
i_name = interview_data.get('name', '默认名字')
|
||||
|
||||
i_gander = interview_data.get('gander', '男')
|
||||
if i_gander == '男':
|
||||
gander['男'].append(i_name)
|
||||
else:
|
||||
gander['女'].append(i_name)
|
||||
|
||||
i_age = interview_data.get('age', 20)
|
||||
if i_age <= 29:
|
||||
age['20-29'].append(i_name)
|
||||
elif 30 <= i_age <= 39:
|
||||
age['30-39'].append(i_name)
|
||||
elif 40 <= i_age <= 49:
|
||||
age['40-49'].append(i_name)
|
||||
elif 50 <= i_age <= 59:
|
||||
age['50-59'].append(i_name)
|
||||
else:
|
||||
age['60-100'].append(i_name)
|
||||
|
||||
i_education = interview_data.get('education', 1)
|
||||
if i_education == 1:
|
||||
education['大专'].append(i_name)
|
||||
elif i_education == 2:
|
||||
education['本科'].append(i_name)
|
||||
elif i_education == 3:
|
||||
education['研究生'].append(i_name)
|
||||
elif i_education == 4:
|
||||
education['博士'].append(i_name)
|
||||
else:
|
||||
education['硕士'].append(i_name)
|
||||
|
||||
i_owner_name = interview_data.get('owner_name', 2)
|
||||
if i_owner_name == 1:
|
||||
owner_name['前程无忧'].append(i_name)
|
||||
elif i_owner_name == 2:
|
||||
owner_name['人才库'].append(i_name)
|
||||
elif i_owner_name == 3:
|
||||
owner_name['智联招聘'].append(i_name)
|
||||
elif i_owner_name == 4:
|
||||
owner_name['Boss直聘'].append(i_name)
|
||||
else:
|
||||
owner_name['58同城'].append(i_name)
|
||||
|
||||
i_school = interview_data.get('school', '')
|
||||
if i_school:
|
||||
if i_school in school:
|
||||
school[i_school].append(i_name)
|
||||
else:
|
||||
school[i_school] = [i_name]
|
||||
if i_school in school_985:
|
||||
school_type['985'].append(i_name)
|
||||
school_type['211'].append(i_name)
|
||||
elif i_school in school_211:
|
||||
school_type['211'].append(i_name)
|
||||
else:
|
||||
school_type['其他'].append(i_name)
|
||||
|
||||
i_work_exp = interview_data.get('work_exp', 1)
|
||||
if i_work_exp <= 2:
|
||||
work_exp['0-2'].append(i_name)
|
||||
elif 3 <= i_work_exp < 6:
|
||||
work_exp['3-6'].append(i_name)
|
||||
elif 6 <= i_work_exp < 10:
|
||||
work_exp['6-10'].append(i_name)
|
||||
elif 10 <= i_work_exp < 20:
|
||||
work_exp['10-20'].append(i_name)
|
||||
else:
|
||||
work_exp['20-40'].append(i_name)
|
||||
|
||||
i_job_name = interview_data.get('job_name', '')
|
||||
if i_job_name:
|
||||
if i_job_name in account:
|
||||
job_name[i_job_name].append(i_name)
|
||||
else:
|
||||
job_name[i_job_name] = [i_name]
|
||||
|
||||
i_account = interview_data.get('account', '')
|
||||
if i_account:
|
||||
if i_account in account:
|
||||
account[i_account].append(i_name)
|
||||
else:
|
||||
account[i_account] = [i_name]
|
||||
|
||||
i_work_list = interview_data.get('work_list', '')
|
||||
res_msg = {
|
||||
'gander': gander,
|
||||
'age': age,
|
||||
'education': education,
|
||||
'work_exp': work_exp,
|
||||
'account': account,
|
||||
'school': school,
|
||||
'work_for': work_for,
|
||||
'owner_name': owner_name,
|
||||
'job_name': job_name,
|
||||
'school_type': school_type
|
||||
}
|
||||
|
||||
return schemas.Msg(code=200, msg='ok', data=res_msg)
|
||||
|
||||
|
@ -2,7 +2,7 @@ import crud
|
||||
import schemas
|
||||
from core.config import settings
|
||||
|
||||
# 创建一个超级用户、、
|
||||
# 创建一个超级用户,,
|
||||
from db import connect_to_mongo, get_database
|
||||
import asyncio
|
||||
|
||||
|
@ -390,8 +390,8 @@ class InterviewDo:
|
||||
whereStr = ''
|
||||
findStr = ''
|
||||
# 查询字段
|
||||
self.find_column = ["uid", "age", "gender", "name", "education", "owner_name", "school", "specialty",
|
||||
"work_exp", "job_name", "account"]
|
||||
self.find_column = ["uid", "age", "gender", "name", "education", "owner_name", "school", "work_exp", "job_name",
|
||||
"account", "work_list"]
|
||||
for fstr in self.find_column:
|
||||
findStr += fstr + ', '
|
||||
is_date = 0
|
||||
|
@ -385,7 +385,7 @@ import crud
|
||||
import schemas
|
||||
from core.config import settings
|
||||
|
||||
# 创建一个超级用户、、
|
||||
# 创建一个超级用户,,
|
||||
from db import connect_to_mongo, get_database
|
||||
import asyncio
|
||||
|
||||
|
@ -225,14 +225,14 @@ def send_str_mail(str_msg, my_user):
|
||||
:return: bool
|
||||
"""
|
||||
msg = MIMEText(str_msg, 'plain', 'utf-8')
|
||||
msg['From'] = formataddr(["乐谷游戏人事", Email.my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
|
||||
msg['To'] = formataddr(["FK", my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
|
||||
msg['From'] = formataddr(["乐谷游戏人事", Email.my_sender]) # 括号里的对应发件人邮箱昵称,发件人邮箱账号
|
||||
msg['To'] = formataddr(["FK", my_user]) # 括号里的对应收件人邮箱昵称,收件人邮箱账号
|
||||
msg['Subject'] = Email.subject # 邮件的主题,也可以说是标题
|
||||
|
||||
server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是25
|
||||
server.login(Email.my_sender, Email.my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
|
||||
# server.sendmail(my_sender, [my_user, ], msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
|
||||
server.sendmail(Email.my_sender, [my_user, ], msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
|
||||
server.login(Email.my_sender, Email.my_pass) # 括号中对应的是发件人邮箱账号,邮箱密码
|
||||
# server.sendmail(my_sender, [my_user, ], msg.as_string()) # 括号中对应的是发件人邮箱账号,收件人邮箱账号,发送邮件
|
||||
server.sendmail(Email.my_sender, [my_user, ], msg.as_string()) # 括号中对应的是发件人邮箱账号,收件人邮箱账号,发送邮件
|
||||
server.quit() # 关闭连接
|
||||
|
||||
|
||||
|
96
接口文档/候选人质量模板接口文档.txt
Normal file
96
接口文档/候选人质量模板接口文档.txt
Normal file
@ -0,0 +1,96 @@
|
||||
路由: /api/v1/forms/man_mass_form
|
||||
|
||||
参数:
|
||||
{
|
||||
"data_in": "string",
|
||||
"interview_query": {"hr_name":"吴操"},
|
||||
"find_column": [
|
||||
"string"
|
||||
]
|
||||
}
|
||||
|
||||
返回值:
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "ok",
|
||||
"data": {
|
||||
"gander": { # 性别分析
|
||||
"男": [
|
||||
"陈超峰",
|
||||
"陈亚雄"
|
||||
],
|
||||
"女": []
|
||||
},
|
||||
"age": { # 年龄分析
|
||||
"20-29": [
|
||||
"陈超峰",
|
||||
"陈亚雄"
|
||||
],
|
||||
"30-39": [],
|
||||
"40-49": [],
|
||||
"50-59": [],
|
||||
"60-100": []
|
||||
},
|
||||
"education": { # 学历分析
|
||||
"大专": [],
|
||||
"本科": [
|
||||
"陈超峰",
|
||||
"陈亚雄"
|
||||
],
|
||||
"研究生": [],
|
||||
"博士": [],
|
||||
"硕士": []
|
||||
},
|
||||
"work_exp": { # 工作经验分析
|
||||
"0-2": [
|
||||
"陈超峰"
|
||||
],
|
||||
"3-6": [],
|
||||
"6-10": [
|
||||
"陈亚雄"
|
||||
],
|
||||
"10-20": [],
|
||||
"20-40": []
|
||||
},
|
||||
"account": { # 人才地域分布
|
||||
"湖北黄冈": [
|
||||
"陈超峰"
|
||||
]
|
||||
},
|
||||
"school": { # 毕业院校分析
|
||||
"中南民族大学": [
|
||||
"陈超峰"
|
||||
],
|
||||
"武汉纺织大学": [
|
||||
"陈亚雄"
|
||||
]
|
||||
},
|
||||
"work_for": {}, # 就职公司分析
|
||||
"owner_name": { # 渠道分析
|
||||
"前程无忧": [],
|
||||
"人才库": [
|
||||
"陈超峰",
|
||||
"陈亚雄"
|
||||
],
|
||||
"智联招聘": [],
|
||||
"Boss直聘": [],
|
||||
"58同城": []
|
||||
},
|
||||
"job_name": { # 职位分析
|
||||
"android开发工程师": [
|
||||
"陈超峰"
|
||||
],
|
||||
"Android软件工程师": [
|
||||
"陈亚雄"
|
||||
]
|
||||
},
|
||||
"school_type": { 学校类型
|
||||
"211": [],
|
||||
"985": [],
|
||||
"其他": [
|
||||
"陈超峰",
|
||||
"陈亚雄"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user