Beispiel #1
0
def get_pay_activities_by_restaurant(rst_id):
    with zeus_session() as session:
        query = session.query(
            ActivityStats.activity_id,
            ActivityStats.activity_category_id,). \
            group_by(ActivityStats.activity_id,
                     ActivityStats.activity_category_id). \
            filter(ActivityStats.restaurant_id == rst_id)

        return query.all()
Beispiel #2
0
def get_success_pay_records(record_ids):
    with zeus_session() as session:
        result = session.query(SubsidyPayRecord.id,
                               SubsidyPayRecord.restaurant_id,
                               SubsidyProcessRecord.card_id,
                               SubsidyProcessRecord.processed_at,). \
            outerjoin(SubsidyProcessRecord,
                      SubsidyProcessRecord.pay_record_id == SubsidyPayRecord.id). \
            filter(SubsidyPayRecord.status == SubsidyPayRecord.STATUS_SUCCESS). \
            filter(SubsidyProcessRecord.status != SubsidyProcessRecord.STATUS_FAIL). \
            filter(SubsidyPayRecord.id.in_(record_ids)).all()

        return result
Beispiel #3
0
def get_activity_stats(pay_record_id):
    with zeus_session() as session:
        results = session.query(ActivityStats.activity_id,
                                ActivityStats.activity_category_id,
                                func.sum(ActivityStats.total_subsidy),
                                func.min(ActivityStats.date),
                                func.max(ActivityStats.date),
                                func.sum(ActivityStats.quantity), ).group_by(
            ActivityStats.restaurant_id, ActivityStats.activity_id,
            ActivityStats.activity_category_id). \
            filter(ActivityStats.pay_record_id == pay_record_id). \
            filter(ActivityStats.status == ActivityStats.STATUS_PAY_SUCCESS).all()

        return results
Beispiel #4
0
def get_new_pay_records(process_at, limit=200):
    with zeus_session() as session:
        result = session.query(SubsidyPayRecord.id,
                               SubsidyPayRecord.restaurant_id,
                               SubsidyProcessRecord.card_id,
                               SubsidyProcessRecord.processed_at,
                               SubsidyPayRecord.status). \
            outerjoin(SubsidyProcessRecord,
                      SubsidyProcessRecord.pay_record_id == SubsidyPayRecord.id). \
            filter(SubsidyPayRecord.id > process_at). \
            filter(SubsidyProcessRecord.status != SubsidyProcessRecord.STATUS_FAIL). \
            order_by(SubsidyPayRecord.id.asc()).limit(limit).all()

        return result
Beispiel #5
0
def get_success_record_ids_by_restaurant(restaurant_id,
                                         activity_id=None,
                                         activity_category_id=None):
    with zeus_session() as session:
        query = session.query(SubsidyPayRecord.id). \
            filter(SubsidyPayRecord.restaurant_id == restaurant_id). \
            filter(SubsidyPayRecord.status == SubsidyPayRecord.STATUS_SUCCESS)

        if activity_id is not None:
            query.filter(SubsidyPayRecord.activity_id == activity_id)

        if activity_category_id is not None:
            query.filter(
                SubsidyPayRecord.activity_category_id == activity_category_id)
        record_ids = query.all()

        return [r[0] for r in record_ids]