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:基于上述模板可以自行扩展管理员其他功能
ATM分析的更多相关文章
- 技术分享:逆向分析ATM分离器
文章内容仅供技术交流,请勿模仿操作! 背景(作者) 每一次外出时, Elizabeth和我总是格外的小心,同时把我们身上的钱藏在特殊的皮带上面,这样还不够,我们还采取了“狡兔三窟”的方式来藏身上带的银 ...
- 设计模式(十二):通过ATM取款机来认识“状态模式”(State Pattern)
说到状态模式,如果你看过之前发布的重构系列的文章中的<代码重构(六):代码重构完整案例>这篇博客的话,那么你应该对“状态模式”并不陌生,因为我们之前使用到了状态模式进行重构.上一篇博客我们 ...
- 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)
一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...
- python之ATM
每次做一点就发出来,大神不要嫌重复 2016/11/4 今天来搞ATM,反正逃不了的,说来惭愧,这个作业是我10/4号20天前拿到的,当时是万脸蒙比的,今天又做了一点,现在算是百脸蒙比吧. 一.需求: ...
- Hadoop-HBASE案例分析-Hadoop学习笔记<二>
之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第八章的笔记 主要介绍HBase,一个分布式数据库的应用案例. 案例概况: 1)时间序列数据库(OpenTSD ...
- python之信用卡ATM(第五天)
本节作业 作业需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日, ...
- 语言模拟ATM自动取款机系统
C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ...
- BZOJ1179 Atm //缩点+spfa
1179: [Apio2009]Atm Description Input 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的 ...
- Try-Catch机制使用场景分析
(一)在什么场景下加Try-Catch机制 1)以业务逻辑功能为单位,在最上层加Try-Catch机制.为什么要这样做呢?这主要是增加程序的健壮性,防止因抛出异常过多,导致程序崩溃. try { ...
- 银行ATM机工作流程模拟编程
[编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...
随机推荐
- KingbaseES 自增列三种方式
KingbaseES中3种自增长类型sequence,serial,identity的区别: 对象 显示插入 显示插入后更新最大值 清空表后是否重置 是否跟事务一起回滚 多对象共享 支持重置 出现错误 ...
- .NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署
日常工作中有时候会遇到需要将程序直接在服务器上运行,而不依赖于 IIS 托管的情况,直接运行有两种方式,一种是部署为 服务模式,另一种则是 直接启动 .NET 发布之后的 exe 文件以 控制台模式运 ...
- 微信小程序-云函数、云存储
云函数是运行在服务器端的 创建一个目录cloud project.config.json配置云函数目录 cloud目录有个云朵.代表云函数 初始化成功了 新建一个云函数 cloud目录右击 新建一个N ...
- eclipse最常应用的几个快捷键,新手必看!
首先eclipse快捷键可以使用 Ctrl + Shift + L 打开,在这里可以查看所有快捷键. 另外就是常用的几个快捷键 选中光标所在行 好像没有,但是可以 Ctrl + d 然后 Ctrl + ...
- C++ "链链"不忘@必有回响之双向链表
C++ "链链"不忘@必有回响之双向链表 1. 前言 写过一篇与单链表相关的博文(https://blog.51cto.com/gkcode/5681771),实际应用中,双向循环 ...
- 使用kubeoperator安装的k8s集群配置Ingress规则有关说明
单独创建一个nginx 在 Deployment 里创建一个nginx工作负载,镜像用:nginx:alpine,并配置service为ClusterIP,然后添加Ingress规则 本地主机host ...
- Containerd教程
文档是从B站有关视频上对应找到的,具体视频地址是:https://www.bilibili.com/video/BV1XL4y1F7QB?p=21&spm_id_from=333.880.my ...
- 车辆稳定性辅助(VSA)系统
当车辆转弯大于或小于预期时,VSA有助于在转弯时稳定车辆. 同时还有助于在湿滑路面上保持牵引力. VSA 打开和关闭 禁用: 请长按按钮直至听到哔的一声.VSA 关闭指示灯点亮. 恢复: 按下按钮直至 ...
- 安装 CRI 客户端 crictl
# https://github.com/kubernetes-sigs/cri-tools/releases/ 选择版本 wget https://github.com/kubernetes-sig ...
- 面试突击86:SpringBoot 事务不回滚?怎么解决?
在 Spring Boot 中,造成事务不自动回滚的场景有很多,比如以下这些: 非 public 修饰的方法中的事务不自动回滚: 当 @Transactional 遇上 try/catch 事务不自动 ...