Example #1
0
def user_option(username):
    while True:
        print("""请选择以下选项进行操作:
        1.取款
        2.还款
        3.转账
        4.查看账单
        5.退出
    """)
        try:
            user_choice = int(input('请输入你的操作项:').strip())
            if user_choice == 1:
                handles.transact_amount(username, user_choice)
            elif user_choice == 2:
                handles.transact_amount(username, user_choice)
            elif user_choice == 3:
                handles.transact_amount(username, user_choice)
            elif user_choice == 4:
                handles.audit_account(username)
            elif user_choice == 5:
                loger.loger('ATM.var', 'root', settings.time_now, '-', 'info',
                            'Exit ATM')
                break
        except ValueError:
            print("请输入正确的操作项")
def audit_atm_record(log_file_path='ATM.var'):
    with open(os.path.join(settings.log_dir_path, log_file_path),
              'r') as files:
        atm_info_list = files.readlines()
    for i in atm_info_list:
        line = i.strip().split()
        print(' '.join(line))
    loger.loger('ATM.var', 'root', settings.time_now, '-', 'info',
                'audit_atm_record')
def unlock_user(userinfo, user_path):
    while True:
        user = input("请输入用户名:").strip()
        if user in userinfo:
            userinfo[user]['try_times'] = 0
            print("用户%s已解锁" % user)
            dump_file.dump_file(userinfo, user_path)
            loger.loger('ATM.var', 'root', settings.time_now, '-', 'warning',
                        "unlock_user:%s" % user)
            return True
        else:
            print("查无此用户,请重新输入")
def chang_creadit(userinfo, user_path):
    while True:
        user = input("请输入用户名:").strip()
        if user in userinfo:
            credit = input("请输入用户额度:").strip()
            userinfo[user]['credit'] = credit
            print("用户%s额度已经调整" % user)
            dump_file.dump_file(userinfo, user_path)
            loger.loger('ATM.var', 'root', settings.time_now, '-', 'warning',
                        "chang_atm_user_credit:%s" % user)
            return True
        else:
            print("查无此用户")
def del_user(userinfo, user_path):
    while True:
        user = input("请输入用户名:").strip()
        if user in userinfo:
            if len(userinfo) > 1:
                del userinfo[user]
                print("用户%s已删除" % user)
                dump_file.dump_file(userinfo, user_path)
                loger.loger('ATM.var', 'root', settings.time_now, '-',
                            'warning', "del_user:%s" % user)
                return True
            else:
                print("没有更多的用户可删除")
        else:
            print("查无此用户,请重新输入")
def search_user(user_type, userinfo, user_path):
    user = input("请输入用户名:").strip()
    if user in userinfo:
        if user_type == 1:
            print("用户名:%s\n密码:%s\n登录次数:%s\n" %
                  (user, userinfo[user]['pwd'], userinfo[user]['try_times']))
            loger.loger('ATM.var', 'root', settings.time_now, '-', 'info',
                        "search_shop_user:%s" % user)
        elif user_type == 2:
            print("用户名:%s\n密码:%s\n登录次数:%s\n信用额度:%s\n余额:%s" %
                  (user, userinfo[user]['pwd'], userinfo[user]['try_times'],
                   userinfo[user]['credit'], userinfo[user]['balance']))
            loger.loger('ATM.var', 'root', settings.time_now, '-', 'info',
                        "search_atm_user:%s" % user)
    else:
        print("查无此用户,请重新输入")
Example #7
0
def audit_account(username):
    if os.path.exists(os.path.join(settings.log_dir_path,username)):
        with open(os.path.join(settings.log_dir_path,username),'r') as files:
            accountinfo_list = files.readlines()
        total = 0
        print("{0} {1} {2} {3} {4}".format( "帐号".ljust(3), "时间".center(16),"操作".center(2),"金额".rjust(3),"利息".rjust(3)))
        for i in accountinfo_list:
            line = i.strip().split()
            new = line[1].split('-')
            if username  == line[0] and new[1] == str(datetime.date.today()).split('-')[1]:
                print(' '.join(line))
                consume = int(line[4])
                total += consume
        print("*" * 50)
        print("当月消费金额合计:{0}".format(total))
        loger.loger('ATM.var',username,settings.time_now,'-',"info",'audit_account')
    else:
        print("该用户%s当前没有生成账单记录" %username)
        loger.loger('ATM.var',username,settings.time_now,'-','error','The user currently has no billing record')
