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')