コード例 #1
0
def _diff_bankcard(walis_bankcard_dict, zeus_bankcard_dict, user_dict,
                   user_profile_dict):
    add_num = 0
    change_num = 0
    same_num = 0
    not_admin_num = 0
    session = DBSession()
    for zb_rst_id, zb in zeus_bankcard_dict.iteritems():
        wb = walis_bankcard_dict.get(zb_rst_id)
        rst_admin = user_profile_dict.get(zb.user_id)
        if rst_admin is None:
            not_admin_num += 1
            continue
        if wb is not None:
            if zb.card_id.strip() == wb.card_id.strip():
                same_num += 1
                continue
            else:
                change_num += 1
                print('walis_bankcard({}) is not same with zeus({}):{}=>{}'.
                      format(wb.id, zb.id, model2dict(wb), ttype2dict(zb)))
                _current_to_history(wb)
                session.add(wb)
                new_wb = _force_add_rst_bankcard(
                    rst_id=zb_rst_id,
                    username=user_dict[zb.user_id]['username'],
                    cardholder_name=zb.cardholder_name,
                    card_id=zb.card_id,
                    bank_id=zb.bank_id,
                    mobile=rst_admin.mobile,
                    status=RstBankCard.STATUS_VALID)
                session.add(new_wb)
        else:
            add_num += 1
            print('zeus_bankcard({}) does not exist in walis:{}'.format(
                zb.id, ttype2dict(zb)))
            new_wb = _force_add_rst_bankcard(
                rst_id=zb_rst_id,
                username=user_dict[zb.user_id]['username'],
                cardholder_name=zb.cardholder_name,
                card_id=zb.card_id,
                bank_id=zb.bank_id,
                mobile=rst_admin.mobile,
                status=RstBankCard.STATUS_VALID)
            session.add(new_wb)

    print(
        '(add_num:{add_num}, change_num:{change_num}, same_num:{same_num}, not_admin_num:{not_admin_num})'
        .format(add_num=add_num,
                change_num=change_num,
                same_num=same_num,
                not_admin_num=not_admin_num))
コード例 #2
0
def gets_by_userid(user_id):
    page_no, page_size = get_paging_params()
    t_query = thirdparty_svc.eus.THongbaoQuery()
    t_query.user_id = user_id
    t_query.statuses = [STATUS_UNUSED, STATUS_USED]
    t_query.offset = (page_no - 1) * page_size
    t_query.limit = page_size

    with thrift_client('eus') as eus:
        hongbaos = eus.query_hongbao(t_query)

    results = []
    disp_keys = [
        'sn', 'sum_condition', 'begin_date', 'end_date', 'amount',
        'used_amount'
    ]
    for hongbao in hongbaos:
        hongbao_dict = ttype2dict(hongbao, keys=disp_keys)

        hongbao_dict['left_amount'] =\
            hongbao_dict['amount'] - hongbao_dict['used_amount']

        if hongbao_dict['left_amount'] != 0:
            results.append(hongbao_dict)

    return results
コード例 #3
0
ファイル: activity.py プロジェクト: liuzelei/walis
def get_restaurant_activities(ids):
    ids = list(set(ids))
    restaurant_activities = activity_base.mget_restaurant_activities(ids)

    def create_name(acty):
        setattr(acty, 'name', get_restaurant_activity_name(acty))
        return acty
    return [ttype2dict(create_name(activity)) for activity in restaurant_activities]
コード例 #4
0
def save_generic_coupon(batch_sn, deadline, sn, remain):
    with thrift_client('eos') as eos:
        coupon = eos.save_coupon(
            id=None,
            sn=sn,
            batch_sn=batch_sn,
            remain=remain,
            deadline=deadline
        )
        return ttype2dict(coupon)
コード例 #5
0
def get_restaurant_activities(ids):
    ids = list(set(ids))
    restaurant_activities = activity_base.mget_restaurant_activities(ids)

    def create_name(acty):
        setattr(acty, 'name', get_restaurant_activity_name(acty))
        return acty

    return [
        ttype2dict(create_name(activity)) for activity in restaurant_activities
    ]
