Example #1
0
def bankcard_approve(rst_id, bankcard_id):
    args = _get_bankcard_args()
    args.update({
        'id': bankcard_id,
        "status": RstBankCard.STATUS_VALID,
        "rst_id": rst_id
    })

    rst_admin = get_rst_admin(rst_id)

    current_zeus_bankcard = None
    mobile = None
    if rst_admin:
        current_zeus_bankcard = \
            user_base.get_bankcard(rst_admin.get('user_id'))
        mobile = rst_admin.get("mobile")
    try:
        if rst_admin:
            _unbind_admin_mobile(rst_admin.get('user_id'))
            _unbind_admin_bankcard(rst_admin.get('user_id'))

        bankcard_base.super_user_bind(username=args['username'],
                                      mobile=args['mobile'],
                                      restaurant_id=rst_id,
                                      bank_id=args['bank_id'],
                                      card_id=args['card_id'],
                                      cardholder_name=args['cardholder_name'],
                                      process_user_id=current_user.id)

        _current_to_history(rst_id)
        bankcard_base.update_bankcard(**args)
        bankcard_base.add_bankcard_processing_record(
            rst_id=rst_id,
            bankcard_id=bankcard_id,
            process_user_id=current_user.id,
            messages=u'审核通过该银行卡信息',
            status_to=RstBankCard.STATUS_VALID,
        )
        rst = rst_base.get(rst_id)
        bank = bankcard_base.get_bank(int(args['bank_id']))
        async .send_task(send_bankcard_approve_sms,
                         phone=args['mobile'],
                         params={
                             "restaurant_name": rst.get('name'),
                             "card_holder": args["cardholder_name"],
                             "bank": bank.bank_name,
                             "card_tail_number": args["card_id"][-4:]
                         })
    except thirdparty_svc.eus.EUSUserException as e:
        # rollback bankcard and mobile
        if mobile and rst_admin.get("is_mobile_valid") == 1:
            user_base.bind_mobile(rst_admin.get("user_id"), mobile)
        if current_zeus_bankcard:
            user_base.bankcard_bind(
                user_id=current_zeus_bankcard.user_id,
                cardholder_name=current_zeus_bankcard.cardholder_name,
                bank_id=current_zeus_bankcard.bank_id,
                card_id=current_zeus_bankcard.card_id)

        raise_user_exc(BANKCARD_APPROVE_ERR, error_msg=e.message)
Example #2
0
def bankcard_approve(rst_id, bankcard_id):
    args = _get_bankcard_args()
    args.update({'id': bankcard_id,
                 "status": RstBankCard.STATUS_VALID,
                 "rst_id": rst_id})

    rst_admin = get_rst_admin(rst_id)

    current_zeus_bankcard = None
    mobile = None
    if rst_admin:
        current_zeus_bankcard = \
            user_base.get_bankcard(rst_admin.get('user_id'))
        mobile = rst_admin.get("mobile")
    try:
        if rst_admin:
            _unbind_admin_mobile(rst_admin.get('user_id'))
            _unbind_admin_bankcard(rst_admin.get('user_id'))

        bankcard_base.super_user_bind(
            username=args['username'],
            mobile=args['mobile'],
            restaurant_id=rst_id,
            bank_id=args['bank_id'],
            card_id=args['card_id'],
            cardholder_name=args['cardholder_name'],
            process_user_id=current_user.id)

        _current_to_history(rst_id)
        bankcard_base.update_bankcard(**args)
        bankcard_base.add_bankcard_processing_record(
            rst_id=rst_id,
            bankcard_id=bankcard_id,
            process_user_id=current_user.id,
            messages=u'审核通过该银行卡信息',
            status_to=RstBankCard.STATUS_VALID,
        )
        rst = rst_base.get(rst_id)
        bank = bankcard_base.get_bank(int(args['bank_id']))
        async.send_task(send_bankcard_approve_sms, phone=args['mobile'],
                        params={"restaurant_name": rst.get('name'),
                                "card_holder": args["cardholder_name"],
                                "bank": bank.bank_name,
                                "card_tail_number": args["card_id"][-4:]})
    except thirdparty_svc.eus.EUSUserException as e:
        # rollback bankcard and mobile
        if mobile and rst_admin.get("is_mobile_valid") == 1:
            user_base.bind_mobile(rst_admin.get("user_id"), mobile)
        if current_zeus_bankcard:
            user_base.bankcard_bind(user_id=current_zeus_bankcard.user_id,
                                    cardholder_name=current_zeus_bankcard.cardholder_name,
                                    bank_id=current_zeus_bankcard.bank_id,
                                    card_id=current_zeus_bankcard.card_id)

        raise_user_exc(BANKCARD_APPROVE_ERR, error_msg=e.message)