def add_user(user_type,
             userinfo,
             user_path,
             try_times=0,
             credit=None,
             balance=None):
    break_flag = True
    while break_flag:
        new_user = input("请输入新用户名称:").strip()
        if len(new_user) == 0:
            continue
        if new_user in userinfo:
            print("用户名{0}已经存在,请重新输入!".format(new_user))
        else:
            new_user_login_pwd = input("请输入新用户密码:")
            if len(new_user_login_pwd) == 0: continue
            confirm_new_user_login_pwd = input("请再次新用户输入密码:")
            if len(confirm_new_user_login_pwd) == 0: continue
            if new_user_login_pwd == confirm_new_user_login_pwd:
                if user_type == 1:
                    userinfo[new_user] = {
                        "pwd": new_user_login_pwd,
                        "try_times": 0
                    }
                    loger.loger('ATM.var', 'root', settings.time_now, '-',
                                'info', "add_shop_user:%s" % new_user)
                    break_flag = False
                elif user_type == 2:
                    credit = int(input("请输入新用户额度:").strip())
                    userinfo[new_user] = {
                        "pwd": new_user_login_pwd,
                        "try_times": 0,
                        'credit': credit,
                        'balance': credit
                    }
                    loger.loger('ATM.var', 'root', settings.time_now, '-',
                                'info', "add_atm_user:%s" % new_user)
                    break_flag = False
                print("用户%s添加成功" % new_user)
                dump_file.dump_file(userinfo, user_path)
            else:
                print("两次输入登录密码不一致,请重新输入")
def change_pwd(userinfo, user_path):
    while True:
        user = input("请输入用户:").strip()
        if user in userinfo:
            old_pwd = input("请输入旧密码:").strip()
            if old_pwd == userinfo[user]['pwd']:
                new_pwd = input("请输入新密码:").strip()
                confirm_pwd = input("请再输入一遍新密码:").strip()
                if new_pwd == confirm_pwd:
                    userinfo[user]['pwd'] = new_pwd
                    print("密码修改成功!")
                    dump_file.dump_file(userinfo, user_path)
                    loger.loger('ATM.var', 'root', settings.time_now, '-',
                                'warning', "chang_user_pwd:%s" % user)
                    return True
                else:
                    print("新密码前后输入不一致!请重新输入!")
            else:
                print("旧密码错误,请重新输入!")
        else:
            print("查无此用户,请重新输入")
Example #10
0
def settlement(username):
    # 结算时调用的接口
    bool_value = True
    while bool_value:
        #total = print_shopping_cart(settings.shopping_cart)
        user_balance = int(settings.atm_user_data[username]['balance'])
        if total > user_balance:
            print("余额:{0}".format(user_balance))
            print("余额不足,请充值:")
            bool_value = False
        else:
            print("购物成功")
            settings.atm_user_data[username]['balance'] = int(user_balance -
                                                              total)
            bool_value = False
            dump_file.dump_file(settings.atm_user_data,
                                settings.atm_user_file_path)
            #print(settings.shopping_cart)
            for i in settings.shopping_cart:
                loger.loger(username, username, settings.time_now, i[0],
                            "-" + str(i[1]))
                loger.loger('ATM.var', username, settings.time_now, "-",
                            "info", 'buy ' + i[0])
        loger.loger('ATM.var', username, settings.time_now, '-', 'info',
                    'Exit MALL')
        settings.shopping_cart.clear()
Example #11
0
from public import login, loger
from shop.logic import user_main as shop_user_main
from atm.logic import user_main as atm_user_main
from manager import manager_user

if __name__ == "__main__":
    while True:
        print(""" 请选择以下操作项:
            1.ATM
            2.shop
            3.manager
            4.exit
        """)
        your_choice = input("请输入上述菜单中的选项,进入操作界面:")
        if your_choice == '1':
            loger.loger('ATM.var', 'localhost', settings.time_now, '-', 'info',
                        'entering ATM')
            atm_user_main.user_option()
        elif your_choice == '2':
            loger.loger('ATM.var', 'localhost', settings.time_now, '-', 'info',
                        'entering Mall')
            shop_user_main.go_shopping()
        elif your_choice == '3':
            loger.loger('ATM.var', 'localhost', settings.time_now, '-', 'info',
                        'entering Manager')
            manager_user.user_main()
        elif your_choice == '4':
            loger.loger('ATM.var', 'localhost', settings.time_now, '-', 'info',
                        'exit')
            break
        else:
            print("请输入正确的选项。")
Example #12
0
 def wrapper(*args):
     ret = login(arg1, arg2)
     if ret:
         loger.loger('ATM.var', ret, settings.time_now, '-', 'info',
                     'logging')
         return func(ret, *args)
