zoukankan      html  css  js  c++  java
  • 第五次作业

    from interface import user_interface
    
    from interface import bank_interface
    
    from interface import shoping_interface
    
    from lib import common
    
    from interface import admin_interface
    
    import datetime
    
    user_info = {
    
        'user': None
    
    }
    
    
    def register():
        while True:
    
            print("---注册---")
    
            user_name = input('请输入用户名:').strip()
    
            passwd = input('请输入密码:').strip()
    
            passwd_d = input('确认密码:').strip()
    
            # 接口
    
            flat = user_interface.check_user_interface(user_name)
    
            if flat:
    
                print('用户已存在,重新输入!')
    
                continue
    
            elif passwd == passwd_d:
    
                # 接口
    
                user_interface.register_inerface(user_name, passwd)
    
                print('注册成功!')
    
                break
    
    
    def login():
        while True:
    
            print("---登录---")
    
            user = input('输入用户名:').strip()
    
            passwd = input('输入密码:').strip()
    
            flag, msg = user_interface.login_interface(user, passwd)
    
            if flag:
    
                print(msg)
    
                user_info['user'] = user
    
                break
    
            else:
    
                print(msg)
    
                break
    
    
    @common.outter
    def transfer():
        while True:
    
            print("---转账---")
    
            to_name = input('输入转账目标用户:')
    
            to_user = user_interface.check_user_interface(to_name)
    
            if to_user:
    
                money = input('请输入转账金额:').strip()
    
                if money.isdigit():
    
                    money = int(money)
    
                    flaw, msg = bank_interface.transfer_interface(to_name, money, user_info['user'])
    
                    if flaw:
    
                        print(msg)
    
                        break
    
                    else:
    
                        print(msg)
    
                        break
    
                else:
    
                    print('输入不正确!!')
    
                    continue
    
    
    
            else:
    
                print('用户不存在,重新输入!')
    
                continue
    
    
    @common.outter
    def check_balance():
        print("---查询余额---")
    
        bank_interface.select_money(user_info['user'])
    
    
    @common.outter
    def repayment():
        print("---还款---")
    
        money = input('输入还款金额:').strip()
    
        if money.isdigit():
    
            money = int(money)
    
            bank_interface.repayment_interface(user_info['user'], money)
    
        else:
    
            print('输入不正确!')
    
    
    @common.outter
    def withdraw_money():
        print("---取款---")
    
        money = input('输入取款金额:').strip()
    
        if money.isdigit():
    
            money = int(money)
    
            if money >= 0:
    
                bank_interface.withdraw_interface(user_info['user'], money)
    
            else:
    
                print('必须大于0')
    
        else:
    
            print("输入不正确!")
    
    
    @common.outter
    def view_pipelining():
        print("---查看流水---")
    
        bank_interface.see_worter_interface(user_info['user'])
    
    
    @common.outter
    def shopping():
        # 购买过的商品
    
        pay_list = []
    
        num_money = 0
    
        while True:
    
            print("---购物---")
    
            shopping_list = [
    
                ['鞋子', 999],
    
                ['卫衣', 999],
    
                ['袜子', 99],
    
                ['T恤', 299],
    
                ['短裤', 199],
    
                ['奔驰', 5000000],
    
                ['奇瑞', 1000000]
    
            ]
    
            # 打印商品列表
    
            for index, i in enumerate(shopping_list):
                print(index, i)
    
            print('q.退出 w.结账 e.查看已选商品')
    
            choice = input('请快速配置你的装备:').strip()
    
            if choice == 'q':
    
                break
    
    
    
            elif choice == 'w':
    
                yes = input('是否结账?y/n:')
    
                if yes == 'y':
    
                    # 调用接口结账
    
                    bank_interface.payment(num_money, user_info['user'])
    
                    # 调用接口保存购买商品
    
                    shoping_interface.save_car(pay_list, user_info['user'])
    
                    break
    
                elif yes == 'n':
    
                    continue
    
            elif choice == 'e':
    
                print('---已选商品---')
    
                for index, i in enumerate(pay_list):
                    print(index, i)
    
                continue
    
            # 1.判断输入是否为数字
    
            if not choice.isdigit():
                print('输入不合法!!!你还有两次机会')
    
                continue
    
            # 2.输入的为字符串,转成int数字型
    
            choice = int(choice)
    
            # 3.判断选择是否再范围内
    
            if 0 <= choice <= len(shopping_list):
    
                name, money = shopping_list[choice]
    
                # 4.添加到已选商品
    
                now_time = datetime.datetime.today()
    
                now_time = str(now_time)
    
                # 时间处理操作  2019-11-21 18:45:18.803910  处理为2019-11-21 18:45:18
    
                now_time = now_time[0:19]
    
                # 添加时间
    
                shopping_list[choice].append(now_time)
    
                pay_list.append(shopping_list[choice])
    
                # 计价
    
                num_money += money
    
                print('添加成功')
    
                continue
    
            else:
    
                print('请选择正确的范围!!!')
    
                continue
    
    
    @common.outter
    def shopping_cat():
        while True:
            print("---查看购买商品---")
    
            shoping_interface.select_car(user_info['user'])
    
            break
    
    
    def admin():
        while True:
    
            print('''
    
            1:冻结用户
    
            2:解冻用户
    
            q:退出
    
            ''')
    
            dict = {
    
                '1': lock,
    
                '2': unlock
    
            }
    
            choice = input('请输入你的功能:').strip()
    
            if choice == 'q':
    
                break
    
            elif not choice.isdigit():
    
                print('请输入数字!!')
    
                continue
    
            elif choice in dict:
    
                dict[choice]()
    
            else:
    
                print("你的输入有误,重新输入!!!")
    
                continue
    
    
    def lock():
        print('---冻结用户---')
    
        user_name = input('请输入你要冻结的用户名:').strip()
    
        yes = input('确认冻结该用户?  y/n:')
    
        if yes == 'y':
    
            res = admin_interface.lock_interface(user_name)
    
            print(res)
    
        elif yes == 'n':
    
            print('已取消冻结!')
    
        else:
    
            print('输入有误,重新输入!')
    
    
    def unlock():
        print('---解冻用户---')
    
        user_name = input('请输入你要解冻的用户名:').strip()
    
        yes = input('确认解冻该用户?  y/n:')
    
        if yes == 'y':
    
            res = admin_interface.unlock_interface(user_name)
    
            print(res)
    
        elif yes == 'n':
    
            print('已取消解冻!')
    
        else:
    
            print('输入有误,重新输入!')
    
    
    def run():
        while True:
    
            print('''
    
            1.注册
    
            2.登录
    
            3.转账
    
            4.查询余额
    
            5.还款
    
            6.取款
    
            7.查看流水
    
            8.购物
    
            9.查看购买商品
    
            10.管理员
    
            q.注销    
    
            ''')
    
            list_dic = {
    
                '1': register,
    
                '2': login,
    
                '3': transfer,
    
                '4': check_balance,
    
                '5': repayment,
    
                '6': withdraw_money,
    
                '7': view_pipelining,
    
                '8': shopping,
    
                '9': shopping_cat,
    
                '10': admin
    
            }
    
            choice = input('前选择功能编号:').strip()
    
            if choice == 'q':
    
                break
    
    
    
            elif choice in list_dic:
    
                list_dic.get(choice)()
    
    
    
            else:
    
                print('选择功能有误,请重新输入:')
    
                continue
    核心业务逻辑
    from db import db_hander
    
    import datetime
    
     
    
    # 转账接口
    
    def transfer_interface(to_name, money, user):
    
        to_user_dict = db_hander.select_user(to_name)
    
        user_dict = db_hander.select_user(user)
    
     
    
        if to_name != user:
    
            # 判断转账的钱是否大于余额
    
            if 0 <= money <= user_dict['balance']:
    
                # 加减钱的操作
    
                user_dict['balance'] -= money
    
                to_user_dict['balance'] += money
    
     
    
                # 拼接
    
                my = user_dict['balance']
    
                to = to_user_dict['balance']
    
                time = datetime.datetime.today()
    
                msg = f'【{user}】用户给【{to_name}】用户转账【{money}】元,当前余额【{my}】元    {time}'
    
                flg = f'【{to_name}】用户给收到【{user}】用户转账【{money}】元,当前余额【{to}】元    {time}'
    
                # 添加到流水信息
    
                user_dict['worter'].append(msg)
    
                to_user_dict['worter'].append(flg)
    
     
    
                # 保存数据
    
                db_hander.save(user_dict)
    
                db_hander.save(to_user_dict)
    
     
    
     
    
                return True, msg
    
            else:
    
                msg = '余额不足'
    
                return False, msg
    
        else:
    
            return False, '不允许给自己账户转账!'
    
     
    
    # 查看余额
    
    def select_money(user):
    
        user_dict = db_hander.select_user(user)
    
        money = user_dict['balance']
    
        return print('当前余额为【%s】元' % money)
    
     
    
     
    
    # 还款接口
    
    def repayment_interface(user, money):
    
        user_dict = db_hander.select_user(user)
    
        # 加钱操作
    
        user_dict['balance'] += money
    
     
    
        a = user_dict['balance']
    
        time = datetime.datetime.today()
    
        msg = f'【{user}】用户还款【{money}】元成功,当前余额【{a}】元   {time}'
    
        # 添加到流水信息
    
        user_dict['worter'].append(msg)
    
        # 保存更新
    
        db_hander.save(user_dict)
    
     
    
     
    
        return print(msg)
    
     
    
     
    
    # 取款接口
    
    def withdraw_interface(user, money):
    
        while True:
    
            user_dict = db_hander.select_user(user)
    
            # 判断余额是否足够
    
            if money <= user_dict['balance']*1.05:
    
                # 减钱操作,手续费
    
                money_s = money*0.05
    
                user_dict['balance'] -= money*1.05
    
     
    
                a = user_dict['balance']
    
                time = datetime.datetime.today()
    
                msg = f'【{user}】用户取款【{money}】元成功,手续费5%【{money_s}】元,当前余额【{a}】元   {time}'
    
     
    
                # 添加到流水信息
    
                user_dict['worter'].append(msg)
    
     
    
                # 保存更新
    
                db_hander.save(user_dict)
    
                return print(msg)
    
            else:
    
                print('余额不足!!')
    
                break
    
     
    
     
    
    # 查看流水
    
    def see_worter_interface(user):
    
        user_dict = db_hander.select_user(user)
    
        worter = user_dict['worter']
    
        for i in worter:
    
            print(i)
    
     
    
    # 结账接口
    
    def payment(num_money,user):
    
        while True:
    
            user_dict = db_hander.select_user(user)
    
            if num_money <= user_dict['balance']:
    
                # 减钱的操作
    
                user_dict['balance'] -= num_money
    
     
    
                a = user_dict['balance']
    
                time = datetime.datetime.today()
    
                msg = f'【{user}】用户购买商品成功,消费【{num_money}】元,当前余额【{a}】元    {time}'
    
                # 记录流水
    
                user_dict['worter'].append(msg)
    
                # 保存信息
    
                db_hander.save(user_dict)
    
                print(msg)
    
                break
    
            else:
    
                print('余额不足,请充值!!!')
    
                break
    
     
    银行接口
    from db import db_hander
    
     
    
    # 保存购物车
    
    def save_car(shopping_list, user):
    
        user_dict = db_hander.select_user(user)
    
        # 添加到字典
    
        user_dict['shop_car'].append(shopping_list)
    
        # 保存
    
        db_hander.save(user_dict)
    
     
    
    # 查看购物车
    
    def select_car(user):
    
        user_dict = db_hander.select_user(user)
    
        car_list = user_dict['shop_car']
    
        # for index, i in enumerate(car_list):
    
        #     print(index, i)
    
        for line in car_list:
    
            for index, i in enumerate(line):
    
                print(index, i)
    
     
    购物接口
    from db import db_hander
    
    from lib import common
    
     
    
     
    
    # 查看用户是否存在接口,存在返回Turn和字典,不存在返回False
    
    def check_user_interface(user):
    
        user_dict = db_hander.select_user(user)
    
        if user_dict:
    
            return user_dict
    
        else:
    
            return False
    
     
    
     
    
    # 注册接口
    
    def register_inerface(user, passwd):
    
        # 调用接口,加密
    
        pwd = common.get_md5(passwd)
    
     
    
        # 把用户所有信息做成一个字典,然后调用接口保存
    
        user_dict = {
    
            'user': user,
    
            'pwd': pwd,
    
            'balance': 10000,
    
            'worter': [],
    
            'shop_car': [],
    
            'lock': True
    
        }
    
     
    
        db_hander.save(user_dict)
    
     
    
        return f'{user_dict["user"]}用户注册成功!'
    
     
    
     
    
    # 登录接口
    
    def login_interface(user, passwd):
    
        user_dict = db_hander.select_user(user)
    
        passwd = common.get_md5(passwd)
    
        # 如果用户存在
    
        if user_dict:
    
            # 如果用户没有被锁
    
            if user_dict['lock'] == True:
    
                # 如果密码正确
    
                if passwd == user_dict['pwd']:
    
                    return True, '登录成功!'
    
                else:
    
                    return False, '用户名或密码不正确,重新输入!'
    
            else:
    
                return False, '用户已被解冻,请联系管理员!'
    
        else:
    
            return False, '用户名或密码不正确,重新输入!'
    用户接口
  • 相关阅读:
    Idea打包问题
    centos问题总结
    Linux CentOS7 系统目录详解
    centos下修改文件后如何保存退出
    利用windows上的VMware安装CentOS7
    VMware安装系统出现Operating System not found 解决方案
    mybatis 0 变成null问题
    Shiro权限前端调用302重定向
    java版本
    产品画原型工具放入到托管平台
  • 原文地址:https://www.cnblogs.com/datatool/p/13501206.html
Copyright © 2011-2022 走看看