コード例 #6
0
ファイル: sync_zeus_bankcard.py プロジェクト: liuzelei/walis
def _diff_bankcard(walis_bankcard_dict, zeus_bankcard_dict, user_dict, user_profile_dict):
    add_num = 0
    change_num = 0
    same_num = 0
    not_admin_num = 0
    session = DBSession()
    for zb_rst_id, zb in zeus_bankcard_dict.iteritems():
        wb = walis_bankcard_dict.get(zb_rst_id)
        rst_admin = user_profile_dict.get(zb.user_id)
        if rst_admin is None:
            not_admin_num += 1
            continue
        if wb is not None:
            if zb.card_id.strip() == wb.card_id.strip():
                same_num += 1
                continue
            else:
                change_num += 1
                print('walis_bankcard({}) is not same with zeus({}):{}=>{}'
                      .format(wb.id, zb.id, model2dict(wb), ttype2dict(zb)))
                _current_to_history(wb)
                session.add(wb)
                new_wb = _force_add_rst_bankcard(rst_id=zb_rst_id, username=user_dict[zb.user_id]['username'],
                                                 cardholder_name=zb.cardholder_name, card_id=zb.card_id,
                                                 bank_id=zb.bank_id, mobile=rst_admin.mobile,
                                                 status=RstBankCard.STATUS_VALID)
                session.add(new_wb)
        else:
            add_num += 1
            print('zeus_bankcard({}) does not exist in walis:{}'.format(zb.id, ttype2dict(zb)))
            new_wb = _force_add_rst_bankcard(rst_id=zb_rst_id, username=user_dict[zb.user_id]['username'],
                                             cardholder_name=zb.cardholder_name, card_id=zb.card_id,
                                             bank_id=zb.bank_id, mobile=rst_admin.mobile,
                                             status=RstBankCard.STATUS_VALID)
            session.add(new_wb)

    print('(add_num:{add_num}, change_num:{change_num}, same_num:{same_num}, not_admin_num:{not_admin_num})'
          .format(add_num=add_num, change_num=change_num, same_num=same_num, not_admin_num=not_admin_num))
コード例 #7
0
ファイル: hongbao.py プロジェクト: liuzelei/walis
def gets_hongbao_exchange(args):
    query = get_hongbao_query(args)
    with thrift_client('eus') as eus:
        count = eus.walle_count_hongbao_exchange(query)
        query.offset = args.get('offset', None)
        query.limit = args.get('limit', None)
        results = eus.walle_query_hongbao_exchange(query)
    hongbao_exchanges = []
    hongbao_exchange_keys = ['exchange','amount','sum_condition','created_at','end_date','status','hongbao_sn','phone']
    for hongbao_exchange in results:
        hongbao_exchange_dict = ttype2dict(hongbao_exchange, keys=hongbao_exchange_keys)
        hongbao_exchange_dict['created_at'] = timestamp2datetime(hongbao_exchange_dict['created_at'])
        hongbao_exchanges.append(hongbao_exchange_dict)
    return hongbao_exchanges,count
コード例 #8
0
ファイル: hongbao.py プロジェクト: liuzelei/walis
def gets_hongbao_grab(args):
    query = get_hongbao_query(args)
    with thrift_client('eus') as eus:
        count = eus.walle_count_weixin_hongbao_record(query)
        query.offset = args.get('offset', None)
        query.limit = args.get('limit', None)
        results = eus.walle_query_weixin_hongbao_record(query)
    hongbao_grab_list = []
    hongbao_grab_keys = ['id','sn','group_sn','sns_uid','sns_username','sns_avatar','phone','amount','sum_condition','status','name','source','created_at','updated_at','user_id']
    for hongbao_grab in results:
        hongbao_grab = ttype2dict(hongbao_grab, keys=hongbao_grab_keys)
        hongbao_grab['created_at'] = timestamp2datetime(hongbao_grab['created_at'])
        hongbao_grab['updated_at'] = timestamp2datetime(hongbao_grab['updated_at'])
        hongbao_grab_list.append(hongbao_grab)
    return hongbao_grab_list,count
コード例 #9
0
ファイル: hongbao.py プロジェクト: liuzelei/walis
def gets_hongbao(args):
    query = get_hongbao_query(args)
    with thrift_client('eus') as eus:
        count = eus.walle_count_user_hongbao(query)
        query.offset = args.get('offset', None)
        query.limit = args.get('limit', None)
        results = eus.walle_query_user_hongbao(query)
    hongbaos = []
    user_hongbao_keys = ['hongbao_sn','created_at','amount','sum_condition','begin_date','end_date','status','name','username','phone','order_id']
    for result in results:
        hongbao_dict = ttype2dict(result, keys=user_hongbao_keys)
        hongbao_dict['order_id'] = str(hongbao_dict['order_id'])
        hongbao_dict['created_at'] = timestamp2datetime(hongbao_dict['created_at'])
        hongbaos.append(hongbao_dict)
    return hongbaos,count