Example #3
0
def _current_to_history(rst_id):
    current_bankcard = bankcard_base \
        .query_bankcard(rst_id, status=RstBankCard.STATUS_VALID)
    for bankcard in current_bankcard:
        bankcard_base.update_bankcard(bankcard.id,
                                      status=RstBankCard.STATUS_HISTORY)
        bankcard_base.add_bankcard_processing_record(
            rst_id=rst_id,
            bankcard_id=bankcard.id,
            messages=u'弃用该银行卡信息',
            process_user_id=current_user.id,
            status_to=RstBankCard.STATUS_INVALID)
Example #4
0
def bankcard_reject(rst_id, bankcard_id):
    arg_spec = {"comment": Arg()}
    args = args_parser.parse(arg_spec)
    args.update({"status": RstBankCard.STATUS_INVALID})
    bankcard_base.update_bankcard(bankcard_id, **args)
    bankcard_base.add_bankcard_processing_record(
        rst_id=rst_id,
        bankcard_id=bankcard_id,
        process_user_id=current_user.id,
        messages=u'退回该银行卡信息',
        status_to=RstBankCard.STATUS_INVALID,
    )
Example #5
0
def _current_to_history(rst_id):
    current_bankcard = bankcard_base \
        .query_bankcard(rst_id, status=RstBankCard.STATUS_VALID)
    for bankcard in current_bankcard:
        bankcard_base.update_bankcard(bankcard.id,
                                      status=RstBankCard.STATUS_HISTORY)
        bankcard_base.add_bankcard_processing_record(
            rst_id=rst_id,
            bankcard_id=bankcard.id,
            messages=u'弃用该银行卡信息',
            process_user_id=current_user.id,
            status_to=RstBankCard.STATUS_INVALID
        )
Example #6
0
def update_rst_bankcard(rst_id, bankcard_id):
    args = _get_bankcard_args()
    args.update({'id': bankcard_id, "status": RstBankCard.STATUS_PENDING,
                 "comment": ""})
    bankcard_base.update_bankcard(**args)
    bankcard_base.add_bankcard_processing_record(
        rst_id=rst_id,
        bankcard_id=bankcard_id,
        process_user_id=current_user.id,
        messages=u'修改银行卡信息',
        status_to=RstBankCard.STATUS_PENDING,
    )
    return ''
Example #7
0
def bankcard_reject(rst_id, bankcard_id):
    arg_spec = {
        "comment": Arg()
    }
    args = args_parser.parse(arg_spec)
    args.update({"status": RstBankCard.STATUS_INVALID})
    bankcard_base.update_bankcard(bankcard_id, **args)
    bankcard_base.add_bankcard_processing_record(
        rst_id=rst_id,
        bankcard_id=bankcard_id,
        process_user_id=current_user.id,
        messages=u'退回该银行卡信息',
        status_to=RstBankCard.STATUS_INVALID,
    )
Example #8
0
def update_rst_bankcard(rst_id, bankcard_id):
    args = _get_bankcard_args()
    args.update({
        'id': bankcard_id,
        "status": RstBankCard.STATUS_PENDING,
        "comment": ""
    })
    bankcard_base.update_bankcard(**args)
    bankcard_base.add_bankcard_processing_record(
        rst_id=rst_id,
        bankcard_id=bankcard_id,
        process_user_id=current_user.id,
        messages=u'修改银行卡信息',
        status_to=RstBankCard.STATUS_PENDING,
    )
    return ''