This commit is contained in:
李伟 2022-07-25 14:49:05 +08:00
parent cf9408449b
commit ccd1d7a649
5 changed files with 74 additions and 13 deletions

View File

@ -373,10 +373,13 @@ async def event_edit(
ckdb: CKDrive = Depends(get_ck_db) ckdb: CKDrive = Depends(get_ck_db)
) -> schemas.Msg: ) -> schemas.Msg:
"""获取标准版简历""" """获取标准版简历"""
# sql = f"""
# select name,phone,job_name,work_exp,owner_name,education,work_undergo,school,specialty,
# graduate_time,mail,account,id_card,gender,nation,age,at_school,specialty_do,hope_money,resume_affix_id,
# review,work_list,project_undergo,upgrade,come_time,now_money,work_in_time from HR.resumes WHERE uid = '{data_in.uid}'
# """
sql = f""" sql = f"""
select name,phone,job_name,work_exp,owner_name,education,work_undergo,school,specialty, select * from HR.resumes WHERE uid = '{data_in.uid}'
graduate_time,mail,account,id_card,gender,nation,age,at_school,specialty_do,hope_money,resume_affix_id,
review,work_list,project_undergo,upgrade,come_time,now_money,work_in_time from HR.resumes WHERE uid = '{data_in.uid}'
""" """
df = await ckdb.query_dataframe(sql) df = await ckdb.query_dataframe(sql)
data = {} data = {}
@ -446,9 +449,12 @@ async def event_edit(
# 保存发送邮件的记录 # 保存发送邮件的记录
now_time = str(datetime.now()).split('.')[0] now_time = str(datetime.now()).split('.')[0]
await crud.email_record.create(db, schemas.email_record(user_id=data_in.user_id, text=data_in.email_str, await crud.email_record.create(db, schemas.email_record(user_id=data_in.user_id, text=data_in.email_str,
times=now_time)) times=now_time,name=data_in.name,state=1))
return schemas.Msg(code=200, msg='邮件发送成功', data='') return schemas.Msg(code=200, msg='邮件发送成功', data='')
except Exception: except Exception:
now_time = str(datetime.now()).split('.')[0]
await crud.email_record.create(db, schemas.email_record(user_id=data_in.user_id, text=data_in.email_str,
times=now_time,name=data_in.name,state=0))
return schemas.Msg(code=200, msg='邮件发送失败', data='') return schemas.Msg(code=200, msg='邮件发送失败', data='')
@ -558,6 +564,7 @@ async def event_edit(
data_dict = {} data_dict = {}
data_dict['name'] = i.get('name') data_dict['name'] = i.get('name')
data_dict['email'] = i.get('email') data_dict['email'] = i.get('email')
data_dict['rank'] = i.get('rank') # 用于区分是面试官还是hr
data.append(data_dict) data.append(data_dict)
return schemas.Msg(code=200, msg='ok', data=data) return schemas.Msg(code=200, msg='ok', data=data)
@ -585,7 +592,7 @@ async def create(
except pymongo.errors.DuplicateKeyError: except pymongo.errors.DuplicateKeyError:
return schemas.Msg(code=-1, msg='看板已存在', data='看板已存在') return schemas.Msg(code=-1, msg='看板已存在', data='看板已存在')
return schemas.Msg(code=0, msg='创建成功', data='') return schemas.Msg(code=200, msg='ok', data='创建成功')
@router.post("/delete") @router.post("/delete")
@ -599,7 +606,7 @@ async def delete(
del_dashboard = await crud.dashboard.delete(db, {'_id': {'$in': data_in.ids}}) del_dashboard = await crud.dashboard.delete(db, {'_id': {'$in': data_in.ids}})
if del_dashboard.deleted_count == 0: if del_dashboard.deleted_count == 0:
return schemas.Msg(code=-1, msg='error', data='删除失败') return schemas.Msg(code=-1, msg='error', data='删除失败')
return schemas.Msg(code=0, msg='ok', data='删除成功') return schemas.Msg(code=200, msg='ok', data='删除成功')
@router.post("/get_dashboard") @router.post("/get_dashboard")
@ -614,7 +621,7 @@ async def dashboards(request: Request,
reports_detail = await crud.report.find_many(db, {'_id': {'$in': list(reports.keys())}}, {'query.cachedata': False}) reports_detail = await crud.report.find_many(db, {'_id': {'$in': list(reports.keys())}}, {'query.cachedata': False})
for item in reports_detail: for item in reports_detail:
reports[item['_id']].update(item) reports[item['_id']].update(item)
return schemas.Msg(code=0, msg='ok', data=reports) return schemas.Msg(code=200, msg='ok', data='')
@router.post("/edit") @router.post("/edit")
@ -625,7 +632,7 @@ async def edit(
): ):
"""编辑看板名""" """编辑看板名"""
await crud.dashboard.update_one(db, {'_id': data_in.dashboard_id}, {'$set': {'name': data_in.new_name}}) await crud.dashboard.update_one(db, {'_id': data_in.dashboard_id}, {'$set': {'name': data_in.new_name}})
return schemas.Msg(code=0, msg='ok', data='ok') return schemas.Msg(code=200, msg='ok', data='')
@router.post("/notarize") @router.post("/notarize")
@ -641,7 +648,7 @@ async def event_edit(
""" """
await ckdb.execute(sql) await ckdb.execute(sql)
find_sql = f""" find_sql = f"""
select uid,name,interview_name,hr_name,star_time,interview_sign,job_id,job_names from HR.resumes where uid = '{data_in.uid}' select uid,name,interview_name,hr_name,star_time,interview_sign,job_id,job_names,mail from HR.resumes where uid = '{data_in.uid}'
""" """
df = await ckdb.query_dataframe(find_sql) df = await ckdb.query_dataframe(find_sql)
# 存份面试数据到mongodb # 存份面试数据到mongodb
@ -655,6 +662,12 @@ async def event_edit(
job_id=df['job_id'][0], # 我们自己招聘的职位id job_id=df['job_id'][0], # 我们自己招聘的职位id
job_names=df['job_names'][0] # 我们自己招聘的职位名 job_names=df['job_names'][0] # 我们自己招聘的职位名
)) ))
if df['mail'][0] != '':
# 发送邮件给面试者通知面试
msg=f"""{df['name'][0]},您好\n\n感谢关注乐谷在线科技有限公司!请于{df['star_time'][0]}到公司参见面试。\n联系人:{data_in.hr_name}\n联系电话:{data_in.hr_phone}\n联系邮箱:{
data_in.hr_email}\n\n如有问题请用以上联系方式及时与我们沟通谢谢\n系统邮件请勿回复
"""
send_str_mail(msg, df['mail'][0])
return schemas.Msg(code=200, msg='ok', data='') return schemas.Msg(code=200, msg='ok', data='')
@ -663,7 +676,7 @@ async def edit(
data_in: schemas.Stage, data_in: schemas.Stage,
ckdb: CKDrive = Depends(get_ck_db), ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database) db: AsyncIOMotorDatabase = Depends(get_database)
): ) -> schemas.Msg:
"""更改简历阶段""" """更改简历阶段"""
if data_in.stage == 1: # 初筛 if data_in.stage == 1: # 初筛
sql = f""" sql = f"""
@ -674,4 +687,43 @@ async def edit(
ALTER table HR.resumes update interview_stage = {data_in.stage} WHERE uid = '{data_in.uid}' ALTER table HR.resumes update interview_stage = {data_in.stage} WHERE uid = '{data_in.uid}'
""" """
await ckdb.execute(sql) await ckdb.execute(sql)
return schemas.Msg(code=0, msg='ok', data='ok') return schemas.Msg(code=200, msg='ok', data='')
@router.post("/alter")
async def edit(
data_in: schemas.Stage,
ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database)
) -> schemas.Msg:
"""获得已添加和未添加的报表"""
user_id = ''
# 获取自己的报表
res = await crud.dashboard.find_report(db, user_id=user_id)
# 获取所有的报表
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/alter")
async def edit(
data_in: schemas.Stage,
ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database)
) -> schemas.Msg:
"""添加报表"""
user_id = ''
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/alter")
async def edit(
data_in: schemas.ReportDB,
ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database)
) -> schemas.Msg:
"""新增原始报表"""
user_id = ''
await crud.report.create(db, data_in, user_id=user_id)
return schemas.Msg(code=200, msg='ok', data='')

