prs_server/crud/crud_jobs.py
2022-10-27 10:35:13 +08:00

73 lines
2.9 KiB
Python

import re
from motor.motor_asyncio import AsyncIOMotorDatabase
import schemas
from crud.base import CRUDBase
__all__ = 'jobs',
class CRUDJobs(CRUDBase):
# 获取所有对应职位字段的数据
async def all_field(self, db: AsyncIOMotorDatabase):
return await self.find_many(db, {}, {'_id': 0})
# 获取所有对应职位指定字段的数据
async def all_some_field(self, db: AsyncIOMotorDatabase):
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:
return await self.find_many(db, {}, {'_id': 0})
else:
where = {}
data_dict = data_in.dict()
for k, v in data_dict.items():
if v != None and v != '' and v != []:
if not isinstance(v, list):
if k != 'job_name':
where[k] = v
else:
where[k] = re.compile(v)
else:
for i in v:
for kk, vv in i.items():
where[k + '.' + kk] = vv
return await self.find_many(db, where, {'_id': 0})
# 修改职位的数据
async def update_job(self, db: AsyncIOMotorDatabase, data_in: schemas.Jobs):
update = {}
data_dict = data_in.dict()
for k, v in data_dict.items():
if v != None and k != 'job_id':
update[k] = v
await self.update_one(db, {'job_id': data_in.job_id}, {'$set': update})
# 插入一条新的职位数据
async def insert_job(self, db: AsyncIOMotorDatabase, data_in: schemas.Ins_Job):
await self.insert_one(db, data_in.dict())
# 获取对应jobid的信息
async def find_job(self, db: AsyncIOMotorDatabase, job_id):
return await self.find_one(db, {'job_id': job_id}, {'_id': 0})
# 获取对应job_id的部门和名称
async def find_job_name(self, db: AsyncIOMotorDatabase, job_id):
return await self.find_one(db, {'job_id': job_id}, {'_id': 0, 'job_name': 1, 'job_sector': 1})
# 获取对应job_id的名字,以及部门, 招聘数量
async def find_job_some(self, db: AsyncIOMotorDatabase, job_ids):
return await self.find_many(db, {'job_id': {"$in": job_ids}},
{'_id': 0, 'job_name': 1, 'job_sector': 1, 'job_num': 1, 'job_id': 1,
'principal': 1})
jobs = CRUDJobs('jobs')