Example #1
0
def transfer_amount(user, in_user, amount):
    if not check_user(in_user):
        print("入账账户 %s 不存在!" % (user, in_user))
        user_logger.warning("%s转账时,入账账户%s不存在!" % (user, in_user))
        return False
    amount = check_amount(amount)
    if not amount:
        print("输入的金额非正数")
        user_logger.warning("%s转账时,输入的金额非正数" % user)
        return False
    fee = 0.05 * amount
    if not check_user_amount(user, (amount + fee)):
        print("账户余额为 %s元,不足转账!" % (users_atm[user]["usable"]))
        user_logger.warning("%s转账时,账户余额 %s 已不足!" %
                            (user, users_atm[user]["usable"]))
        return False
    users_atm[user]["usable"] -= (amount + fee)
    users_atm[in_user]["usable"] += amount
    users_atm["admin"]["usable"] += fee
    print("成功转账给 %s 金额 %s 元!收取手续费用 %s 元!" % (in_user, amount, fee))
    user_logger.info("%s 成功转账给 %s 金额 %s 元!手续费用 %s !" %
                     (user, in_user, amount, fee))
    bank_logger.info("%s 成功转账给 %s 金额 %s 元!手续费用 %s !" %
                     (user, in_user, amount, fee))
    bank_logger.info("admin 账户收入手续费金额 %s 元!" % fee)
Example #2
0
def consume_amount(user, amount):
    usable_amount = users_atm[user]["usable"]
    if not amount:
        print("扣款金额非正数" % user)
        user_logger.warning("%s扣款时,传递的扣款金额非正数" % user)
        return False
    if amount > usable_amount:
        print("扣款金额 %s 大于可用金额%s 元!扣款失败!" % (amount, usable_amount))
        user_logger.warning("%s扣款时,扣款金额 %s 大于可用金额%s 元!扣款失败!" %
                            (user, amount, usable_amount))
        return False
    users_atm[user]["usable"] -= amount
    print("成功扣款您的金额 %s 元!" % (amount))
    user_logger.info("%s 成功扣款金额 %s 元!" % (user, amount))
    bank_logger.info("%s 成功扣款金额 %s 元!" % (user, amount))
    return True
Example #3
0
def withdraw_amount(user, amount):
    amount = check_amount(amount)
    if not amount:
        print("输入的提现金额非正数")
        user_logger.warning("%s提现时,输入的提现金额非正数" % user)
        return False
    fee = 0.05 * amount
    if not check_user_amount(user, (amount + fee)):
        print("账户余额 %s元 不足提现!" % (users_atm[user]["usable"]))
        user_logger.warning("%s提现时,账户余额 %s 已不足!" %
                            (user, users_atm[user]["usable"]))
        return False
    users_atm[user]["usable"] -= (amount + fee)
    users_atm["admin"]["usable"] += fee
    print("成功提现金额 %s 元!收取手续费用 %s 元" % (amount, fee))
    user_logger.info("%s 成功提现金额 %s 元!手续费用 %s 元" % (user, amount, fee))
    bank_logger.info("%s 成功提现金额 %s 元!手续费用 %s 元" % (user, amount, fee))
    bank_logger.info("admin 账户收入手续费金额 %s 元!" % fee)
Example #4
0
def repay_amount(user, amount):
    amount = check_amount(amount)
    used_amount = users_atm[user]["limit"] - users_atm[user]["usable"]
    if not amount:
        print("输入的还款金额非正数")
        user_logger.warning("%s还款时,输入的还款金额非正数" % user)
        return False
    if amount > used_amount:
        print("输入的还款金额大于已用金额,只需还款 %s 元!" % (used_amount))
        user_logger.info("%s还款时,输入的还款金额大于已用金额,只需还款 %s 元!" %
                         (user, used_amount))
        return False
    users_atm[user]["usable"] += amount
    users_atm["admin"]["usable"] += amount
    print("成功还款金额 %s 元!" % (amount))
    user_logger.info("%s 成功还款金额 %s 元!" % (user, amount))
    bank_logger.info("%s 成功还款金额 %s 元!" % (user, amount))
    bank_logger.info("admin 账户收入 %s 的还款金额 %s 元!" % (user, amount))
Example #5
0
def change_status(admin):
    while True:
        change = input("请输入用户账号和修改状态(1代表可用,0代表冻结)\n账号和状态用逗号分割\n>>:")
        if re.fullmatch("\w+[,|,]{1}[1|0]{1}", change):
            change_lis = re.split("[,|,]", change)
            user = change_lis[0]
            change_statu = int(change_lis[1])
            if user in users_atm:
                users_atm[user]["status"] = change_statu
                print("修改 %s 用户状态成功!修改后的状态为 %s" % (user, change_statu))
                user_logger.info("管理员 %s 修改 %s 用户状态成功!修改后的状态为 %s" %
                                 (admin, user, change_statu))
                bank_logger.info("管理员 %s 修改 %s 用户状态成功!修改后的状态为 %s" %
                                 (admin, user, change_statu))
                break
            else:
                print("被修改的用户不存在,修改 %s 用户的状态失败!" % user)
                user_logger.warning("被修改的用户不存在,管理员 %s 修改 %s 用户的状态失败!" %
                                    (admin, user))
        else:
            print("输入用户和状态格式有误,修改 %s 用户的状态失败!")
            user_logger.warning("输入用户和状态格式有误,管理员 %s 修改的状态失败!" % admin)
Example #6
0
def add_user(admin):
    while True:
        info = input(
            "请以逗号隔开输入账号(英文或数字),姓名(非空字符),角色(1代表管理员/0代表普通用户),密码(英文或数字),额度\n")
        if re.fullmatch(
                "\w+[,|,]{1}\S+[,|,]{1}[0|1]{1}[,|,]{1}\w+[,|,]{1}[\d]+",
                info):
            user_lis = re.split("[,|,]", info)
            user = user_lis[0]
            name = user_lis[1]
            role = int(user_lis[2])
            pwd = get_md5(user_lis[3])
            limit = float(user_lis[4])
            if user not in users:
                users[user] = {}
                users[user]["name"] = name
                users[user]["password"] = pwd
                users[user]["role"] = role
                users[user]["products"] = {}
                users[user]["create_time"] = str(
                    datetime.datetime.now().date())
                users_atm[user] = {}
                users_atm[user]["name"] = name
                users_atm[user]["usable"] = limit
                users_atm[user]["limit"] = limit
                users_atm[user]["status"] = 1
                users_atm["admin"]["usable"] -= limit
                print("添加用户 %s 成功" % user)
                user_logger.info("管理员 %s 添加用户 %s 成功" % (admin, user))
                bank_logger.info("管理员 %s 添加用户 %s 成功" % (admin, user))
                break
            else:
                print("%s 用户已存在" % user)
                user_logger.warning("管理员添加用户时,%s 用户已存在" % user)
        else:
            print("输入信息有误,请参照提示按格式输入!")
            user_logger.warning("管理员添加用户时,用户输入用户信息格式有误!")
Example #7
0
 def wrapper(*args, **kwargs):
     user = args[0]
     if users_atm[user]["status"] == 1:
         return func(*args, **kwargs)
     user_logger.info("%s 账户已被冻结,不可进行此次操作,请联系管理员解冻!" % user)
     bank_logger.info("已冻结账户 %s 尝试进行ATM操作,请管理员留意!" % user)