View File

@ -22,6 +22,7 @@ class CRUDDashboard(CRUDBase):
await db[self.coll_name].create_index( await db[self.coll_name].create_index(
[('project_id', pymongo.DESCENDING), ('name', pymongo.DESCENDING), ('user_id', pymongo.DESCENDING)], [('project_id', pymongo.DESCENDING), ('name', pymongo.DESCENDING), ('user_id', pymongo.DESCENDING)],
unique=True) unique=True)
async def find_report(self, db: AsyncIOMotorDatabase,user_id):
await self.find(db, {'user_id': user_id}, {})
dashboard = CRUDDashboard('dashboard') dashboard = CRUDDashboard('dashboard')

View File

@ -89,6 +89,7 @@ api:/api/v1/itr/send_str_mail
请求方式post 请求方式post
参数: 参数:
user_id: str # 接收者的唯一id user_id: str # 接收者的唯一id
name: str # 接收者的名字
email: str # 接收者的邮箱 email: str # 接收者的邮箱
email_str: str # 需要发送的文本内容 email_str: str # 需要发送的文本内容
@ -190,9 +191,11 @@ api:/api/v1/itr/edit
api:/api/v1/itr/notarize api:/api/v1/itr/notarize
请求方式post 请求方式post
参数: 参数:
uid: str # 面试者简历在CK中的唯一标识 uid: str # 面试者简历在CK中的唯一标识
hr_name: str hr_name: str
hr_id: str hr_id: str
hr_phone: str
hr_email:str
interview_name: str interview_name: str
interview_id: str interview_id: str

View File

@ -3,8 +3,10 @@ from pydantic import BaseModel
class email_record(BaseModel): class email_record(BaseModel):
user_id: str # 求职者的唯一id user_id: str # 求职者的唯一id
name: str # 求职者名字
text: str # 邮件的文本内容 text: str # 邮件的文本内容
times: str # 发送邮件的时间 times: str # 发送邮件的时间
state: int # 邮件是否发送成功
class get_email_record(BaseModel): class get_email_record(BaseModel):

View File

@ -50,6 +50,7 @@ class Email_str(BaseModel):
class send_str_mail(BaseModel): class send_str_mail(BaseModel):
user_id: str # 接收者的唯一id user_id: str # 接收者的唯一id
name: str # 接收者的名字
email: str # 接收者的邮箱 email: str # 接收者的邮箱
email_str: str # 需要发送的文本内容 email_str: str # 需要发送的文本内容
@ -69,5 +70,7 @@ class Notarize(BaseModel):
uid: str # 面试者简历在CK中的唯一标识 uid: str # 面试者简历在CK中的唯一标识
hr_name: str hr_name: str
hr_id: str hr_id: str
hr_phone: str
hr_email: str
interview_name: str interview_name: str
interview_id: str interview_id: str