コード例 #10
0
ファイル: hongbao.py プロジェクト: liuzelei/walis
def gets_hongbao_share(args):
    query = get_hongbao_query(args)
    with thrift_client('eus') as eus:
        count = eus.walle_count_hongbao_group(query)
        query.offset = args.get('offset', None)
        query.limit = args.get('limit', None)
        results = eus.walle_query_hongbao_group(query)
    hongbao_shares = []
    hongbao_share_keys = ['order_id','phone','total_count','used_count','status','source','updated_at']
    for hongbao_share in results:
        hongbao_share = ttype2dict(hongbao_share, keys=hongbao_share_keys)
        hongbao_share['order_id'] = str(hongbao_share['order_id'])
        hongbao_share['updated_at'] = timestamp2datetime(hongbao_share['updated_at'])
        hongbao_shares.append(hongbao_share)
    return hongbao_shares,count
コード例 #11
0
ファイル: contract.py プロジェクト: liuzelei/walis
def query(city_ids, activity_category_id=None, restaurant_ids=None, status=None,
          created_at_from=arrow.now().replace(days=-8).timestamp,
          offset=None, limit=None):
    condition = base.create_contract_query_condition(
        city_ids=city_ids,
        activity_category_id=activity_category_id,
        restaurant_ids=restaurant_ids,
        status=status,
        created_at_from=created_at_from,
        offset=offset,
        limit=limit
    )
    contract_list = base.query_contract(condition)
    contract_list = [ttype2dict(ct) for ct in contract_list]
    contract_count = base.count_contract(condition)
    return {"count": contract_count, "contracts": contract_list}
コード例 #12
0
def gets_hongbao_share(args):
    query = get_hongbao_query(args)
    with thrift_client('eus') as eus:
        count = eus.walle_count_hongbao_group(query)
        query.offset = args.get('offset', None)
        query.limit = args.get('limit', None)
        results = eus.walle_query_hongbao_group(query)
    hongbao_shares = []
    hongbao_share_keys = [
        'order_id', 'phone', 'total_count', 'used_count', 'status', 'source',
        'updated_at'
    ]
    for hongbao_share in results:
        hongbao_share = ttype2dict(hongbao_share, keys=hongbao_share_keys)
        hongbao_share['order_id'] = str(hongbao_share['order_id'])
        hongbao_share['updated_at'] = timestamp2datetime(
            hongbao_share['updated_at'])
        hongbao_shares.append(hongbao_share)
    return hongbao_shares, count
コード例 #13
0
def gets_hongbao_exchange(args):
    query = get_hongbao_query(args)
    with thrift_client('eus') as eus:
        count = eus.walle_count_hongbao_exchange(query)
        query.offset = args.get('offset', None)
        query.limit = args.get('limit', None)
        results = eus.walle_query_hongbao_exchange(query)
    hongbao_exchanges = []
    hongbao_exchange_keys = [
        'exchange', 'amount', 'sum_condition', 'created_at', 'end_date',
        'status', 'hongbao_sn', 'phone'
    ]
    for hongbao_exchange in results:
        hongbao_exchange_dict = ttype2dict(hongbao_exchange,
                                           keys=hongbao_exchange_keys)
        hongbao_exchange_dict['created_at'] = timestamp2datetime(
            hongbao_exchange_dict['created_at'])
        hongbao_exchanges.append(hongbao_exchange_dict)
    return hongbao_exchanges, count
コード例 #14
0
def gets_hongbao(args):
    query = get_hongbao_query(args)
    with thrift_client('eus') as eus:
        count = eus.walle_count_user_hongbao(query)
        query.offset = args.get('offset', None)
        query.limit = args.get('limit', None)
        results = eus.walle_query_user_hongbao(query)
    hongbaos = []
    user_hongbao_keys = [
        'hongbao_sn', 'created_at', 'amount', 'sum_condition', 'begin_date',
        'end_date', 'status', 'name', 'username', 'phone', 'order_id'
    ]
    for result in results:
        hongbao_dict = ttype2dict(result, keys=user_hongbao_keys)
        hongbao_dict['order_id'] = str(hongbao_dict['order_id'])
        hongbao_dict['created_at'] = timestamp2datetime(
            hongbao_dict['created_at'])
        hongbaos.append(hongbao_dict)
    return hongbaos, count
コード例 #15
0
def query(city_ids,
          activity_category_id=None,
          restaurant_ids=None,
          status=None,
          created_at_from=arrow.now().replace(days=-8).timestamp,
          offset=None,
          limit=None):
    condition = base.create_contract_query_condition(
        city_ids=city_ids,
        activity_category_id=activity_category_id,
        restaurant_ids=restaurant_ids,
        status=status,
        created_at_from=created_at_from,
        offset=offset,
        limit=limit)
    contract_list = base.query_contract(condition)
    contract_list = [ttype2dict(ct) for ct in contract_list]
    contract_count = base.count_contract(condition)
    return {"count": contract_count, "contracts": contract_list}
