Ejemplo n.º 1
0
def bind_creditcard(current_user):  # 信用卡绑定
    while True:
        print('\033[32;1m信用卡绑定中心\033[0m'.center(40, '-'))
        with open(settings._db_users_dict, 'r+') as f_users_dict:
            users_dict = json.load(f_users_dict)
            creditcard = users_dict[current_user]['creditcard']
            if creditcard == 0:
                print('当前用户:    %s' % current_user)
                print('信用卡绑定状态:\033[31;1m未绑定\033[0m')
            else:
                print('当前用户:    %s' % current_user)
                print('信用卡绑定:   %s' % creditcard)
            if_update = input('\033[34;1m是否要修改信用卡绑定 确定【Y】/返回【B】\033[0m:').strip().lower()
            if if_update == 'y':
                creditcard_new = input('\033[34;1m请输入要绑定的信用卡卡号(6位数字):\033[0m')
                if creditcard_new.isdigit() and len(creditcard_new) == 6:
                    with open(settings._db_credit_dict, 'r+') as f_credit_dict:
                        credit_dict = json.load(f_credit_dict)
                        # print(credit_dict.keys())
                        if str(creditcard_new) in credit_dict.keys():
                            users_dict[current_user]['creditcard'] = creditcard_new
                            dict = json.dumps(users_dict)
                            f_users_dict.seek(0)
                            f_users_dict.truncate(0)
                            f_users_dict.write(dict)
                            print('\033[32;1m信用卡%s绑定成功!\033[0m' % creditcard_new)
                        else:
                            print('\033[31;1m输入的信用卡卡号不存在!\033[0m')
                else:
                    print('\033[31;1m信用卡格式输入有误!\033[0m')

            elif if_update == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 2
0
def repayment(current_creditcard):   # 信用卡还款
    while True:
        print('\033[32;1m还款\033[0m'.center(40, '-'))
        if_repay = input('\033[34;1m是否进行还款操作 确定【Y】/返回【B】:').strip().lower()
        if if_repay == 'y':
            repay_cash = input('\033[34;1m请输入要还款的金额\033[0m:')
            if repay_cash.isdigit():
                repay_cash = int(repay_cash)
                with open(settings._db_credit_dict, 'r+') as f_credit_dict:
                    credit_dict = json.load(f_credit_dict)
                    limit = credit_dict[current_creditcard]['limit']
                    limit += repay_cash
                    credit_dict[current_creditcard]['limit'] = limit
                    dict = json.dumps(credit_dict)
                    f_credit_dict.seek(0)
                    f_credit_dict.truncate(0)
                    f_credit_dict.write(dict)
                    record = '\033[32;1m信用卡 %s 还款金额 ¥%s 还款成功!\033[0m' % (current_creditcard, repay_cash)
                    print(record, '\n')
                    creditcard_record(current_creditcard, record)
            else:
                print('\033[31;1m还款金额格式输入有误!\033[0m')
        elif if_repay == 'b':
            break
        else:
            errorlog.log('error', logging.INFO)
Ejemplo n.º 3
0
def update_password(current_user):   # 修改登录密码
    while True:
        print('\033[32;1m修改登录密码\033[0m'.center(40, '-'))
        print('当前用户:\t%s\n当前密码:\t***' % current_user)
        if_update = input('\033[34;0m是否要修改 %s 登录密码 确定【Y】/返回【B】:' % current_user).strip().lower()
        if if_update == 'y':
            with open(settings._db_users_dict, 'r+') as f_users_dict:
                users_dict = json.load(f_users_dict)
                password = users_dict[current_user]['password']
                old_pwd = input('\033[34;1m请输入原来的密码:\033[0m')
                if old_pwd == password:
                    new_pwd = input('\033[34;1m请输入新密码:')
                    again_new_pwd = input('\033[34;1m请再次输入新密码:')
                    if new_pwd == again_new_pwd:
                        users_dict[current_user]['password'] = new_pwd
                        dict = json.dumps(users_dict)
                        f_users_dict.seek(0)
                        f_users_dict.truncate(0)
                        f_users_dict.write(dict)
                        print('\033[32;1m用户%s密码修改成功!' % current_user)
                    else:
                        print('\033[31;1m输入的两次密码不一致!\033[0m')
                else:
                    print('\033[31;1m密码输入错误!\033[0m')

        elif if_update == 'b':
            break
        else:
            errorlog.log('error', logging.INFO)
