diff --git a/api/api_v1/endpoints/interview.py b/api/api_v1/endpoints/interview.py index 010a8fb..5328cd7 100644 --- a/api/api_v1/endpoints/interview.py +++ b/api/api_v1/endpoints/interview.py @@ -2545,6 +2545,7 @@ async def add_interviewee( for us in [name, hr]: for i in us: survey[i['user_id']] = { + "user_id": i['user_id'], "name": i['nickname'], "voice": 0, "thought": 0, @@ -2841,24 +2842,27 @@ async def interview_teacher( @router.post("/up_teacher") async def interview_teacher( request: Request, - data_in: schemas.feedback, + data_in: schemas.Feedback, ckdb: CKDrive = Depends(get_ck_db), db: AsyncIOMotorDatabase = Depends(get_database), current_user: schemas.UserDB = Depends(deps.get_current_user) ) -> schemas.Msg: """ 修改面试反馈 """ - data = await crud.feedback.one_feedback(db, {'uid': data_in.uid}) - for k, v in data['survey'].items(): - if k == list(data_in.survey.keys())[0]: - data['survey'][k] = data_in.survey[k] - data['survey'][k]['type'] = True - - await crud.feedback.up_feedback(db, schemas.Feedback(uid=data_in.uid, survey=data['survey'])) - res = await crud.feedback.one_feedback(db, {'uid': data_in.uid}) - teacher_back = [v['teacher_back'] for v in res['survey'].values()] - types = [v['type'] for v in res['survey'].values()] + if current_user.name == 'root': + return schemas.Msg(code=200, msg='root账号不允许修改', data='') + data = await crud.feedback.all_feedback(db, {'uid': data_in.uid}) + for i in data: + for k, v in i['survey'].items(): # 修改数据 + if k == data_in.survey['user_id']: + i['survey'][k] = data_in.survey + i['survey'][k]['type'] = True + id = i['_id'] + await crud.feedback.up_feedback(db, _id=str(id), survey=i['survey']) + res = await crud.feedback.one_feedback(db, {'relevancy_id': data_in.relevancy_id}) + teacher_back = [v['teacher_back'] for v in res[0]['survey'].values()] + types = [v['type'] for v in res[0]['survey'].values()] if 0 not in teacher_back and False not in types: # 当所有的反馈都处理完后,修改简历状态 - up_sql = f"""ALTER TABLE HR.resumes update teacher_state = 2 WHERE uid = '{data_in.uid}'""" + up_sql = f"""ALTER TABLE HR.resumes update teacher_state = 2,feedback = 1 WHERE uid = '{data_in.uid}'""" await ckdb.execute(up_sql) return schemas.Msg(code=200, msg='ok', data='') @@ -3217,10 +3221,14 @@ async def send_talent_pool( current_user: schemas.UserDB = Depends(deps.get_current_user) ) -> schemas.Msg: """把人才库的人推到人才推荐中,并给每个人发送邮件""" - email=[i['mail'] for i in data_in.send] - str_msg=f"""亲爱的{1}:\n最近工作还顺利吗?好久不见,我是武汉乐谷在线科技有限公司的HR,最近我们正在招聘以下职位,与您匹配值非常高。\n + email = [i['mail'] for i in data_in.send] + str_msg = f"""亲爱的{1}:\n最近工作还顺利吗?好久不见,我是武汉乐谷在线科技有限公司的HR,最近我们正在招聘以下职位,与您匹配值非常高。\n 我们期待您的投递,祝您生活愉快!""" for i in email: if i != '': - send_affix_mail(str_msg,i) + send_affix_mail(str_msg, i) + uid = [i['uid'] for i in data_in.send] + for i in uid: + up_sql = f"""ALTER TABLE HR.resumes update interview_stage = 0 WHERE uid = '{i}'""" + await ckdb.execute(up_sql) return schemas.Msg(code=200, msg='ok', data='') diff --git a/crud/crud_feedback.py b/crud/crud_feedback.py index 5eca7af..03a4d13 100644 --- a/crud/crud_feedback.py +++ b/crud/crud_feedback.py @@ -1,3 +1,4 @@ +from bson import ObjectId from motor.motor_asyncio import AsyncIOMotorDatabase import schemas from crud.base import CRUDBase @@ -9,17 +10,17 @@ from utils import get_uid class CRUDfeedback(CRUDBase): # 获取所有数据 - async def all_xiangmu(self, db: AsyncIOMotorDatabase): - return await self.find_many(db, {}) + async def all_feedback(self, db: AsyncIOMotorDatabase,where): + return await self.find_many(db, where) # 获取对应条件的数据 async def one_feedback(self, db: AsyncIOMotorDatabase,where): return await self.find_many(db, where,{'_id':0}) # 修改数据 - async def up_feedback(self, db: AsyncIOMotorDatabase, data_in: schemas.Feedback): + async def up_feedback(self, db: AsyncIOMotorDatabase, _id,survey): - await self.update_one(db, {'uid': data_in.uid}, {'$set': {'survey': data_in.survey}}) + await self.update_one(db, {'_id': ObjectId(_id)}, {'$set': {'survey':survey}}) # 插入数据 async def ins_feedback(self, db: AsyncIOMotorDatabase, data_in: schemas.Feedback):