193 lines
4.8 KiB
Python
193 lines
4.8 KiB
Python
import time
|
|
from datetime import datetime
|
|
from typing import List, Union, Dict
|
|
from fastapi.param_functions import Form
|
|
from fastapi.security import OAuth2PasswordRequestForm
|
|
from pydantic import BaseModel
|
|
from typing import Optional
|
|
|
|
from utils import get_uid
|
|
|
|
|
|
class Interview(BaseModel):
|
|
date: dict # 要查询的条件
|
|
pages: int = 1 # 分页的当前页
|
|
time_type: str # 要查询的时间范围类型
|
|
# date包含如下参数,如选择全部的则传空字符串
|
|
# job_name: str # 应聘职位
|
|
# hr_name: str # 面试负责人
|
|
# interview_name: str # 面试官
|
|
# interview_type: int # 面试类型
|
|
# interview_sign: int # 面试签到
|
|
# feedback: int # 面试反馈
|
|
# interview_round: int # 面试轮次
|
|
|
|
|
|
class Timesinter(BaseModel):
|
|
start_time: str # 开始时间
|
|
end_time: str # 结束时间
|
|
|
|
|
|
class Post_uid(BaseModel):
|
|
uid: str # 面试者简历在CK中的唯一标识
|
|
|
|
|
|
class get_uids(BaseModel):
|
|
uid: str # 面试者简历在CK中的唯一标识
|
|
|
|
|
|
class Entry(BaseModel):
|
|
uid: str # 面试者简历在CK中的唯一标识
|
|
interview_stage: int # 修改入职状态
|
|
job_id: str # 招聘职位的id
|
|
|
|
|
|
class Email_str(BaseModel):
|
|
name: str # 求职者名字
|
|
job: str # 应聘的职位
|
|
times: str # 入职时间
|
|
money: str # 薪资
|
|
hr_name: str # hr联系人
|
|
phone: str # hr联系电话
|
|
email: str # hr邮箱
|
|
|
|
|
|
class send_str_mail(BaseModel):
|
|
user_id: str # 接收者的唯一id
|
|
name: str # 接收者的名字
|
|
email: str # 接收者的邮箱
|
|
email_str: str # 需要发送的文本内容
|
|
file: str # 华为云的邮箱附件地址
|
|
|
|
|
|
class user_id(BaseModel):
|
|
user_id: List[str] # 钉钉接收者的唯一id
|
|
name: str # 求职者姓名
|
|
|
|
|
|
class Stage(BaseModel):
|
|
stage: int # 面试阶段
|
|
uid: str # 面试者简历在CK中的唯一标识
|
|
data: Dict # 更新的数据
|
|
|
|
|
|
class Notarize(BaseModel):
|
|
uid: str # 面试者简历在CK中的唯一标识
|
|
hr_name: str
|
|
hr_id: str
|
|
hr_phone: str
|
|
hr_email: str
|
|
interview_name: str
|
|
interview_id: str
|
|
|
|
|
|
class Post_head(BaseModel):
|
|
uid: str # 面试者简历在CK中的唯一标识
|
|
head_id: str # 头像链接
|
|
|
|
|
|
class Up_hint(BaseModel):
|
|
hint_id: List[str] # 要修改已读的数据id
|
|
type: str
|
|
|
|
|
|
class Get_hr(BaseModel):
|
|
hr_name: str
|
|
|
|
|
|
class Login(BaseModel):
|
|
unionid: str # 通过钉钉扫码获取的unionid
|
|
|
|
|
|
class Createuser(BaseModel):
|
|
unionid: str # 通过钉钉扫码获取的unionid
|
|
rank: int # 判断是hr还是面试官
|
|
email: str # 邮箱
|
|
tel: str # 手机号
|
|
name: str # 名字
|
|
|
|
|
|
class Get_userid(BaseModel):
|
|
user_id: str # 钉钉的唯一标识
|
|
type: int # 0为解禁1为禁止
|
|
|
|
|
|
class position(BaseModel):
|
|
job_id: str = str(get_uid()) # 职位的唯一id # 职位id
|
|
job_name: str # 职位名
|
|
|
|
|
|
class Ins_section(BaseModel):
|
|
name: str # 部门名
|
|
position: List[position] # 职位名及职位id
|
|
|
|
|
|
class Filenames(BaseModel):
|
|
filenames: str
|
|
|
|
|
|
class ExtendendOAuth(OAuth2PasswordRequestForm):
|
|
def __init__(self, grant_type: str = Form(None, regex="password"),
|
|
username: str = Form(...),
|
|
password: str = Form(...),
|
|
scope: str = Form(""),
|
|
client_id: Optional[str] = Form(None),
|
|
client_secret: Optional[str] = Form(None),
|
|
unionid: str = Form(None)):
|
|
super().__init__(grant_type, username, password, scope, client_id, client_secret)
|
|
self.unionid = unionid # 通过钉钉扫码获取的unionid
|
|
# unionid :str # 通过钉钉扫码获取的unionid
|
|
|
|
|
|
class send_in(BaseModel):
|
|
uid: str # 求职者uid
|
|
|
|
|
|
class add_inter(BaseModel):
|
|
uid: str # 求职者uid
|
|
user_id: List[str] # 面试官的钉钉id
|
|
star_time: str # 面试开始时间
|
|
end_time: str # 面试结束时间
|
|
hr_user: List[str] # HR的钉钉id
|
|
|
|
|
|
class find_like(BaseModel):
|
|
interview_stage: str # 简历阶段
|
|
date: dict # 查询条件
|
|
|
|
|
|
class nterview(BaseModel):
|
|
date: dict # 要查询的条件
|
|
# date包含如下参数,如选择全部的则传空字符串
|
|
# job_name: str # 应聘职位
|
|
# hr_name: str # 面试负责人
|
|
# interview_name: str # 面试官
|
|
# interview_type: int # 面试类型
|
|
# interview_sign: int # 面试签到
|
|
# feedback: int # 面试反馈
|
|
# interview_round: int # 面试轮次
|
|
|
|
|
|
class interviews(BaseModel):
|
|
date: dict # 要查询的条件
|
|
|
|
|
|
class get_teacher(BaseModel):
|
|
uid: str # 求职者唯一id
|
|
|
|
|
|
class record(BaseModel):
|
|
uid: str # 求职者唯一id
|
|
|
|
|
|
class find(BaseModel):
|
|
date: dict = {} # 查询条件
|
|
pages: int = 1 # 分页的当前页
|
|
|
|
|
|
class send_list(BaseModel):
|
|
send:List[dict]
|
|
|
|
class num(BaseModel):
|
|
data:dict
|
|
types:bool # true 为待筛选 |