def query(cls, rst_id, bankcard_id, limit=DEFAULT_RECORD_LIMIT): query = Session().query(cls) query = query.filter(cls.bankcard_id == bankcard_id)\ .filter(cls.rst_id == rst_id)\ .order_by(cls.created_at.desc()) query = query.limit(limit) return query.all()
def query_by_rst(cls, rst_id, status=None, offset=0, limit=None): query = Session().query(cls) query = query.filter(cls.rst_id == rst_id) if status is not None: query = query.filter(cls.status == status) query = query.order_by(cls.updated_at.desc()).order_by(cls.status.desc()) if offset: query = query.offset(offset) if limit: query = query.limit(limit) return query.all()
def query_by_rst(cls, rst_id, status=None, offset=0, limit=None): query = Session().query(cls) query = query.filter(cls.rst_id == rst_id) if status is not None: query = query.filter(cls.status == status) query = query.order_by(cls.updated_at.desc()).order_by( cls.status.desc()) if offset: query = query.offset(offset) if limit: query = query.limit(limit) return query.all()
def query(cls, city_id=None, offset=None, limit=DEFAULT_QUERY_LIMIT): rb = DBSession().query(cls) if city_id is not None: rb = rb.filter(cls.city_id == city_id) if offset is not None: rb = rb.offset(offset) if limit is not None: rb = rb.limit(min(limit, MAX_QUERY_LIMIT)) return rb.all()
def query_by_status(cls, rst_ids=None, status=None, type_code=None, offset=0, limit=None,): query = Session().query(cls) if rst_ids is not None: query = query.filter(cls.rst_id.in_(rst_ids)) if status is not None: query = query.filter(cls.status == status) if type_code is not None: query = query.filter(cls.type_code == type_code) query = query.order_by(cls.created_at.desc(), cls.rst_id) if offset: query = query.offset(offset) if limit: query = query.limit(limit) return query.all()
def get_by_uid(user_id, status=None, offset=None, limit=None): q = DBSession().query(RestaurantRecruitment).\ filter(RestaurantRecruitment.restaurant_id > 0) if status is not None: q = q.filter(RestaurantRecruitment.status == status) if offset is not None: q = q.offset(offset) if limit is not None: q = q.limit(min(limit, MAX_QUERY_LIST_SIZE)) # if super admin if current_user.is_super_admin(): return q with thrift_client('ers') as ers: user_struct = ers.get_direct_struct(user_id) # if city.admin if user_struct.city_ids: return q.filter( RestaurantRecruitment.city_id.in_(user_struct.city_ids)).all() region_ids = [] # if region_group.admin if user_struct.region_group_ids: with thrift_client('ers') as ers: regions = ers.get_regions_by_region_group_ids( user_struct.region_group_ids) region_ids = [region.id for region in regions] # if region.admin if user_struct.region_ids: region_ids.extend(user_struct.region_ids) region_ids = list(set(region_ids)) with thrift_client('ers') as ers: restaurant_ids = ers.mget_restaurant_in_region(region_ids, True) return q.filter(RestaurantRecruitment.restaurant_id.in_(restaurant_ids))
def get_by_uid(user_id, status=None, offset=None, limit=None): q = DBSession().query(RestaurantRecruitment).\ filter(RestaurantRecruitment.restaurant_id > 0) if status is not None: q = q.filter(RestaurantRecruitment.status == status) if offset is not None: q = q.offset(offset) if limit is not None: q = q.limit(min(limit, MAX_QUERY_LIST_SIZE)) # if super admin if current_user.is_super_admin(): return q with thrift_client('ers') as ers: user_struct = ers.get_direct_struct(user_id) # if city.admin if user_struct.city_ids: return q.filter(RestaurantRecruitment.city_id.in_( user_struct.city_ids)).all() region_ids = [] # if region_group.admin if user_struct.region_group_ids: with thrift_client('ers') as ers: regions = ers.get_regions_by_region_group_ids( user_struct.region_group_ids) region_ids = [region.id for region in regions] # if region.admin if user_struct.region_ids: region_ids.extend(user_struct.region_ids) region_ids = list(set(region_ids)) with thrift_client('ers') as ers: restaurant_ids = ers.mget_restaurant_in_region(region_ids, True) return q.filter(RestaurantRecruitment.restaurant_id.in_(restaurant_ids))
def query_by_status( cls, rst_ids=None, status=None, type_code=None, offset=0, limit=None, ): query = Session().query(cls) if rst_ids is not None: query = query.filter(cls.rst_id.in_(rst_ids)) if status is not None: query = query.filter(cls.status == status) if type_code is not None: query = query.filter(cls.type_code == type_code) query = query.order_by(cls.created_at.desc(), cls.rst_id) if offset: query = query.offset(offset) if limit: query = query.limit(limit) return query.all()