1.人才库筛选项
This commit is contained in:
parent
6cac2ddf98
commit
38b012beed
@ -2014,11 +2014,11 @@ async def login(
|
||||
'nickname': user.nickname, # 显示名
|
||||
'token': security.create_access_token(
|
||||
expires_delta=access_token_expires, user_id=user.user_id, email=user.email,
|
||||
tel=user.tel, name=user.name, rank=user.rank, unionid=user.unionid),
|
||||
tel=user.tel, name=user.name, rank=user.rank, unionid=user.unionid, _id=str(user.id)),
|
||||
"token_type": "bearer"},
|
||||
'access_token': security.create_access_token(
|
||||
expires_delta=access_token_expires, user_id=user.user_id, email=user.email,
|
||||
tel=user.tel, name=user.name, rank=user.rank, unionid=user.unionid
|
||||
tel=user.tel, name=user.name, rank=user.rank, unionid=user.unionid, _id=str(user.id)
|
||||
),
|
||||
"token_type": "bearer",
|
||||
'code': 200,
|
||||
@ -2943,3 +2943,78 @@ async def talent_pool_nu(
|
||||
return schemas.Msg(code=-9, msg='无数据', data='')
|
||||
res = data['nu'][0]
|
||||
return schemas.Msg(code=200, msg='ok', data=res)
|
||||
|
||||
|
||||
@router.get("/option")
|
||||
async def option(
|
||||
request: Request,
|
||||
ckdb: CKDrive = Depends(get_ck_db),
|
||||
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||
) -> schemas.Msg:
|
||||
"""获取人才库筛选项"""
|
||||
res = await crud.talentpool_filtrate.where_filtrate(db, ['default', current_user.id])
|
||||
if len(res) > 1: # 自定义筛选项
|
||||
for i in res:
|
||||
if i['user_id'] != 'default':
|
||||
data = i['where']
|
||||
break
|
||||
else: # 默认筛选项
|
||||
data = res[0]['where']
|
||||
return schemas.Msg(code=200, msg='ok', data=data)
|
||||
|
||||
|
||||
@router.post("/up_option")
|
||||
async def up_option(
|
||||
request: Request,
|
||||
data_in: schemas.Where,
|
||||
ckdb: CKDrive = Depends(get_ck_db),
|
||||
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||
) -> schemas.Msg:
|
||||
"""修改/新增人才库筛选项"""
|
||||
res = await crud.talentpool_filtrate.where_filtrate(db, ['default', current_user.id])
|
||||
if len(res) > 1: # 修改自定义筛选项
|
||||
for i in res:
|
||||
if i['user_id'] != 'default':
|
||||
await crud.talentpool_filtrate.update_filtrate(db, current_user.id, data_in.dict())
|
||||
break
|
||||
else: # 新增自定义筛选项
|
||||
await crud.talentpool_filtrate.ins_filtrate(db, schemas.Filtrate(**data_in.dict(), user_id=current_user.id))
|
||||
return schemas.Msg(code=200, msg='ok', data='')
|
||||
|
||||
|
||||
@router.post("/option_data")
|
||||
async def option_data(
|
||||
request: Request,
|
||||
data_in: schemas.Where_list,
|
||||
ckdb: CKDrive = Depends(get_ck_db),
|
||||
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||
) -> schemas.Msg:
|
||||
"""获取才库筛选项数据"""
|
||||
data = {}
|
||||
for i in data_in.where:
|
||||
if i == 'job': # 应聘职位
|
||||
res = await crud.jobs.where_field(db)
|
||||
job = {}
|
||||
for i in res:
|
||||
job[i['job_id']] = i['job_name']
|
||||
data['job_id'] = job
|
||||
elif i == 'pass_why': # 归档原因
|
||||
data['pass_why'] = pass_why_dict
|
||||
elif i == 'owner_name': # 渠道
|
||||
data['owner_name'] = owner_name_dict
|
||||
elif i == 'education': # 学历
|
||||
data['education'] = education_dict
|
||||
elif i == 'gender': # 性别
|
||||
data['gender'] = ['男', '女']
|
||||
elif i == 'department': # 职位负责人
|
||||
res1 = await crud.user.get_all_users(db, {'rank': 2})
|
||||
data['department'] = [{i['_id']: i['nickname']} for i in res1]
|
||||
elif i == 'hr_name': # 候选人所有者
|
||||
res2 = await crud.user.get_all_users(db, {})
|
||||
data['hr_name'] = [{i['_id']: i['nickname']} for i in res2]
|
||||
elif i == 'ago': # 归档前的阶段
|
||||
data['ago'] = interview_stage_dict
|
||||
return schemas.Msg(code=200, msg='ok', data=data)
|
||||
|
@ -12,7 +12,7 @@ interview_round_dict = {1: '初试', 2: '复试', 3: '终试'}
|
||||
interview_stage_dict = {1: '初筛', 2: '用人部门复筛', 3: '面试', 4: '沟通offer', 5: '待入职', 6: '放弃入职', 7: '已入职', 8: '转正', 9: '主动离职',
|
||||
10: '被动离职', 11: '淘汰'}
|
||||
# 简历来源
|
||||
owner_name_dict = {1: '前程无忧', 2: '人才库', 3: '智联招聘', 4: 'Boss直聘', 5: '58同城'}
|
||||
owner_name_dict = {1: '前程无忧', 2: '内推', 3: '智联招聘', 4: 'Boss直聘', 5: '58同城'}
|
||||
# 学历
|
||||
education_dict = {1: '大专', 2: '本科', 3: '研究生', 4: '博士', 5: '硕士'}
|
||||
# 推荐状态
|
||||
|
@ -37,3 +37,4 @@ from .crud_section import section
|
||||
from .crud_feedback import feedback
|
||||
from .crud_find_column import api_find_column
|
||||
from .crud_department import department
|
||||
from .crud_talentpool_filtrate import talentpool_filtrate
|
||||
|
@ -17,6 +17,10 @@ class CRUDJobs(CRUDBase):
|
||||
return await self.find_many(db, {}, {'_id': 0, 'job_id': 1, 'job_sector': 1, 'principal': 1, 'job_num': 1,
|
||||
'start_time': 1, 'now_job_num': 1, 'job_name': 1})
|
||||
|
||||
# 获取所有对应职位指定字段的数据
|
||||
async def where_field(self, db: AsyncIOMotorDatabase):
|
||||
return await self.find_many(db, {}, {'_id': 0, 'job_id': 1,'job_name': 1})
|
||||
|
||||
# 获取所有对应条件职位字段的数据
|
||||
async def all_fields(self, db: AsyncIOMotorDatabase, data_in: schemas.Jobs):
|
||||
if data_in == None:
|
||||
|
26
crud/crud_talentpool_filtrate.py
Normal file
26
crud/crud_talentpool_filtrate.py
Normal file
@ -0,0 +1,26 @@
|
||||
from motor.motor_asyncio import AsyncIOMotorDatabase
|
||||
import schemas
|
||||
from crud.base import CRUDBase
|
||||
|
||||
__all__ = 'talentpool_filtrate',
|
||||
|
||||
|
||||
class Talentpool_filtrate(CRUDBase):
|
||||
# 获取所有数据
|
||||
async def all_filtrate(self, db: AsyncIOMotorDatabase):
|
||||
return await self.find_many(db, {})
|
||||
|
||||
# 获取对应条件数据
|
||||
async def where_filtrate(self, db: AsyncIOMotorDatabase, where: list):
|
||||
return await self.find_many(db, {'user_id': {'$in': where}},{'_id':0})
|
||||
|
||||
# 修改数据
|
||||
async def update_filtrate(self, db: AsyncIOMotorDatabase, user_id: str, up: dict):
|
||||
await self.update_one(db, {'user_id': user_id}, {'$set':up})
|
||||
|
||||
# 插入数据
|
||||
async def ins_filtrate(self, db: AsyncIOMotorDatabase, data_in: schemas.Filtrate):
|
||||
await self.insert_one(db, data_in.dict())
|
||||
|
||||
|
||||
talentpool_filtrate = Talentpool_filtrate('talentpool_filtrate')
|
@ -42,3 +42,4 @@ from .basic_data import *
|
||||
from .section import *
|
||||
from .feedback import *
|
||||
from .department import *
|
||||
from .talentpool_filtrate import *
|
||||
|
14
schemas/talentpool_filtrate.py
Normal file
14
schemas/talentpool_filtrate.py
Normal file
@ -0,0 +1,14 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class Filtrate(BaseModel):
|
||||
user_id: str # 账号id
|
||||
where: dict # 筛选项
|
||||
|
||||
|
||||
class Where(BaseModel):
|
||||
where: dict # 筛选项
|
||||
|
||||
|
||||
class Where_list(BaseModel):
|
||||
where: list # 筛选项
|
Loading…
Reference in New Issue
Block a user