Exemple #1
0
def query_trs_query_cfg(city_id=None,
                        offset=DEFALUT_CITY_TRS_CFG_OFFSET,
                        limit=DEFALUT_CITY_TRS_CFG_LIMIT):
    if city_id is not None:
        return get_trs_query_cfg_by_city(city_id)
    q = DBSession().query(CityTransactionQueryConfig)
    q = q.offset(offset).limit(limit)
    return q.all()
Exemple #2
0
def query_trs_query_cfg(city_id=None,
                        offset=DEFALUT_CITY_TRS_CFG_OFFSET,
                        limit=DEFALUT_CITY_TRS_CFG_LIMIT):
    if city_id is not None:
        return get_trs_query_cfg_by_city(city_id)
    q = DBSession().query(CityTransactionQueryConfig)
    q = q.offset(offset).limit(limit)
    return q.all()
Exemple #3
0
 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()
Exemple #4
0
 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()
Exemple #5
0
    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()
Exemple #6
0
    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()
Exemple #7
0
 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()
Exemple #8
0
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))
Exemple #9
0
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))
Exemple #10
0
 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()