ATM
ATM+购物车
1.创建功能字典
2.打印功能选项
3.执行的功能编号函数
4.判断编号是否在功能字典里
注册功能:
1.获取用户信息
2.判断两次密码是否一致
4.密码加密(调用hashlib模块 存在公共功能中)
3.调用第二层用户接口里的注册接口文件(传参:用户名、密码)
判断用户是否存在(调用第三层的读取数据salect查看)
构造用户字典
将用户信息存入字典(调用第三层save存数据)
注册成功
登录功能:
1.获取用户信息
2.调用第二层用户接口里的登录接口文件(传参:用户名、密码)
读取用户信息(第三层salect)
判断是否有用户信息
有就继续判断密码
用户信息里的密码==获取的密码
修改全局用户登录信息
登陆成功
装饰器+定义全局变量 记录用户登录
储存用户的字典应该建在全局变量里 存在第一层
装饰器
1.在公共文件写一个装饰器模板
2.在执行函数前判断全局字典里是否有用户(调用全局字典的模块) 有就执行下面要执行的函数
3.没有 就调用登录函数先去登陆
查看用户余额:
1.语法糖
2.调用第二层银行接口里的查看余额接口文件(传参:用户名)
获取用户信息(第三层salect)
判断用户信息里是否有值
有 就直接返回用户信息里的余额(balance)
没有 不存在
提现功能:
1.语法糖
2.获取想要提现的金额
3.金额要是整数
4.金额可以是小数
5.调用第二层银行接口里的提现接口文件(传参:用户名、提现金额)
获取用户信息(第三层salect)
获取用户账户的余额
判断余额是否大于要提现的金额
大于 余额不够
小于 用户信息里的余额+=要体现的金额*手续费(1+0.05手续费可以存在公共功能中 直接导模块)
保存用户数据(第三层save)
返回 格式化输出
还款功能:
1.语法糖
2.输入想要充值的金额
3.判断金额是数字
4.金额可以是小数
5.调用第二层银行接口里的还款接口文件(传参:用户名、充值金额)
获取用户信息
用户信息里的余额+=充值的金额
存用户信息 (第三层save)
返回 格式化输出
查看流水:
1.调第二层银行接口里面的流水接口文件(传参:username)
在用户信息前 添加流水
ctime = time.strftime('%Y-%m-%d %X')
时间年月日时分秒
user_dict['bank_flow'].append(f'时间:{ctime}:添加流水')
获取用户信息中的流水
判断是否有流水
有 返回用户信息中的流水
没有 没有流水
添加购物车(简):
1.调第二层购物接口中的添加购物车接口文件(传参:username)
写 之前写过的购物车
将 获取用户信息 更改成 调第三层的salect
将 存用户信息 更改成 调第三层的save
将最后一步 返回 其他不用动
查看购物车:
1.调第二层购物接口中的查看购物车接口文件(传参:username)
获取用户信息
获取用户信息中的购物车
判断购物车里有没有东西
有东西 返回购物车里的东西
没东西 购物车空空
结算购物车:
1.调第二层购物接口中的结算购物车接口文件(传参:username)
获取用户信息
获取用户信息中的购物车
判断购物车里面有没有东西
没有 返回Flase
获取用户余额
设置待付款
遍历商品的个数和单价的列表
待付款+= 个数*单价
判断余额是否足够
账户余额 -= 待付款
清空购物车
保存用户信息
返回 格式化输出
管理员功能