コード例 #16
0
def gets_hongbao_grab(args):
    query = get_hongbao_query(args)
    with thrift_client('eus') as eus:
        count = eus.walle_count_weixin_hongbao_record(query)
        query.offset = args.get('offset', None)
        query.limit = args.get('limit', None)
        results = eus.walle_query_weixin_hongbao_record(query)
    hongbao_grab_list = []
    hongbao_grab_keys = [
        'id', 'sn', 'group_sn', 'sns_uid', 'sns_username', 'sns_avatar',
        'phone', 'amount', 'sum_condition', 'status', 'name', 'source',
        'created_at', 'updated_at', 'user_id'
    ]
    for hongbao_grab in results:
        hongbao_grab = ttype2dict(hongbao_grab, keys=hongbao_grab_keys)
        hongbao_grab['created_at'] = timestamp2datetime(
            hongbao_grab['created_at'])
        hongbao_grab['updated_at'] = timestamp2datetime(
            hongbao_grab['updated_at'])
        hongbao_grab_list.append(hongbao_grab)
    return hongbao_grab_list, count
コード例 #17
0
def query(status=None, order_id=None, pay_platform=None, offset=None, limit=None):
    resource = refund_base.query(status, order_id, pay_platform, offset, limit)
    for item in resource.drawback_process_records:
        # create opt log (only one row at now)
        item.optlog = []
        if item.process_user_id and item.bank_drawback_process_record:
            admin = user_service.get_user(item.process_user_id)
            item.optlog.append({
                'time': datetime.fromtimestamp(int(item.retry_at)).strftime('%Y-%m-%d %H:%M:%S'),
                'admin': admin.username,
                'detail': u'提交打款账号'
            })
        # process_user_id maybe changed in the future, don't expose it to front
        delattr(item, 'process_user_id')
        # complete img url
        if item.bank_drawback_process_record and item.bank_drawback_process_record.image_hash:
            item.image_url = file_utils.get_file_url(
                item.bank_drawback_process_record.image_hash
            )
        # convert order_id as string, that to prevent exceeding the maximum
        # integer in javascript
        item.order_id = str(item.order_id)
    return ttype2dict(resource)
コード例 #18
0
ファイル: hongbao.py プロジェクト: liuzelei/walis
def gets_by_userid(user_id):
    page_no, page_size = get_paging_params()
    t_query = thirdparty_svc.eus.THongbaoQuery()
    t_query.user_id = user_id
    t_query.statuses = [STATUS_UNUSED, STATUS_USED]
    t_query.offset = (page_no - 1) * page_size
    t_query.limit = page_size

    with thrift_client('eus') as eus:
        hongbaos = eus.query_hongbao(t_query)

    results = []
    disp_keys = ['sn', 'sum_condition', 'begin_date', 'end_date', 'amount','used_amount']
    for hongbao in hongbaos:
        hongbao_dict = ttype2dict(hongbao, keys=disp_keys)

        hongbao_dict['left_amount'] =\
            hongbao_dict['amount'] - hongbao_dict['used_amount']

        if hongbao_dict['left_amount'] != 0:
            results.append(hongbao_dict)

    return results
コード例 #19
0
def get_food_activities(ids):
    ids = list(set(ids))
    food_activities = activity_base.mget_food_activities(ids)
    return [ttype2dict(activity) for activity in food_activities]
コード例 #20
0
ファイル: activity.py プロジェクト: liuzelei/walis
def get_food_activities(ids):
    ids = list(set(ids))
    food_activities = activity_base.mget_food_activities(ids)
    return [ttype2dict(activity) for activity in food_activities]
コード例 #21
0
def get(coupon_id):
    with thrift_client('eos') as eos:
        result = eos.get_coupon(int(coupon_id))
    return ttype2dict(result)
コード例 #22
0
def get_citys(ids):
    ids = list(set(ids))
    citys = city_base.get_citys(ids)
    return [ttype2dict(city) for city in citys]
コード例 #23
0
def get_restaurants(ids):
    ids = list(set(ids))
    restaurants = inner.get_restaurants(ids)
    return [ttype2dict(rst) for rst in restaurants]
コード例 #24
0
ファイル: restaurant.py プロジェクト: liuzelei/walis
def get_restaurants(ids):
    ids = list(set(ids))
    restaurants = inner.get_restaurants(ids)
    return [ttype2dict(rst) for rst in restaurants]