From f7910edf8d5d50937b476662b3227a76011a3020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BC=9F?= <250213850@qq.com> Date: Mon, 26 Sep 2022 16:07:34 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=81=8C=E4=BD=8D=E6=A8=A1=E7=B3=8A=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/interview.py | 46 +++++++++++++++++++++++++++---- liwei_接口文档.md | 2 +- schemas/interview_plan.py | 2 +- 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/api/api_v1/endpoints/interview.py b/api/api_v1/endpoints/interview.py index 9f081a5..408cad3 100644 --- a/api/api_v1/endpoints/interview.py +++ b/api/api_v1/endpoints/interview.py @@ -996,15 +996,44 @@ async def find_criterion( async def resume_affix( request: Request, data_in: schemas.Post_uid, + file: UploadFile = File(...), ckdb: CKDrive = Depends(get_ck_db), current_user: schemas.UserDB = Depends(deps.get_current_user) ) -> schemas.Msg: - """保存附件id""" - sql = f""" - ALTER table HR.resumes update resume_affix_id = {data_in.resume_affix_id} WHERE uid = '{data_in.uid}' - """ - await ckdb.execute(sql) - return schemas.Msg(code=200, msg='ok', data='') + """附件上传到华为云""" + path_data = os.getcwd() + '/head' # 当前文件所在的目录 + if not os.path.exists(path_data): + os.makedirs(path_data) + contents = await file.read() + filename = file.filename + try: + with open(path_data + '/' + filename, "wb") as f: + # 将获取的file文件内容,写入到新文件中 + f.write(contents) + f.close() + except: + return schemas.Msg(code=400, msg='上传文件有误', data=None) + try: + # 附件正常上传到华为云 + res = obsClient.putFile('legu-cdn-source', 'hrms/user_icon/' + filename, path_data + '/' + filename) + if res.status < 300: + # 地址 + url = res.body.objectUrl + resData = {'file_url': url, 'filename': 'hrms/user_icon/' + filename} + sql = f""" + ALTER table HR.resumes update resume_affix_id = {url} WHERE uid = '{data_in.uid}' + """ + await ckdb.execute(sql) + return schemas.Msg(code=200, msg='ok', data=resData) + else: + # print('errorCode:', res.errorCode) + # print('errorMessage:', res.errorMessage) + return schemas.Msg(code=400, msg='上传华为云失败', data=None) + except: + import traceback + print(traceback.format_exc()) + return schemas.Msg(code=400, msg='上传华为云失败', data=None) + @router.post("/updata_entry") @@ -2048,6 +2077,7 @@ async def add_interviewee( @router.post("/head_to_hw") async def head_to_hw( request: Request, + data_in: schemas.Post_uid, file: UploadFile = File(...), ckdb: CKDrive = Depends(get_ck_db), current_user: schemas.UserDB = Depends(deps.get_current_user) @@ -2072,6 +2102,10 @@ async def head_to_hw( # 地址 url = res.body.objectUrl resData = {'file_url': url, 'filename': 'hrms/user_icon/' + filename} + # sql = f""" + # ALTER table HR.resumes update head = {url} WHERE uid = '{data_in.uid}' + # """ + # await ckdb.execute(sql) return schemas.Msg(code=200, msg='ok', data=resData) else: # print('errorCode:', res.errorCode) diff --git a/liwei_接口文档.md b/liwei_接口文档.md index 5939b71..6a0aae2 100644 --- a/liwei_接口文档.md +++ b/liwei_接口文档.md @@ -58,7 +58,7 @@ api:/api/v1/itr/find_criterion 参数: uid: str # 面试者简历在CK中的唯一标识 -#保存附件id +#保存附件 api:/api/v1/itr/resume_affix 请求方式:post 参数: diff --git a/schemas/interview_plan.py b/schemas/interview_plan.py index a3b89d3..3518606 100644 --- a/schemas/interview_plan.py +++ b/schemas/interview_plan.py @@ -30,7 +30,7 @@ class Timesinter(BaseModel): class Post_uid(BaseModel): uid: str # 面试者简历在CK中的唯一标识 - resume_affix_id: List[str] # 附件id + class get_uids(BaseModel):