Ejemplo n.º 4
0
def lock_user():   # 用户锁定模块
    while True:
        print('\033[32;1m锁定用户\033[0m'.center(50, '-'))
        with open(settings._db_users_dict, 'r+') as f_users_dict:
            user_dict = json.load(f_users_dict)
            for key in user_dict:
                if user_dict[key]['locked'] == 0:
                    print('\033[32;1m系统用户【%s】\t\t锁定状态:【未锁定】\033[0m' % key)
                else:
                    print('\033[31;1m系统用户【%s】\t\t锁定状态:【已锁定】\033[0m' % key)
            if_lock = input('\033[34;1m是否要进行用户锁定 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_lock == 'y':
                will_lock_user = input('\033[34;1m输入要锁定的用户名:\033[0m')
                if will_lock_user in user_dict.keys():
                    if user_dict[will_lock_user]['locked'] == 0:
                        user_dict[will_lock_user]['locked'] = 1
                        dict = json.dumps(user_dict)
                        f_users_dict.seek(0)
                        f_users_dict.truncate(0)
                        f_users_dict.write(dict)
                        print('\033[32;1m用户%s锁定成功!\033[0m' % will_lock_user)
                    else:
                        print('\033[31;1m此次锁定失败,用户%s之前已被锁定!\033[0m' % will_lock_user)
                else:
                    print('\033[31;1m用户%s不存在!' % will_lock_user)
            elif if_lock == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 5
0
def repayment(current_creditcard):  # 信用卡还款
    while True:
        print('\033[32;1m还款\033[0m'.center(40, '-'))
        if_repay = input('\033[34;1m是否进行还款操作 确定【Y】/返回【B】:').strip().lower()
        if if_repay == 'y':
            repay_cash = input('\033[34;1m请输入要还款的金额\033[0m:')
            if repay_cash.isdigit():
                repay_cash = int(repay_cash)
                with open(settings._db_credit_dict, 'r+') as f_credit_dict:
                    credit_dict = json.load(f_credit_dict)
                    limit = credit_dict[current_creditcard]['limit']
                    limit += repay_cash
                    credit_dict[current_creditcard]['limit'] = limit
                    dict = json.dumps(credit_dict)
                    f_credit_dict.seek(0)
                    f_credit_dict.truncate(0)
                    f_credit_dict.write(dict)
                    record = '\033[32;1m信用卡 %s 还款金额 ¥%s 还款成功!\033[0m' % (
                        current_creditcard, repay_cash)
                    print(record, '\n')
                    creditcard_record(current_creditcard, record)
            else:
                print('\033[31;1m还款金额格式输入有误!\033[0m')
        elif if_repay == 'b':
            break
        else:
            errorlog.log('error', logging.INFO)
Ejemplo n.º 6
0
def unlock_user():  # 用户解锁模块
    while True:
        print('\033[32;1m解锁用户\033[0m'.center(50, '-'))
        with open(settings._db_users_dict, 'r+') as f_users_dict:
            user_dict = json.load(f_users_dict)
            for key in user_dict:
                if user_dict[key]['locked'] == 0:
                    print('\033[32;1m系统用户【%s】\t\t锁定状态:【未锁定】\033[0m' % key)
                else:
                    print('\033[31;1m系统用户【%s】\t\t锁定状态:【已锁定】\033[0m' % key)
            if_lock = input(
                '\033[34;1m是否要进行用户解锁 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_lock == 'y':
                will_unlock_user = input('\033[34;1m输入要解锁的用户名:\033[0m')
                if will_unlock_user in user_dict.keys():
                    if user_dict[will_unlock_user]['locked'] == 1:
                        user_dict[will_unlock_user]['locked'] = 0
                        dict = json.dumps(user_dict)
                        f_users_dict.seek(0)
                        f_users_dict.truncate(0)
                        f_users_dict.write(dict)
                        print('\033[32;1m用户%s解锁成功!\033[0m' % will_unlock_user)
                    else:
                        print('\033[31;1m此次解锁失败,用户%s此前并未锁定!\033[0m' %
                              will_unlock_user)
                else:
                    print('\033[31;1m用户%s不存在!' % will_unlock_user)
            elif if_lock == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 7
0
def user_create(address='None', locked=0, creditcard=0):  # 创建用户
    while True:
        print('开始创建用户'.center(50, '-'))
        with open(settings._db_users_dict, 'r+')as f_user_dict:
            users_dict = json.load(f_user_dict)
            for key in users_dict:
                print('系统已有用户【%s】' % key)
            if_creat = input('\033[34;1m是否要创建新用户 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_creat == 'y':
                username = input('\033[34;1m请输入要添加的账户的用户名:\033[0m')
                password = input('\033[34;1m请输入要添加的账户的密码:\033[0m')
                if username not in users_dict.keys():
                    if len(username.strip()) > 0:
                        if len(password.strip()) > 0:
                            users_dict[username] = {"username": username, "password": password, "creditcard": creditcard
                                                    , "address": address, "locked": locked}
                            dict = json.dumps(users_dict)
                            f_user_dict.seek(0)
                            f_user_dict.truncate(0)
                            f_user_dict.write(dict)
                            print('\033[32;1m创建用户%s成功!\033[0m' % username)
                        else:
                            print('\033[31;1m密码输入为空,请重新输入!\033[0m')
                    else:
                        print('\033[31;1m用户名输入格式有误,请重新输入!\033[0m')
                else:
                    print('\033[31;1m用户%s已经存在!\033[0m')
            elif if_creat == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 8
0
def unlock_creditcard():  # 解冻信用卡模块
    while True:
        print('\033[32;1m解冻信用卡\033[0m'.center(50, '-'))
        with open(settings._db_credit_dict, 'r+') as f_credit_dict:
            credit_dict = json.load(f_credit_dict)
            for key in credit_dict:
                if credit_dict[key]['locked'] == 0:
                    print('\033[32;1m信用卡账户【%s】\t\t冻结状态:【未冻结】' % key)
                else:
                    print('\033[31;1m信用卡账户【%s】\t\t冻结状态:【已冻结】' % key)
            if_lock = input('\033[34;1m是否要进行信用卡冻结 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_lock == 'y':
                will_lock_credit = input('\033[34;1m输入要解冻的信用卡账号:\033[0m')
                if will_lock_credit in credit_dict.keys():
                    if credit_dict[will_lock_credit]['locked'] == 1:
                        credit_dict[will_lock_credit]['locked'] = 0
                        dic = json.dumps(credit_dict)
                        f_credit_dict.seek(0)
                        f_credit_dict.truncate(0)
                        f_credit_dict.write(dic)
                        print('\033[32;1m信用卡账号%s解冻成功\033[0m' % will_lock_credit)
                    else:
                        print('\033[31;1m信用卡账号%s解冻失败,该账号此前未被冻结!\033[0m' % will_lock_credit)
                else:
                    print('\033[31;1m信用卡账号%s不存在!' % will_lock_credit)
            elif if_lock == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 9
0
def unlock_creditcard():  # 解冻信用卡模块
    while True:
        print('\033[32;1m解冻信用卡\033[0m'.center(50, '-'))
        with open(settings._db_credit_dict, 'r+') as f_credit_dict:
            credit_dict = json.load(f_credit_dict)
            for key in credit_dict:
                if credit_dict[key]['locked'] == 0:
                    print('\033[32;1m信用卡账户【%s】\t\t冻结状态:【未冻结】' % key)
                else:
                    print('\033[31;1m信用卡账户【%s】\t\t冻结状态:【已冻结】' % key)
            if_lock = input(
                '\033[34;1m是否要进行信用卡冻结 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_lock == 'y':
                will_lock_credit = input('\033[34;1m输入要解冻的信用卡账号:\033[0m')
                if will_lock_credit in credit_dict.keys():
                    if credit_dict[will_lock_credit]['locked'] == 1:
                        credit_dict[will_lock_credit]['locked'] = 0
                        dic = json.dumps(credit_dict)
                        f_credit_dict.seek(0)
                        f_credit_dict.truncate(0)
                        f_credit_dict.write(dic)
                        print('\033[32;1m信用卡账号%s解冻成功\033[0m' %
                              will_lock_credit)
                    else:
                        print('\033[31;1m信用卡账号%s解冻失败,该账号此前未被冻结!\033[0m' %
                              will_lock_credit)
                else:
                    print('\033[31;1m信用卡账号%s不存在!' % will_lock_credit)
            elif if_lock == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 10
0
def update_password(current_user):  # 修改登录密码
    while True:
        print('\033[32;1m修改登录密码\033[0m'.center(40, '-'))
        print('当前用户:\t%s\n当前密码:\t***' % current_user)
        if_update = input('\033[34;0m是否要修改 %s 登录密码 确定【Y】/返回【B】:' %
                          current_user).strip().lower()
        if if_update == 'y':
            with open(settings._db_users_dict, 'r+') as f_users_dict:
                users_dict = json.load(f_users_dict)
                password = users_dict[current_user]['password']
                old_pwd = input('\033[34;1m请输入原来的密码:\033[0m')
                if old_pwd == password:
                    new_pwd = input('\033[34;1m请输入新密码:')
                    again_new_pwd = input('\033[34;1m请再次输入新密码:')
                    if new_pwd == again_new_pwd:
                        users_dict[current_user]['password'] = new_pwd
                        dict = json.dumps(users_dict)
                        f_users_dict.seek(0)
                        f_users_dict.truncate(0)
                        f_users_dict.write(dict)
                        print('\033[32;1m用户%s密码修改成功!' % current_user)
                    else:
                        print('\033[31;1m输入的两次密码不一致!\033[0m')
                else:
                    print('\033[31;1m密码输入错误!\033[0m')

        elif if_update == 'b':
            break
        else:
            errorlog.log('error', logging.INFO)
Ejemplo n.º 11
0
def transfer(current_creditcard):  # 信用卡转账
    while True:
        print('\033[32;1m转账\033[0m'.center(40, '-'))
        if_trans = input(
            '\033[34;1m 是否进行转账 确定【Y】/返回【B】:\033[0m').strip().lower()
        if if_trans == 'y':
            with open(settings._db_credit_dict, 'r+') as f_credit_dict:
                credit_dict = json.load(f_credit_dict)
                current_limit = credit_dict[current_creditcard]['limit']
                transfer_creditcard = input('\033[34;1m输入要转账的银行卡卡号:\033[0m')
                if transfer_creditcard.isdigit():
                    if len(transfer_creditcard) == 6:
                        if transfer_creditcard in credit_dict.keys():
                            again_credit = input('\033[34;1m请再次确认转账的银行卡卡号:')
                            if again_credit == transfer_creditcard:
                                transfer_cash = input('\033[34;1m请输入要转账的金额:')
                                if transfer_cash.isdigit():
                                    transfer_cash = int(transfer_cash)
                                    if transfer_cash <= current_limit:
                                        credit_dict[current_creditcard][
                                            'limit'] -= transfer_cash
                                        credit_dict[transfer_creditcard][
                                            'limit'] += transfer_cash
                                        dict = json.dumps(credit_dict)
                                        f_credit_dict.seek(0)
                                        f_credit_dict.truncate(0)
                                        f_credit_dict.write(dict)
                                        record = '\033[32;1m转账卡号 %s 金额 ¥%s 转账成功!\033[0m' % \
                                                 (transfer_creditcard, transfer_cash)
                                        print(record, '\n')
                                        creditcard_record(
                                            current_creditcard, record)
                                    else:
                                        print('\033[31;1m 余额不足 转账失败!\033[0m')
                                else:
                                    print('\033[31;1m输入金额有误!\033[0m')
                            else:
                                print('\033[31;1m两次输入的银行卡卡号不一致!\033[0m')
                        else:
                            print('\033[31;1m您输入的银行卡卡号不存在!\033[0m')
                    else:
                        print('\033[31;1m输入的银行卡卡号有误!\033[0m')
                else:
                    print('\033[31;1m输入的银行卡卡号有误!\033[0m')
        elif if_trans == 'b':
            break
        else:
            errorlog.log('error', logging.INFO)
Ejemplo n.º 12
0
def pay_shopping(current_user):  # 支付模块
    while True:
        sum_money = 0
        print('\033[32;1m购物结算\033[0m'.center(40, '-'))
        with open(settings._db_shopping_car, 'r+') as f_shopping_car:
            shopping_dict = json.load(f_shopping_car)
            for item in shopping_dict:
                sum_money += int(item[1])
            if_pay = input('\033[34;1m当前商品总额:%s 是否进行支付 确定【Y】/返回【B】:\033[0m' %
                           sum_money).strip().lower()
            if if_pay == 'y':
                with open(settings._db_users_dict, 'r+') as f_users_dict:
                    users_dict = json.load(f_users_dict)
                    creditcard = users_dict[current_user]['creditcard']
                    if creditcard == 0:
                        print('\033[31;1m账号 %s还未绑定信用卡,请到个人中心进行信用卡绑定\033[0m' %
                              current_user)
                    else:
                        with open(settings._db_credit_dict,
                                  'r+') as f_credit_dict:
                            credit_dict = json.load(f_credit_dict)
                            limit = credit_dict[creditcard]['limit']
                            limit_new = limit - sum_money
                            if limit_new >= 0:
                                res = auth_creditcard(creditcard)
                                if res == True:
                                    credit_dict[creditcard][
                                        'limit'] = limit_new
                                    dic = json.dumps(credit_dict)
                                    f_credit_dict.seek(0)
                                    f_credit_dict.truncate(0)
                                    f_credit_dict.write(dic)
                                    value = '购物支付 %s' % (sum_money)
                                    print('\033[32;1m支付成功,当前余额 ¥%s\033[0m' %
                                          limit_new)
                                    shoppingcar_record(current_user,
                                                       shopping_dict)
                                    creditcard_record(creditcard, value)
                                    empty_shopping_car()
                            else:
                                print(
                                    '\033[31;1m当前信用卡额度 %s 不足以支付当前账单,可选择绑定其他信用卡进行支付!'
                                    % limit_new)
            elif if_pay == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 13
0
def creditcard_create(limit=15000, locked=0):  # 信用卡发放模块
    while True:
        print('进行信用卡发放'.center(50, '-'))
        with open(settings._db_credit_dict, 'r+') as f_credit_dict:
            credit_dict = json.load(f_credit_dict)
            for key in credit_dict:
                print("系统已有信用卡【%s】 \t 持卡人【%s】" %
                      (key, credit_dict[key]['personinfo']))
            if_credit = input(
                '\033[34;1m是否发放新的信用卡 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_credit == 'y':
                credit_card = input(
                    '\033[34;1m请输入将要发放的信用卡的卡号(6位数字):\033[0m').strip()
                if credit_card not in credit_dict.keys():
                    if credit_card.isdigit() and len(credit_card) == 6:
                        password = input('\033[34;1m请为要发放的信用卡账号设置密码:\033[0m')
                        if len(password.strip()) > 0:
                            personinfo = input(
                                '\033[34;1m请输入要发放的信用卡申请人的名字:\033[0m')
                            if len(personinfo.strip()) > 0:
                                credit_dict[credit_card] = {
                                    "personinfo": personinfo,
                                    "password": password,
                                    'limit': limit,
                                    'locked': locked,
                                    'limitcash': limit // 2,
                                    'deflimit': limit,
                                    'creditcard': credit_card
                                }
                                dict = json.dumps(credit_dict)
                                f_credit_dict.seek(0)
                                f_credit_dict.truncate(0)
                                f_credit_dict.write(dict)
                                print('\033[32;1m信用卡%s发放成功,额度%s!\033[0m' %
                                      (credit_card, limit))
                            else:
                                print('\033[31;1m申请人姓名输入为空!\033[0m')
                        else:
                            print('\033[31;1m账号密码输入为空!\033[0m')
                    else:
                        print('\033[31;1m信用卡%s输入格式有误!\033[0m' % credit_card)
                else:
                    print('\033[31;1m信用卡%s已经存在!' % credit_card)
            elif if_credit == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 14
0
def transfer(current_creditcard):  # 信用卡转账
    while True:
        print('\033[32;1m转账\033[0m'.center(40, '-'))
        if_trans = input('\033[34;1m 是否进行转账 确定【Y】/返回【B】:\033[0m').strip().lower()
        if if_trans == 'y':
            with open(settings._db_credit_dict, 'r+') as f_credit_dict:
                credit_dict = json.load(f_credit_dict)
                current_limit = credit_dict[current_creditcard]['limit']
                transfer_creditcard = input('\033[34;1m输入要转账的银行卡卡号:\033[0m')
                if transfer_creditcard.isdigit():
                    if len(transfer_creditcard) == 6:
                        if transfer_creditcard in credit_dict.keys():
                            again_credit = input('\033[34;1m请再次确认转账的银行卡卡号:')
                            if again_credit == transfer_creditcard:
                                transfer_cash = input('\033[34;1m请输入要转账的金额:')
                                if transfer_cash.isdigit():
                                    transfer_cash = int(transfer_cash)
                                    if transfer_cash <= current_limit:
                                        credit_dict[current_creditcard]['limit'] -= transfer_cash
                                        credit_dict[transfer_creditcard]['limit'] += transfer_cash
                                        dict = json.dumps(credit_dict)
                                        f_credit_dict.seek(0)
                                        f_credit_dict.truncate(0)
                                        f_credit_dict.write(dict)
                                        record = '\033[32;1m转账卡号 %s 金额 ¥%s 转账成功!\033[0m' % \
                                                 (transfer_creditcard, transfer_cash)
                                        print(record, '\n')
                                        creditcard_record(current_creditcard, record)
                                    else:
                                        print('\033[31;1m 余额不足 转账失败!\033[0m')
                                else:
                                    print('\033[31;1m输入金额有误!\033[0m')
                            else:
                                print('\033[31;1m两次输入的银行卡卡号不一致!\033[0m')
                        else:
                            print('\033[31;1m您输入的银行卡卡号不存在!\033[0m')
                    else:
                        print('\033[31;1m输入的银行卡卡号有误!\033[0m')
                else:
                    print('\033[31;1m输入的银行卡卡号有误!\033[0m')
        elif if_trans == 'b':
            break
        else:
            errorlog.log('error', logging.INFO)
Ejemplo n.º 15
0
def update_limit():  # 修改信用卡额度
    while True:
        print('\033[31;1m修改信用卡额度\033[0m'.center(50, '-'))
        with open(settings._db_credit_dict, 'r+') as f_credit_dict:
            credit_dict = json.load(f_credit_dict)
            for key in credit_dict:
                limitcash = credit_dict[key]['limitcash']
                print('信用卡【%s】\t目前可用额度:【¥%s】\t取现额度:【¥%s】' %
                      (key, credit_dict[key]['limit'], limitcash))
            if_update = input(
                '\033[34;1m是否进行信用卡额度调整 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_update == 'y':
                creditcard = input('\033[34;1m输入要修改的信用卡的卡号:\033[1m').strip()
                if creditcard in credit_dict.keys():
                    limit_cash = input('\033[34;1m输入额度修改后的金额(至少5000¥):\033[1m')
                    if limit_cash.isdigit():
                        limit_default = credit_dict[creditcard]['limit']
                        limit_cash = int(limit_cash)
                        if limit_cash >= 5000:
                            update = limit_cash - limit_default
                            credit_dict[creditcard][
                                'limitcash'] += update // 2  # 取现额度调整
                            credit_dict[creditcard][
                                'limit'] += update  # 可用额度调整
                            credit_dict[creditcard][
                                'deflimit'] = limit_cash  # 信用卡原本的默认额度
                            dict = json.dumps(credit_dict)
                            f_credit_dict.seek(0)
                            f_credit_dict.truncate(0)
                            f_credit_dict.write(dict)
                            print('\033[32;1m信用卡%s额度修改成功!\033[0m' % creditcard)
                        else:
                            print('\033[31;1m输入金额 ¥%s 小于¥5000\033[0m' %
                                  limit_cash)
                    else:
                        print('\033[31;1m输入金额 ¥%s 格式有误\033[0m' % limit_cash)
                else:
                    print('\033[31;1m信用卡【%s】不存在\033[0m' % creditcard)
            elif if_update == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 16
0
def cash_advance(current_creditcard):  # 提现操作(传入的值是当前操作的信用卡账号)
    while True:
        print('\033[32;1m提现\033[0m'.center(40, '-'))
        with open(settings._db_credit_dict, 'r+') as f_credit_dict:
            credit_dict = json.load(f_credit_dict)
            limit = credit_dict[current_creditcard]['limit']
            limitcash = credit_dict[current_creditcard]['limitcash']
            print('信用卡号:\t【%s】\n提现额度:\t【¥%s】' %
                  (current_creditcard, limitcash))
            details_tip()
            if_cash = input(
                '\033[34;1m是否进行提现 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_cash == 'y':
                cash = input('\033[34;1m输入要提现的金额 收取%5手续费\033[0m:')
                if cash.isdigit():
                    cash = int(cash)
                    if cash != 0:
                        if cash <= limitcash:
                            limitcash -= int(cash * 1.05)
                            limit -= int(cash * 1.05)
                            credit_dict[current_creditcard]['limit'] = limit
                            credit_dict[current_creditcard][
                                'limitcash'] = limitcash
                            dict = json.dumps(credit_dict)
                            f_credit_dict.seek(0)
                            f_credit_dict.truncate(0)
                            f_credit_dict.write(dict)
                            record = '\033[31;1m提现¥%s手续费¥%s\033[0m' % (
                                cash, int(cash * 0.05))
                            print(record, '\n')
                            creditcard_record(current_creditcard, record)
                        else:
                            print('\033[31;1m超出信用卡提现额度!\033[0m')
                    else:
                        print('\033[31;1m提现额度不能为空!\033[0m')
                else:
                    print('\033[31;1m格式输入有误!\033[0m')
            elif if_cash == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 17
0
def update_address(current_user):  # 修改个人资料中收货地址信息
    while True:
        print('\033[32;1m修改个人资料\033[0m'.center(40, '-'))
        with open(settings._db_users_dict, 'r+') as f_users_dict:
            users_dict = json.load(f_users_dict)
            address = users_dict[current_user]['address']
            print('当前用户:\t%s\n当前收货地址:\t%s\n' % (current_user, address))
            if_update = input('\033[34;1m是否要修改用户%s的收货地址 确定【Y】/返回【B】:').strip().lower()
            if if_update == 'y':
                address_new = input('\033[34;0m输入新的收货地址:\033[0m')
                users_dict[current_user]['address'] = address_new
                dic = json.dumps(users_dict)
                f_users_dict.seek(0)
                f_users_dict.truncate(0)
                f_users_dict.write(dic)
                print('\033[32;1m用户%s的收货地址修改成功!' % current_user)

            elif if_update == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 18
0
def pay_shopping(current_user):  # 支付模块
    while True:
        sum_money = 0
        print('\033[32;1m购物结算\033[0m'.center(40, '-'))
        with open(settings._db_shopping_car, 'r+') as f_shopping_car:
            shopping_dict = json.load(f_shopping_car)
            for item in shopping_dict:
                sum_money += int(item[1])
            if_pay = input('\033[34;1m当前商品总额:%s 是否进行支付 确定【Y】/返回【B】:\033[0m' % sum_money).strip().lower()
            if if_pay == 'y':
                with open(settings._db_users_dict, 'r+') as f_users_dict:
                    users_dict = json.load(f_users_dict)
                    creditcard = users_dict[current_user]['creditcard']
                    if creditcard == 0:
                        print('\033[31;1m账号 %s还未绑定信用卡,请到个人中心进行信用卡绑定\033[0m' % current_user)
                    else:
                        with open(settings._db_credit_dict, 'r+') as f_credit_dict:
                            credit_dict = json.load(f_credit_dict)
                            limit = credit_dict[creditcard]['limit']
                            limit_new = limit - sum_money
                            if limit_new >= 0:
                                res = auth_creditcard(creditcard)
                                if res == True:
                                    credit_dict[creditcard]['limit'] = limit_new
                                    dic = json.dumps(credit_dict)
                                    f_credit_dict.seek(0)
                                    f_credit_dict.truncate(0)
                                    f_credit_dict.write(dic)
                                    value = '购物支付 %s' % (sum_money)
                                    print('\033[32;1m支付成功,当前余额 ¥%s\033[0m' % limit_new)
                                    shoppingcar_record(current_user, shopping_dict)
                                    creditcard_record(creditcard, value)
                                    empty_shopping_car()
                            else:
                                print('\033[31;1m当前信用卡额度 %s 不足以支付当前账单,可选择绑定其他信用卡进行支付!'
                                      % limit_new)
            elif if_pay == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 19
0
def update_address(current_user):  # 修改个人资料中收货地址信息
    while True:
        print('\033[32;1m修改个人资料\033[0m'.center(40, '-'))
        with open(settings._db_users_dict, 'r+') as f_users_dict:
            users_dict = json.load(f_users_dict)
            address = users_dict[current_user]['address']
            print('当前用户:\t%s\n当前收货地址:\t%s\n' % (current_user, address))
            if_update = input(
                '\033[34;1m是否要修改用户%s的收货地址 确定【Y】/返回【B】:').strip().lower()
            if if_update == 'y':
                address_new = input('\033[34;0m输入新的收货地址:\033[0m')
                users_dict[current_user]['address'] = address_new
                dic = json.dumps(users_dict)
                f_users_dict.seek(0)
                f_users_dict.truncate(0)
                f_users_dict.write(dic)
                print('\033[32;1m用户%s的收货地址修改成功!' % current_user)

            elif if_update == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 20
0
def bind_creditcard(current_user):  # 信用卡绑定
    while True:
        print('\033[32;1m信用卡绑定中心\033[0m'.center(40, '-'))
        with open(settings._db_users_dict, 'r+') as f_users_dict:
            users_dict = json.load(f_users_dict)
            creditcard = users_dict[current_user]['creditcard']
            if creditcard == 0:
                print('当前用户:    %s' % current_user)
                print('信用卡绑定状态:\033[31;1m未绑定\033[0m')
            else:
                print('当前用户:    %s' % current_user)
                print('信用卡绑定:   %s' % creditcard)
            if_update = input(
                '\033[34;1m是否要修改信用卡绑定 确定【Y】/返回【B】\033[0m:').strip().lower()
            if if_update == 'y':
                creditcard_new = input('\033[34;1m请输入要绑定的信用卡卡号(6位数字):\033[0m')
                if creditcard_new.isdigit() and len(creditcard_new) == 6:
                    with open(settings._db_credit_dict, 'r+') as f_credit_dict:
                        credit_dict = json.load(f_credit_dict)
                        # print(credit_dict.keys())
                        if str(creditcard_new) in credit_dict.keys():
                            users_dict[current_user][
                                'creditcard'] = creditcard_new
                            dict = json.dumps(users_dict)
                            f_users_dict.seek(0)
                            f_users_dict.truncate(0)
                            f_users_dict.write(dict)
                            print('\033[32;1m信用卡%s绑定成功!\033[0m' %
                                  creditcard_new)
                        else:
                            print('\033[31;1m输入的信用卡卡号不存在!\033[0m')
                else:
                    print('\033[31;1m信用卡格式输入有误!\033[0m')

            elif if_update == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 21
0
def update_limit():  # 修改信用卡额度
    while True:
        print('\033[31;1m修改信用卡额度\033[0m'.center(50, '-'))
        with open(settings._db_credit_dict, 'r+') as f_credit_dict:
            credit_dict = json.load(f_credit_dict)
            for key in credit_dict:
                limitcash = credit_dict[key]['limitcash']
                print('信用卡【%s】\t目前可用额度:【¥%s】\t取现额度:【¥%s】'
                      % (key, credit_dict[key]['limit'], limitcash))
            if_update = input('\033[34;1m是否进行信用卡额度调整 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_update == 'y':
                creditcard = input('\033[34;1m输入要修改的信用卡的卡号:\033[1m').strip()
                if creditcard in credit_dict.keys():
                    limit_cash = input('\033[34;1m输入额度修改后的金额(至少5000¥):\033[1m')
                    if limit_cash.isdigit():
                        limit_default = credit_dict[creditcard]['limit']
                        limit_cash = int(limit_cash)
                        if limit_cash >= 5000:
                            update = limit_cash - limit_default
                            credit_dict[creditcard]['limitcash'] += update//2  # 取现额度调整
                            credit_dict[creditcard]['limit'] += update  # 可用额度调整
                            credit_dict[creditcard]['deflimit'] = limit_cash  # 信用卡原本的默认额度
                            dict = json.dumps(credit_dict)
                            f_credit_dict.seek(0)
                            f_credit_dict.truncate(0)
                            f_credit_dict.write(dict)
                            print('\033[32;1m信用卡%s额度修改成功!\033[0m' % creditcard)
                        else:
                            print('\033[31;1m输入金额 ¥%s 小于¥5000\033[0m' % limit_cash)
                    else:
                        print('\033[31;1m输入金额 ¥%s 格式有误\033[0m' % limit_cash)
                else:
                    print('\033[31;1m信用卡【%s】不存在\033[0m' % creditcard)
            elif if_update == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 22
0
def user_create(address='None', locked=0, creditcard=0):  # 创建用户
    while True:
        print('开始创建用户'.center(50, '-'))
        with open(settings._db_users_dict, 'r+') as f_user_dict:
            users_dict = json.load(f_user_dict)
            for key in users_dict:
                print('系统已有用户【%s】' % key)
            if_creat = input(
                '\033[34;1m是否要创建新用户 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_creat == 'y':
                username = input('\033[34;1m请输入要添加的账户的用户名:\033[0m')
                password = input('\033[34;1m请输入要添加的账户的密码:\033[0m')
                if username not in users_dict.keys():
                    if len(username.strip()) > 0:
                        if len(password.strip()) > 0:
                            users_dict[username] = {
                                "username": username,
                                "password": password,
                                "creditcard": creditcard,
                                "address": address,
                                "locked": locked
                            }
                            dict = json.dumps(users_dict)
                            f_user_dict.seek(0)
                            f_user_dict.truncate(0)
                            f_user_dict.write(dict)
                            print('\033[32;1m创建用户%s成功!\033[0m' % username)
                        else:
                            print('\033[31;1m密码输入为空,请重新输入!\033[0m')
                    else:
                        print('\033[31;1m用户名输入格式有误,请重新输入!\033[0m')
                else:
                    print('\033[31;1m用户%s已经存在!\033[0m')
            elif if_creat == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 23
0
def cash_advance(current_creditcard):  # 提现操作(传入的值是当前操作的信用卡账号)
    while True:
        print('\033[32;1m提现\033[0m'.center(40, '-'))
        with open(settings._db_credit_dict, 'r+') as f_credit_dict:
            credit_dict = json.load(f_credit_dict)
            limit = credit_dict[current_creditcard]['limit']
            limitcash = credit_dict[current_creditcard]['limitcash']
            print('信用卡号:\t【%s】\n提现额度:\t【¥%s】' % (current_creditcard, limitcash))
            details_tip()
            if_cash = input('\033[34;1m是否进行提现 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_cash == 'y':
                cash = input('\033[34;1m输入要提现的金额 收取%5手续费\033[0m:')
                if cash.isdigit():
                    cash = int(cash)
                    if cash != 0:
                        if cash <= limitcash:
                            limitcash -= int(cash*1.05)
                            limit -= int(cash*1.05)
                            credit_dict[current_creditcard]['limit'] = limit
                            credit_dict[current_creditcard]['limitcash'] = limitcash
                            dict = json.dumps(credit_dict)
                            f_credit_dict.seek(0)
                            f_credit_dict.truncate(0)
                            f_credit_dict.write(dict)
                            record = '\033[31;1m提现¥%s手续费¥%s\033[0m' % (cash, int(cash*0.05))
                            print(record, '\n')
                            creditcard_record(current_creditcard, record)
                        else:
                            print('\033[31;1m超出信用卡提现额度!\033[0m')
                    else:
                        print('\033[31;1m提现额度不能为空!\033[0m')
                else:
                    print('\033[31;1m格式输入有误!\033[0m')
            elif if_cash == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 24
0
def creditcard_create(limit=15000, locked=0):  # 信用卡发放模块
    while True:
        print('进行信用卡发放'.center(50, '-'))
        with open(settings._db_credit_dict, 'r+') as f_credit_dict:
            credit_dict = json.load(f_credit_dict)
            for key in credit_dict:
                print("系统已有信用卡【%s】 \t 持卡人【%s】" % (key, credit_dict[key]['personinfo']))
            if_credit = input('\033[34;1m是否发放新的信用卡 确定【Y】/返回【B】:\033[0m').strip().lower()
            if if_credit == 'y':
                credit_card = input('\033[34;1m请输入将要发放的信用卡的卡号(6位数字):\033[0m').strip()
                if credit_card not in credit_dict.keys():
                    if credit_card.isdigit() and len(credit_card) == 6:
                        password = input('\033[34;1m请为要发放的信用卡账号设置密码:\033[0m')
                        if len(password.strip())>0:
                            personinfo = input('\033[34;1m请输入要发放的信用卡申请人的名字:\033[0m')
                            if len(personinfo.strip()) > 0:
                                credit_dict[credit_card] = {"personinfo": personinfo, "password": password, 'limit':
                                                            limit, 'locked': locked, 'limitcash': limit//2,
                                                            'deflimit': limit, 'creditcard':credit_card}
                                dict = json.dumps(credit_dict)
                                f_credit_dict.seek(0)
                                f_credit_dict.truncate(0)
                                f_credit_dict.write(dict)
                                print('\033[32;1m信用卡%s发放成功,额度%s!\033[0m' % (credit_card, limit))
                            else:
                                print('\033[31;1m申请人姓名输入为空!\033[0m')
                        else:
                            print('\033[31;1m账号密码输入为空!\033[0m')
                    else:
                        print('\033[31;1m信用卡%s输入格式有误!\033[0m'% credit_card)
                else:
                    print('\033[31;1m信用卡%s已经存在!'% credit_card)
            elif if_credit == 'b':
                break
            else:
                errorlog.log('error', logging.INFO)
Ejemplo n.º 25
0
                               '3. 修改个人信息\n'
                               '4. 修改银行卡绑定\n'
                               'b. 返回\n')
                         choice_id = input('\033[34;1m选择要进入模式的ID:\033[0m').strip().lower()
                         if choice_id == '1':
                             shopping.cat_shopping_record(current_user)
                         elif choice_id == '2':
                             shopping.update_password(current_user)
                         elif choice_id == '3':
                             shopping.update_address(current_user)
                         elif choice_id == '4':
                             shopping.bind_creditcard(current_user)
                         elif choice_id == 'b':
                             break
                         else:
                             errorlog.log('error', logging.INFO)
                             # print('\033[31;1m无效的输入!\033[0m')
                 elif choice_id == 'b':
                     break
                 else:
                     errorlog.log('error', logging.INFO)
                     # print('\033[31;1m无效的输入!\033[0m')
 elif choice_id == '2':
     res = authentication.credit_auth()
     if res:
         if res[0] == True:
             current_creditcard = res[1]
             while True:
                 print('\033[36;1m信用卡中心\033[0m'.center(50, '='),
                       '\n1. 我的信用卡\n'
                       '2. 提现\n'
Ejemplo n.º 26
0
                             '4. 修改银行卡绑定\n'
                             'b. 返回\n')
                         choice_id = input('\033[34;1m选择要进入模式的ID:\033[0m'
                                           ).strip().lower()
                         if choice_id == '1':
                             shopping.cat_shopping_record(current_user)
                         elif choice_id == '2':
                             shopping.update_password(current_user)
                         elif choice_id == '3':
                             shopping.update_address(current_user)
                         elif choice_id == '4':
                             shopping.bind_creditcard(current_user)
                         elif choice_id == 'b':
                             break
                         else:
                             errorlog.log('error', logging.INFO)
                             # print('\033[31;1m无效的输入!\033[0m')
                 elif choice_id == 'b':
                     break
                 else:
                     errorlog.log('error', logging.INFO)
                     # print('\033[31;1m无效的输入!\033[0m')
 elif choice_id == '2':
     res = authentication.credit_auth()
     if res:
         if res[0] == True:
             current_creditcard = res[1]
             while True:
                 print(
                     '\033[36;1m信用卡中心\033[0m'.center(50, '='),
                     '\n1. 我的信用卡\n'