From 105394f387052c48715d465969f94652553224b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BC=9F?= <250213850@qq.com> Date: Fri, 16 Sep 2022 11:35:29 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E9=9D=A2=E8=AF=95=E9=98=B6?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/interview.py | 39 ++++++++++++++++++++----------- utils/dingding.py | 2 +- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/api/api_v1/endpoints/interview.py b/api/api_v1/endpoints/interview.py index 28d6f97..06d43d7 100644 --- a/api/api_v1/endpoints/interview.py +++ b/api/api_v1/endpoints/interview.py @@ -1,4 +1,5 @@ import ast +import itertools import json import operator import os @@ -662,7 +663,7 @@ async def condition( str_s = f"{k} = {v}" strs.append(str_s) else: - if k in ['hr_id', 'interview_id','interview_name','hr_name'] and v != '': + if k in ['hr_id', 'interview_id', 'interview_name', 'hr_name'] and v != '': str_s = f"{k} like '%{v}%'" else: str_s = f"{k} = '{v}'" @@ -1441,7 +1442,8 @@ async def login( 'name': user.name, # 名字 'email': user.email, # 邮箱 'tel': user.tel, # 电话 - 'user_id': user.id, # 钉钉id + 'user_id': user.user_id, # 钉钉id + 'id': user.id, # 账号的唯一标识 'rank': user.rank, # 区分hr和面试官 'token': security.create_access_token( expires_delta=access_token_expires, user_id=user.user_id, email=user.email, @@ -1497,9 +1499,20 @@ async def add_account( """ 创建新账号 """ - user_id = Unionid(data_in.unionid) - user_list = get_alluid_list() - if user_id not in user_list: + # user_id = Unionid(data_in.unionid) + # user_list = get_alluid_list() + # if user_id not in user_list: + # return schemas.Msg(code=-9, msg="不是本公司的员工") + user = get_redis_alluid() + user_lists = [i['user_id'] for i in user] + user_list = list(itertools.chain.from_iterable(user_lists)) + a = 0 + for i in user_list: + if i['name'] == data_in.name: + user_id = i['userid'] + a += 1 + break + if a == 1: return schemas.Msg(code=-9, msg="不是本公司的员工") if is_exists := await crud.user.exists(db, {'user_id': user_id}): return schemas.Msg(code=-9, msg='已创建该账号') @@ -1892,12 +1905,12 @@ async def add_interviewee( """ # 添加面试官和hr并自动进入下一阶段 await ckdb.execute(sql) # 同步发送邮件通知被安排了面试 - find_sql=f"""select job_names,name from HR.resumes where uid = '{data_in.uid}' limit 1""" - df= await ckdb.query_dataframe(find_sql) - send=f"""【面试通知】\n面试岗位:{df['job_names'][0]}\n面试时间:{data_in.star_time}\n面试者:{df['name'][0]}\nHR:{hr_name}\n面试官:{interview_name}""" - hr_user=data_in.hr_user + find_sql = f"""select job_names,name from HR.resumes where uid = '{data_in.uid}' limit 1""" + df = await ckdb.query_dataframe(find_sql) + send = f"""【面试通知】\n面试岗位:{df['job_names'][0]}\n面试时间:{data_in.star_time}\n面试者:{df['name'][0]}\nHR:{hr_name}\n面试官:{interview_name}""" + hr_user = data_in.hr_user hr_user.extend(data_in.user_id) - send_dates(send,hr_user) + send_dates(send, hr_user) return schemas.Msg(code=200, msg='ok', data='') @@ -2009,7 +2022,7 @@ async def interview_stage_nu( len_date = 0 else: len_date = len(df_len) - res_data['now']=len_date + res_data['now'] = len_date # 1:初筛 2:复筛 3:面试 4:沟通offer 5:待入职 6:放弃入职 7:已入职 8:转正 9:主动离职 10:被动离职 11:淘汰 sql = """select interview_stage,count(*) as value from HR.resumes group by interview_stage""" data = await ckdb.execute(sql) @@ -2019,8 +2032,8 @@ async def interview_stage_nu( continue res_data[key] = i['value'] # 待发送offer - off_sql="""select count(*) as value from HR.resumes where offer_state <= 2 and interview_stage = 4""" - res= await ckdb.execute(off_sql) + off_sql = """select count(*) as value from HR.resumes where offer_state <= 2 and interview_stage = 4""" + res = await ckdb.execute(off_sql) res_data['offer'] = res[0]['value'] return schemas.Msg(code=200, msg='ok', data=res_data) diff --git a/utils/dingding.py b/utils/dingding.py index e829e55..e57fa30 100644 --- a/utils/dingding.py +++ b/utils/dingding.py @@ -274,5 +274,5 @@ def get_alluid_list(): if __name__ == '__main__': #a = user_details('16371426094531014') - a=get_all_uid() + a=get_redis_alluid() pprint.pprint(a)