Day25.查看余额与提现功能

1.查看余额与提现功能_查看余额功能逻辑代码

   查询余额:src.py 的代码

# 3. 查看余额
@common.login_auth
def check_balance():
    # 直接调用查看余额接口,获取用户余额
    balance = user_interface.check_bal_interface(
        login_user
    )
    print('用户{} 账户余额为:{}'.format(login_user, balance))

 

   查询余额:user_interface.py 的代码

# 查看余额接口
def check_bal_interface(username):
    balance = db_handler.select(username).get('balance')
    return balance

   查询余额:db_handler.py 的代码

# 查看数据
def select(username):
    # 1) 接收接口层传过来的username用户名,拼接用户json文件路径
    user_path = os.path.join(
        settings.USER_DATA_PATH, '{}.json'.format(username)
    )
    # 2) 校验用户json文件是否存在
    if os.path.exists(user_path):
        # 3) 打开数据,并返回分接口层
        with open(user_path, 'r', encoding='utf-8') as f:
            user_dic = json.load(f)
            return user_dic
    # 3) 不return, 默认return None

查看余额的执行结果:

2.查看余额与提现功能_提现功能的代码逻辑

   提现功能:src.py 中的代码

# 4. 提现功能
@common.login_auth
def withdraw():
    while True:
        # 1) 用户输入提现金额
        input_money = input('请输入提现金额:').strip()

        # 2) 判断用户输入的金额是否是数字
        if not input_money.isdigit():
            print('请重新输入')
            continue
        # 3) 用户提现金额,将提现的金交付给接口层来处理
        input_money = int(input_money)
        flag, msg = bank_interface.withdraw_interface(
            login_user, input_money
        )
        if flag:
            print(msg)
            break
        else:
            print(msg)

   提现功能:bank_interfack.py 中的代码

'''
银行相关业务的接口
'''
from db import db_handler

# 提现接口(手续费)
def withdraw_interface(username, money):
    # 1) 先获取用户字典
    user_dic = db_handler.select(username)
    # 账户中的金额
    balance = int(user_dic.get('balance'))
    # 提现本金 + 5%的手续费
    money2 = int(money) * 1.05

    # 判断用户金额是否足够
    if balance >= money2:

        # 2) 修改用户字典中的金额
        balance -= money2
        user_dic['balance'] = balance

        # 3) 再保存数据,或更新数据
        db_handler.save(user_dic)

        return True, '用户[{}]提现金额[{}]成功,手续费为{}'.\
            format(username, money, money2-float(money))
    return False, '用户[{}]提现金额[{}]失败,金额不足'.format(username, money)

  提现功能:db_handler.py 中的代码

# 查看数据
def select(username):
    # 1) 接收接口层传过来的username用户名,拼接用户json文件路径
    user_path = os.path.join(
        settings.USER_DATA_PATH, '{}.json'.format(username)
    )
    # 2) 校验用户json文件是否存在
    if os.path.exists(user_path):
        # 3) 打开数据,并返回分接口层
        with open(user_path, 'r', encoding='utf-8') as f:
            user_dic = json.load(f)
            return user_dic
    # 3) 不return, 默认return None

 

提现功能的执行结果:

 

posted on 2024-06-11 22:36  与太阳肩并肩  阅读(19)  评论(0编辑  收藏  举报

导航