From ccd1d7a64985d23c6eb6d521463b360222dd6bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BC=9F?= <250213850@qq.com> Date: Mon, 25 Jul 2022 14:49:05 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/interview.py | 74 ++++++++++++++++++++++++++----- crud/crud_dashboard.py | 3 +- liwei_接口文档.md | 5 ++- schemas/email_record.py | 2 + schemas/interview_plan.py | 3 ++ 5 files changed, 74 insertions(+), 13 deletions(-) diff --git a/api/api_v1/endpoints/interview.py b/api/api_v1/endpoints/interview.py index c9ce392..76ac99f 100644 --- a/api/api_v1/endpoints/interview.py +++ b/api/api_v1/endpoints/interview.py @@ -373,10 +373,13 @@ async def event_edit( ckdb: CKDrive = Depends(get_ck_db) ) -> 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""" - 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}' + select * from HR.resumes WHERE uid = '{data_in.uid}' """ df = await ckdb.query_dataframe(sql) data = {} @@ -446,9 +449,12 @@ async def event_edit( # 保存发送邮件的记录 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)) + times=now_time,name=data_in.name,state=1)) return schemas.Msg(code=200, msg='邮件发送成功', data='') 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='') @@ -558,6 +564,7 @@ async def event_edit( data_dict = {} data_dict['name'] = i.get('name') data_dict['email'] = i.get('email') + data_dict['rank'] = i.get('rank') # 用于区分是面试官还是hr data.append(data_dict) return schemas.Msg(code=200, msg='ok', data=data) @@ -585,7 +592,7 @@ async def create( except pymongo.errors.DuplicateKeyError: 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") @@ -599,7 +606,7 @@ async def delete( del_dashboard = await crud.dashboard.delete(db, {'_id': {'$in': data_in.ids}}) if del_dashboard.deleted_count == 0: 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") @@ -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}) for item in reports_detail: 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") @@ -625,7 +632,7 @@ async def edit( ): """编辑看板名""" 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") @@ -641,7 +648,7 @@ async def event_edit( """ await ckdb.execute(sql) 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) # 存份面试数据到mongodb @@ -655,6 +662,12 @@ async def event_edit( job_id=df['job_id'][0], # 我们自己招聘的职位id 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='') @@ -663,7 +676,7 @@ async def edit( data_in: schemas.Stage, ckdb: CKDrive = Depends(get_ck_db), db: AsyncIOMotorDatabase = Depends(get_database) -): +) -> schemas.Msg: """更改简历阶段""" if data_in.stage == 1: # 初筛 sql = f""" @@ -674,4 +687,43 @@ async def edit( ALTER table HR.resumes update interview_stage = {data_in.stage} WHERE uid = '{data_in.uid}' """ 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='') diff --git a/crud/crud_dashboard.py b/crud/crud_dashboard.py index 432684b..421b7d8 100644 --- a/crud/crud_dashboard.py +++ b/crud/crud_dashboard.py @@ -22,6 +22,7 @@ class CRUDDashboard(CRUDBase): await db[self.coll_name].create_index( [('project_id', pymongo.DESCENDING), ('name', pymongo.DESCENDING), ('user_id', pymongo.DESCENDING)], unique=True) - + async def find_report(self, db: AsyncIOMotorDatabase,user_id): + await self.find(db, {'user_id': user_id}, {}) dashboard = CRUDDashboard('dashboard') diff --git a/liwei_接口文档.md b/liwei_接口文档.md index acbe165..40ae005 100644 --- a/liwei_接口文档.md +++ b/liwei_接口文档.md @@ -89,6 +89,7 @@ api:/api/v1/itr/send_str_mail 请求方式:post 参数: user_id: str # 接收者的唯一id + name: str # 接收者的名字 email: str # 接收者的邮箱 email_str: str # 需要发送的文本内容 @@ -190,9 +191,11 @@ api:/api/v1/itr/edit api:/api/v1/itr/notarize 请求方式:post 参数: - uid: str # 面试者简历在CK中的唯一标识 + uid: str # 面试者简历在CK中的唯一标识 hr_name: str hr_id: str + hr_phone: str + hr_email:str interview_name: str interview_id: str diff --git a/schemas/email_record.py b/schemas/email_record.py index a26fac7..5f6bb58 100644 --- a/schemas/email_record.py +++ b/schemas/email_record.py @@ -3,8 +3,10 @@ from pydantic import BaseModel class email_record(BaseModel): user_id: str # 求职者的唯一id + name: str # 求职者名字 text: str # 邮件的文本内容 times: str # 发送邮件的时间 + state: int # 邮件是否发送成功 class get_email_record(BaseModel): diff --git a/schemas/interview_plan.py b/schemas/interview_plan.py index 7be34c5..0237410 100644 --- a/schemas/interview_plan.py +++ b/schemas/interview_plan.py @@ -50,6 +50,7 @@ class Email_str(BaseModel): class send_str_mail(BaseModel): user_id: str # 接收者的唯一id + name: str # 接收者的名字 email: str # 接收者的邮箱 email_str: str # 需要发送的文本内容 @@ -69,5 +70,7 @@ class Notarize(BaseModel): uid: str # 面试者简历在CK中的唯一标识 hr_name: str hr_id: str + hr_phone: str + hr_email: str interview_name: str interview_id: str