ATM分析

# 查看余额功能
1.第一层直接调用查看余额的接口(传当前登录用户名)
2.第二层直接调用第三层数据查询的接口
3.第二层从用户字典中提取出用户余额返回给第一层展示
# 账户提现功能
1.第一层获取用户提现的金额 然后调用第二层提现接口(金额 用户名)
2.第二层根据用户名获取对应的用户字典数据
3.提现应该收取一定的费率(为了方便 将费率设置放到了配置文件中)
4.针对用户输入的金额需要判断是否是整数或者小数
	float() + 异常捕获
5.计算账户余额是否满足提现金额+手续费
6.如果满足则修改用户字典并调用第三层的数据保存接口
# 账户转账功能
1.第一层获取想要转账的用户及转账金额 调用第二层转账接口(金额 用户名)
2.先处理金额是否合法(common.py)
3.再判断用户是否存在(第三层查询数据接口)
4.分别获取登录用户的字典数据以及待收款用户的字典数据
5.调用第三层接口保存修改之后的用户字典数据
# 查看流水功能
1.应该将所有账户余额变动的操作在用户字典的water_flow键对于的列表中添加记录
2.第一层直接调用第二层查看用户流水的接口
3.第二层调用第三层查询用户数据的接口 然后提取出流水记录返回给第一层
# 添加购物车功能
直接将所有的操作放在第二层
# 查看购物车功能
第一层调用第二层接口查询数据返回即可
# 结算购物车功能
直接将所有的操作放在第二层
# 管理员相关功能
冻结账户
1.用户必须登录而且必须是管理员
	给每个用户字典再添加一个用于标识是否是管理员身份的键值对
		is_admin:false
2.如何判断用户是否登录并且是否是管理员
	判断用户是否登录已经在之前的功能中编写了一个装饰器
 	用户登录成功之后获取用户的身份并在第一层字典中记录
    	is_login = {
            'username':'',
            'is_admin':False
        }
	校验是否是管理员有很多种方式
    	直接在函数体代码中加if判断
    	将装饰器变成有参的版本(normal admin)
        	通过额外参数的不同在装饰器中校验完用户登录之后是否继续校验用户是否是管理员
3.冻结账户
	1.获取系统中除管理员以外的用户名单
 	2.管理员选择想要冻结的账户
 	3.获取该账户字典数据 修改用于标识是否冻结的键值对 is_lock
	4.需要在项目登录功能处 添加用户是否已被冻结的校验 
ps:基于上述模板可以自行扩展管理员其他功能
posted @ 2022-11-02 17:31  wwwxxx123  阅读(48)  评论(0编辑  收藏  举报