Example #1
0
def query_events(status=None, category_l1=None, user_type=None, priority=None,
                 source=None, not_handler_id=None, handler_id=None,
                 is_to_compensate=None, begin_date=None, end_date=None, phone=None,
                 limit=None, offset=None):
    q = DBSession().query(CSEvent).order_by(CSEvent.updated_at.desc())

    if begin_date is not None:
        q = q.filter(CSEvent.created_at >= datestr2datetime(begin_date))

    if end_date is not None:
        q = q.filter(CSEvent.created_at <= datestr2datetime(end_date))

    if not_handler_id is not None:
        q = q.filter(CSEvent.handler_id != not_handler_id)

    if is_to_compensate is not None:
        if is_to_compensate:
            q = q.filter(CSEvent.compensation > 0)
        else:
            q = q.filter(CSEvent.compensation == 0)

    return make_query(q, CSEvent,
                      {'phone': phone, 'handler_id': handler_id, 'status': status,
                       'category_l1': category_l1, 'user_type': user_type,
                       'priority': priority, 'source': source, 'limit': limit,
                       'offset': offset})
Example #2
0
def query_bankcard_by_rst_ids(rst_ids, status=None):
    query = DBSession().query(RstBankCard)

    query = query.filter(RstBankCard.rst_id.in_(rst_ids))

    if status is not None:
        query = query.filter(RstBankCard.status == status)

    return query.all()
Example #3
0
    def count(cls, rst_ids=None, status=None, type_code=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)
        return query.count()
Example #4
0
    def count(cls, rst_ids=None, status=None, type_code=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)
        return query.count()
Example #5
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()
Example #6
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()
Example #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()
Example #8
0
 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()
Example #9
0
 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()
Example #10
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))
Example #11
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))
Example #12
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()
Example #13
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()
Example #14
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()
Example #15
0
def count_by_uid(user_id, status=None):
    q = DBSession().query(func.count(RestaurantRecruitment.id)).\
        filter(RestaurantRecruitment.restaurant_id > 0)

    if status is not None:
        q = q.filter(RestaurantRecruitment.status == status)

    # if super admin
    if current_user.is_super_admin():
        return q.scalar()

    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().scalar()

    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)).scalar()
Example #16
0
def count_events(status=None, category_l1=None, user_type=None, priority=None,
                 source=None, not_handler_id=None, handler_id=None,
                 is_to_compensate=None, begin_date=None, end_date=None, phone=None):
    q = DBSession().query(func.count(CSEvent.id))

    if begin_date is not None:
        q = q.filter(CSEvent.created_at >= datestr2datetime(begin_date))

    if end_date is not None:
        q = q.filter(CSEvent.created_at <= datestr2datetime(end_date))

    if not_handler_id is not None:
        q = q.filter(CSEvent.handler_id != not_handler_id)

    if is_to_compensate is not None:
        if is_to_compensate:
            q = q.filter(CSEvent.compensation > 0)
        else:
            q = q.filter(CSEvent.compensation == 0)

    return make_query(q, CSEvent,
                      {'phone': phone, 'handler_id': handler_id, 'status': status,
                       'category_l1': category_l1, 'user_type': user_type,
                       'priority': priority, 'source': source}).scalar()
Example #17
0
def count_by_uid(user_id, status=None):
    q = DBSession().query(func.count(RestaurantRecruitment.id)).\
        filter(RestaurantRecruitment.restaurant_id > 0)

    if status is not None:
        q = q.filter(RestaurantRecruitment.status == status)

    # if super admin
    if current_user.is_super_admin():
        return q.scalar()

    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().scalar()

    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)).scalar()
Example #18
0
    def update(cls, id, **bankcard_dict):
        query = Session().query(cls)
        query = query.filter(cls.id == id)
        rst_bankcard = query.first()
        if not rst_bankcard:
            return ''

        status = bankcard_dict.get('status')
        if status == cls.STATUS_VALID \
                and rst_bankcard.status == cls.STATUS_VALID:
            raise_user_exc(BANKCARD_UPDATE_ERR)

        if rst_bankcard.status == cls.STATUS_HISTORY:
            raise_user_exc(BANKCARD_STATUS_INVALID)

        for k, v in bankcard_dict.iteritems():
            if hasattr(rst_bankcard, k):
                setattr(rst_bankcard, k, v)

        Session().add(rst_bankcard)
Example #19
0
    def update(cls, id, **bankcard_dict):
        query = Session().query(cls)
        query = query.filter(cls.id == id)
        rst_bankcard = query.first()
        if not rst_bankcard:
            return ''

        status = bankcard_dict.get('status')
        if status == cls.STATUS_VALID \
                and rst_bankcard.status == cls.STATUS_VALID:
            raise_user_exc(BANKCARD_UPDATE_ERR)

        if rst_bankcard.status == cls.STATUS_HISTORY:
            raise_user_exc(BANKCARD_STATUS_INVALID)

        for k, v in bankcard_dict.iteritems():
            if hasattr(rst_bankcard, k):
                setattr(rst_bankcard, k, v)

        Session().add(rst_bankcard)
Example #20
0
 def get_pre(cls, id, status=STATUS_PENDING):
     query = Session().query(cls)
     query = query.filter(cls.status == status)\
         .filter(cls.id > id).order_by(cls.id)
     return query.first()
Example #21
0
def get_trs_query_cfg_by_city(city_id):
    q = DBSession().query(CityTransactionQueryConfig)
    q = q.filter(CityTransactionQueryConfig.city_id == city_id)
    return q.first()
Example #22
0
def get_trs_query_cfg_by_city(city_id):
    q = DBSession().query(CityTransactionQueryConfig)
    q = q.filter(CityTransactionQueryConfig.city_id == city_id)
    return q.first()
Example #23
0
 def get(cls, rst_id, id):
     query = Session().query(cls)
     query = query.filter(cls.id == id).filter(cls.rst_id == rst_id)
     return query.first()
Example #24
0
 def get_pre(cls, id, status=STATUS_PENDING):
     query = Session().query(cls)
     query = query.filter(cls.status == status)\
         .filter(cls.id > id).order_by(cls.id)
     return query.first()
Example #25
0
 def get_next(cls, id, status=STATUS_PENDING):
     query = Session().query(cls)
     query = query.filter(cls.status == status)\
         .filter(cls.id < id).order_by(cls.id.desc())
     return query.first()
Example #26
0
 def get_next(cls, id, status=STATUS_PENDING):
     query = Session().query(cls)
     query = query.filter(cls.status == status)\
         .filter(cls.id < id).order_by(cls.id.desc())
     return query.first()
Example #27
0
 def get(cls, rst_id, id):
     query = Session().query(cls)
     query = query.filter(cls.id == id).filter(cls.rst_id == rst_id)
     return query.first()