Example #13
0
def user_main(username):
    while True:
        print(""" 请选择以下操作项:  欢迎超级管理员\033[0;32;0m[%s]\033[0m登录
            1.修改用户密码
            2.添加用户
            3.锁定用户
            4.解锁用户
            5.查看用户信息
            6.删除用户
            7.修改用户信用额度
            8.查看ATM操作记录
            9.退出
        """ % username)
        try:
            your_choice = int(input("请输入上述菜单中的选项,进入操作界面:").strip())
            if your_choice == 1:
                ret = check_user_select()
                if ret == 1:
                    change_pwd(settings.shop_user_data,
                               settings.shop_user_file_path)
                elif ret == 2:
                    change_pwd(settings.atm_user_data,
                               settings.atm_user_file_path)
            elif your_choice == 2:
                ret = check_user_select()
                if ret == 1:
                    add_user(ret, settings.shop_user_data,
                             settings.shop_user_file_path)
                elif ret == 2:
                    add_user(ret, settings.atm_user_data,
                             settings.atm_user_file_path)
            elif your_choice == 3:
                ret = check_user_select()
                if ret == 1:
                    lock_user(settings.shop_user_data,
                              settings.shop_user_file_path)
                elif ret == 2:
                    lock_user(settings.atm_user_data,
                              settings.atm_user_file_path)
            elif your_choice == 4:
                ret = check_user_select()
                if ret == 1:
                    unlock_user(settings.shop_user_data,
                                settings.shop_user_file_path)
                elif ret == 2:
                    unlock_user(settings.atm_user_data,
                                settings.atm_user_file_path)
            elif your_choice == 5:
                ret = check_user_select()
                if ret == 1:
                    search_user(ret, settings.shop_user_data,
                                settings.shop_user_file_path)
                elif ret == 2:
                    search_user(ret, settings.atm_user_data,
                                settings.atm_user_file_path)
            elif your_choice == 6:
                ret = check_user_select()
                if ret == 1:
                    del_user(settings.shop_user_data,
                             settings.shop_user_file_path)
                elif ret == 2:
                    del_user(settings.atm_user_data,
                             settings.atm_user_file_path)
            elif your_choice == 7:
                chang_creadit(settings.atm_user_data,
                              settings.atm_user_file_path)
            elif your_choice == 8:
                audit_atm_record()
            elif your_choice == 9:
                loger.loger('ATM.var', 'root', settings.time_now, '-', 'info',
                            'Exit Manager')
                break
        except ValueError:
            print("请输入以上一个操作项:")
Example #14
0
def transact_amount(account,tran_type):
    if tran_type == 1:
        withdraw = int(input("取钱:").strip())
        user_balance = int(settings.atm_user_data[account]['balance'])
        if withdraw > user_balance:
            print("余额:{0}".format(user_balance))
            print("余额不足,请充值:")
            loger.loger('ATM.var',account,settings.time_now,'-','error','withdraw Balance Insufficient')
        else:
            settings.atm_user_data[account]['balance'] = int(user_balance - (withdraw*1.05))
            dump_file.dump_file(settings.atm_user_data, settings.atm_user_file_path)
            loger.loger(account,account,settings.time_now,'withdraw',"-"+str(withdraw),withdraw*0.05)
            loger.loger('ATM.var',account,settings.time_now,'-','info','withdraw'+"-"+str(withdraw))
    elif tran_type == 2:
        repay = int(input("还款:").strip())
        user_balance = int(settings.atm_user_data[account]['balance'])
        settings.atm_user_data[account]['balance'] = int(user_balance + repay)
        dump_file.dump_file(settings.atm_user_data, settings.atm_user_file_path)
        loger.loger(account,account,settings.time_now,'repay',"+"+str(repay))
        loger.loger('ATM.var',account,settings.time_now,'-','info','repay'+"+"+str(repay))
    elif tran_type == 3:
        transfer = input("转入帐号").strip()
        if transfer in settings.atm_user_data:
            trans_money = int(input("转入金额").strip())
            user_balance = int(settings.atm_user_data[account]['balance'])
            if trans_money > user_balance:
                print("余额:{0}".format(user_balance))
                print("余额不足,请充值:")
                loger.loger('ATM.var',account,settings.time_now,'-','error','transfer Balance Insufficient')
            else:
                transfer_balance = int(settings.atm_user_data[transfer]['balance'])
                withdraw_balance = int(settings.atm_user_data[account]['balance'])
                if  settings.atm_user_data[transfer] == settings.atm_user_data[account]:
                    print("**********转账人与收账人不能相同**********")
                    loger.loger('ATM.var',account,settings.time_now,'-','error','Transfer and accounts can not be the same')
                else:
                    settings.atm_user_data[transfer]['balance'] = int(user_balance + trans_money)
                    settings.atm_user_data[account]['balance'] = int(user_balance - trans_money)
                    dump_file.dump_file(settings.atm_user_data, settings.atm_user_file_path)
                    loger.loger(account,account,settings.time_now,'transfer',"-"+str(trans_money))
                    loger.loger(transfer,transfer,settings.time_now,'transfer',"+"+str(trans_money))
                    loger.loger('ATM.var',account,settings.time_now,'-','info','transfer'+"-"+str(trans_money))
                    loger.loger('ATM.var',transfer,settings.time_now,'-','info','transfer'+"-"+str(trans_money))
        else:
            print("转入帐号不存在")
            loger.loger('ATM.var',account,settings.time_now,'-','error','transfer account nonexistent')