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})
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()
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()
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_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 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 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()
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 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()
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()
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()
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)
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()
def get_trs_query_cfg_by_city(city_id): q = DBSession().query(CityTransactionQueryConfig) q = q.filter(CityTransactionQueryConfig.city_id == city_id) return q.first()
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()
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()