From 125f0be03f69deec7e3545201caee0ad88c1169a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BC=9F?= <250213850@qq.com> Date: Tue, 19 Jul 2022 15:09:57 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=8E=B7=E5=8F=96=E9=92=89=E9=92=89=E7=94=A8?= =?UTF-8?q?=E6=88=B7id=202.=E5=82=AC=E4=BF=83=E9=9D=A2=E8=AF=95=E5=AE=98?= =?UTF-8?q?=E5=8F=8D=E9=A6=88=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/interview.py | 29 +++++++++++++++++++++ liwei_接口文档.md | 30 +++++++++++++++++++++- schemas/interview_plan.py | 4 +++ utils/dingding.py | 42 ++++++++++++++++++++++++++++--- 4 files changed, 101 insertions(+), 4 deletions(-) diff --git a/api/api_v1/endpoints/interview.py b/api/api_v1/endpoints/interview.py index 9af0568..7008f91 100644 --- a/api/api_v1/endpoints/interview.py +++ b/api/api_v1/endpoints/interview.py @@ -4,6 +4,8 @@ import re import pandas as pd from fastapi import APIRouter, Depends, Request, File, UploadFile from motor.motor_asyncio import AsyncIOMotorDatabase + +from utils.dingding import get_redis_alluid, send_dates from utils.jianli import get_resume import crud, schemas from datetime import datetime @@ -464,3 +466,30 @@ async def event_edit( # 对时间进行排序 data = sorted(data, key=operator.itemgetter('times')) return schemas.Msg(code=200, msg='ok', data=data) + + +@router.get("/get_dding_user") +async def event_edit( + request: Request, +) -> schemas.Msg: + """获取钉钉的用户id""" + data = get_redis_alluid() + return schemas.Msg(code=200, msg='ok', data=data) + + +@router.post("/teacher_state") +async def event_edit( + request: Request, + data_in: schemas.user_id, + db: AsyncIOMotorDatabase = Depends(get_database) +) -> schemas.Msg: + """催促面试官反馈功能""" + # 同步钉钉发消息给面试官 + try: + now_time = str(datetime.now()).split('.')[0] + content=f"【催促反馈】\n请面试官尽快给{data_in.name}做面试反馈\n提醒时间:{now_time}" + send_dates(content,data_in.user_id) + return schemas.Msg(code=200, msg='发送成功', data='') + except Exception: + return schemas.Msg(code=-9, msg='发送失败', data='') + diff --git a/liwei_接口文档.md b/liwei_接口文档.md index 9054d49..c130c45 100644 --- a/liwei_接口文档.md +++ b/liwei_接口文档.md @@ -96,4 +96,32 @@ api:/api/v1/itr/send_str_mail api:/api/v1/itr/email_record 请求方式:post 参数: - user_id: str # 求职者的唯一id \ No newline at end of file + user_id: str # 求职者的唯一id + +#同步插入操作记录 +api:/api/v1/itr/operate_log +请求方式:post +参数: + user_id: str # 求职者的唯一id + who: str # 谁操作的 + why: str # 为什么操作 + content: str # 操作的内容 + +#获取操作记录 +api:/api/v1/itr/get_operate_log +请求方式:post +参数: + user_id: str # 求职者的唯一id + + +#获取钉钉的用户id +api:/api/v1/itr/get_dding_user +请求方式:get + + +#催促面试官反馈功能 +api:/api/v1/itr/teacher_state +请求方式:post +参数: + user_id: List[str] # 钉钉接收者的唯一id + name: str # 求职者姓名 \ No newline at end of file diff --git a/schemas/interview_plan.py b/schemas/interview_plan.py index eafdb9d..d42260f 100644 --- a/schemas/interview_plan.py +++ b/schemas/interview_plan.py @@ -52,3 +52,7 @@ class send_str_mail(BaseModel): email: str # 接收者的邮箱 email_str: str # 需要发送的文本内容 + +class user_id(BaseModel): + user_id: List[str] # 钉钉接收者的唯一id + name: str # 求职者姓名 diff --git a/utils/dingding.py b/utils/dingding.py index 8c640ca..471b51e 100644 --- a/utils/dingding.py +++ b/utils/dingding.py @@ -1,9 +1,16 @@ import json + +import redis import requests -from db.redisdb import get_redis_pool - -redisdb = get_redis_pool() +from core.config import Settings +Settings=Settings() +host=Settings.REDIS_CONF.get('host') +port=Settings.REDIS_CONF.get('port') +db=Settings.REDIS_CONF.get('db') +password=Settings.REDIS_CONF.get('password') +#redisdb = redis.Redis(host=host, port=port, db=db,password=password) +redisdb = redis.Redis(host=host, port=port, db=db) def get_token(): """ @@ -175,3 +182,32 @@ def get_redis_alluid(): user=redisuid.decode() return json.loads(user) +def send_dates(content,userid_list): + """ + 发送消息至钉钉的通用模板 + :param content: 需要发送的内容 + :param userid_list: 要发送的人的uid,列表 + :return: + """ + userid_list = ','.join(userid_list) + url = "https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2" + query = { + 'access_token': get_redistoken() + } + data = { + 'agent_id': 792756727, + "to_all_user": "false", + 'userid_list': userid_list, + "msg": { + "msgtype": "text", + "text": { + "content": content + } + } + } + json_data = json.dumps(data) + # 发送消息到钉钉 + requests.post(url=url, params=query, data=json_data) + +if __name__ == '__main__': + pass \ No newline at end of file