1.获取钉钉用户id

2.催促面试官反馈功能
This commit is contained in:
李伟 2022-07-19 15:09:57 +08:00
parent c3694e3b59
commit 125f0be03f
4 changed files with 101 additions and 4 deletions

View File

@ -4,6 +4,8 @@ import re
import pandas as pd import pandas as pd
from fastapi import APIRouter, Depends, Request, File, UploadFile from fastapi import APIRouter, Depends, Request, File, UploadFile
from motor.motor_asyncio import AsyncIOMotorDatabase from motor.motor_asyncio import AsyncIOMotorDatabase
from utils.dingding import get_redis_alluid, send_dates
from utils.jianli import get_resume from utils.jianli import get_resume
import crud, schemas import crud, schemas
from datetime import datetime from datetime import datetime
@ -464,3 +466,30 @@ async def event_edit(
# 对时间进行排序 # 对时间进行排序
data = sorted(data, key=operator.itemgetter('times')) data = sorted(data, key=operator.itemgetter('times'))
return schemas.Msg(code=200, msg='ok', data=data) 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='')

View File

@ -96,4 +96,32 @@ api:/api/v1/itr/send_str_mail
api:/api/v1/itr/email_record api:/api/v1/itr/email_record
请求方式post 请求方式post
参数: 参数:
user_id: str # 求职者的唯一id 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 # 求职者姓名

View File

@ -52,3 +52,7 @@ class send_str_mail(BaseModel):
email: str # 接收者的邮箱 email: str # 接收者的邮箱
email_str: str # 需要发送的文本内容 email_str: str # 需要发送的文本内容
class user_id(BaseModel):
user_id: List[str] # 钉钉接收者的唯一id
name: str # 求职者姓名

View File

@ -1,9 +1,16 @@
import json import json
import redis
import requests 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(): def get_token():
""" """
@ -175,3 +182,32 @@ def get_redis_alluid():
user=redisuid.decode() user=redisuid.decode()
return json.loads(user) 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