Beispiel #1
0
def get_rst_bankcard_list(rst_id):
    arg_spec = {
        'status': Arg(int, allow_missing=True),
        'type_code': Arg(int, allow_missing=True),
        'page_size': Arg(int, allow_missing=True),
        'page_no': Arg(int, allow_missing=True)
    }
    args = args_parser.parse(arg_spec)
    status = args.get('status')
    type_code = args.get('type_code')
    page_no, page_size = get_paging_params()
    offset = (page_no - 1) * page_size
    limit = page_size
    rst_bankcard_list = bankcard_base \
        .query_bankcard(rst_id, status=status, limit=limit, offset=offset)
    rst_bankcard_list_new = [model2dict(m) for m in rst_bankcard_list]
    return {
        'bankcard_list':
        rst_bankcard_list_new,
        'total_num':
        bankcard_base.get_bankcard_count([
            rst_id,
        ],
                                         status=status,
                                         type_code=type_code)
    }
Beispiel #2
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))
Beispiel #3
0
def get_all_bankcard_list():
    arg_spec = {
        'search_text': Arg(),
        'status': Arg(int, allow_missing=True),
        'type_code': Arg(int, allow_missing=True),
    }
    args = args_parser.parse(arg_spec)
    search_text = args.pop('search_text')

    rst_ids = _filter_ids(search_text)

    args['rst_ids'] = rst_ids
    page_no, page_size = get_paging_params(paging_size=50)
    offset = (page_no - 1) * page_size
    limit = page_size
    args.update({"offset": offset, "limit": limit})
    bankcard_list = bankcard_base.query_by_status(**args)

    if not bankcard_list:
        return {
            'bankcard_list': [],
            'total_num': 0,
        }

    bankcard_list_new = []
    rst_set_ids = set()
    for bankcard in bankcard_list:
        bankcard_list_new.append(model2dict(bankcard))
        rst_set_ids.add(bankcard.rst_id)

    rst_map = rst_base.get_map(rst_set_ids)
    for bankcard in bankcard_list_new:
        bankcard.update({
            "restaurant_name": rst_map[bankcard['rst_id']].name,
        })

    return {
        'bankcard_list': bankcard_list_new,
        'total_num':
            bankcard_base.get_bankcard_count(
                rst_ids=rst_ids,
                status=args.get("status"),
                type_code=args.get("type_code")),
    }
Beispiel #4
0
def get_all_bankcard_list():
    arg_spec = {
        'search_text': Arg(),
        'status': Arg(int, allow_missing=True),
        'type_code': Arg(int, allow_missing=True),
    }
    args = args_parser.parse(arg_spec)
    search_text = args.pop('search_text')

    rst_ids = _filter_ids(search_text)

    args['rst_ids'] = rst_ids
    page_no, page_size = get_paging_params(paging_size=50)
    offset = (page_no - 1) * page_size
    limit = page_size
    args.update({"offset": offset, "limit": limit})
    bankcard_list = bankcard_base.query_by_status(**args)

    if not bankcard_list:
        return {
            'bankcard_list': [],
            'total_num': 0,
        }

    bankcard_list_new = []
    rst_set_ids = set()
    for bankcard in bankcard_list:
        bankcard_list_new.append(model2dict(bankcard))
        rst_set_ids.add(bankcard.rst_id)

    rst_map = rst_base.get_map(rst_set_ids)
    for bankcard in bankcard_list_new:
        bankcard.update({
            "restaurant_name": rst_map[bankcard['rst_id']].name,
        })

    return {
        'bankcard_list':
        bankcard_list_new,
        'total_num':
        bankcard_base.get_bankcard_count(rst_ids=rst_ids,
                                         status=args.get("status"),
                                         type_code=args.get("type_code")),
    }
Beispiel #5
0
def get_processing_record(rst_id, bankcard_id):
    arg_spec = {
        "limit": Arg(int, allow_missing=True),
    }
    args = args_parser.parse(arg_spec)
    limit = args.get("limit", DEFAULT_RECORD_LIMIT)
    processing_record_list = bankcard_base \
        .query_processing_record(rst_id, bankcard_id, limit)
    if not processing_record_list:
        return []
    process_user_ids = []
    for m in processing_record_list:
        process_user_ids.append(m.process_user_id)
    process_user_list = user_base.mget_users(process_user_ids)
    process_user_dict = {user.id: user.username for user in process_user_list}
    processing_record_list_new = []
    for processing_record in processing_record_list:
        pr_dict = model2dict(processing_record)
        pr_dict['process_user_username'] = \
            process_user_dict.get(pr_dict['process_user_id'])
        processing_record_list_new.append(pr_dict)
    return processing_record_list_new
Beispiel #6
0
def get_processing_record(rst_id, bankcard_id):
    arg_spec = {
        "limit": Arg(int, allow_missing=True),
    }
    args = args_parser.parse(arg_spec)
    limit = args.get("limit", DEFAULT_RECORD_LIMIT)
    processing_record_list = bankcard_base \
        .query_processing_record(rst_id, bankcard_id, limit)
    if not processing_record_list:
        return []
    process_user_ids = []
    for m in processing_record_list:
        process_user_ids.append(m.process_user_id)
    process_user_list = user_base.mget_users(process_user_ids)
    process_user_dict = {user.id: user.username for user in process_user_list}
    processing_record_list_new = []
    for processing_record in processing_record_list:
        pr_dict = model2dict(processing_record)
        pr_dict['process_user_username'] = \
            process_user_dict.get(pr_dict['process_user_id'])
        processing_record_list_new.append(pr_dict)
    return processing_record_list_new
Beispiel #7
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))
Beispiel #8
0
def get_rst_bankcard_list(rst_id):
    arg_spec = {
        'status': Arg(int, allow_missing=True),
        'type_code': Arg(int, allow_missing=True),
        'page_size': Arg(int, allow_missing=True),
        'page_no': Arg(int, allow_missing=True)
    }
    args = args_parser.parse(arg_spec)
    status = args.get('status')
    type_code = args.get('type_code')
    page_no, page_size = get_paging_params()
    offset = (page_no - 1) * page_size
    limit = page_size
    rst_bankcard_list = bankcard_base \
        .query_bankcard(rst_id, status=status, limit=limit, offset=offset)
    rst_bankcard_list_new = [model2dict(m) for m in rst_bankcard_list]
    return {
        'bankcard_list': rst_bankcard_list_new,
        'total_num':
            bankcard_base.get_bankcard_count([rst_id, ],
                                             status=status,
                                             type_code=type_code)
    }
Beispiel #9
0
def get_rst_bankcard(rst_id, bankcard_id):
    rst_bankcard = bankcard_base.get_bankcard(rst_id, bankcard_id)
    if not rst_bankcard:
        return {}
    return model2dict(rst_bankcard)
Beispiel #10
0
def get_rst_bankcard(rst_id, bankcard_id):
    rst_bankcard = bankcard_base.get_bankcard(rst_id, bankcard_id)
    if not rst_bankcard:
        return {}
    return model2dict(rst_bankcard)