# 查看余额功能
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分析的更多相关文章

  1. 技术分享:逆向分析ATM分离器

    文章内容仅供技术交流,请勿模仿操作! 背景(作者) 每一次外出时, Elizabeth和我总是格外的小心,同时把我们身上的钱藏在特殊的皮带上面,这样还不够,我们还采取了“狡兔三窟”的方式来藏身上带的银 ...

  2. 设计模式(十二):通过ATM取款机来认识“状态模式”(State Pattern)

    说到状态模式,如果你看过之前发布的重构系列的文章中的<代码重构(六):代码重构完整案例>这篇博客的话,那么你应该对“状态模式”并不陌生,因为我们之前使用到了状态模式进行重构.上一篇博客我们 ...

  3. 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)

    一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...

  4. python之ATM

    每次做一点就发出来,大神不要嫌重复 2016/11/4 今天来搞ATM,反正逃不了的,说来惭愧,这个作业是我10/4号20天前拿到的,当时是万脸蒙比的,今天又做了一点,现在算是百脸蒙比吧. 一.需求: ...

  5. Hadoop-HBASE案例分析-Hadoop学习笔记<二>

    之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第八章的笔记 主要介绍HBase,一个分布式数据库的应用案例. 案例概况: 1)时间序列数据库(OpenTSD ...

  6. python之信用卡ATM(第五天)

    本节作业 作业需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日, ...

  7. 语言模拟ATM自动取款机系统

    C语言实验报告       题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ...

  8. BZOJ1179 Atm //缩点+spfa

    1179: [Apio2009]Atm Description Input 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的 ...

  9. Try-Catch机制使用场景分析

    (一)在什么场景下加Try-Catch机制   1)以业务逻辑功能为单位,在最上层加Try-Catch机制.为什么要这样做呢?这主要是增加程序的健壮性,防止因抛出异常过多,导致程序崩溃. try { ...

  10. 银行ATM机工作流程模拟编程

    [编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...

随机推荐

  1. 《Java编程思想》读书笔记(五)

    前言:本文是<Java编程思想>读书笔记系列的最后一章,本章的内容很多,需要细读慢慢去理解,文中的示例最好在自己电脑上多运行几次,相关示例完整代码放在码云上了,码云地址:https://g ...

  2. InnoDB_锁总结

    1. 查询会对资源添加共享锁 加了共享锁的资源不可以被修改:但可以被查询(也是会在资源上再加共享锁) 2. 数据修改会对资源添加排他锁 加了排他锁的资源只能被持有这个排他锁的事务读取和修改,其他事务读 ...

  3. ViewBinding 与 Kotlin 委托双剑合璧

    请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · Android-NoteBook 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭 ...

  4. [Python]-torchvision.transforms模块-图像预处理

    PyTorch框架中常用torchvision模块来辅助计算机视觉算法的搭建,transforms用于图像的预处理. from torchvision import transforms 预处理操作集 ...

  5. 继GitHub的Copilot收费后,亚马逊推出了 CodeWhisperer,感觉不错哟!

    Copilot 是 Github 推出的一款人工智能编程助手,推出仅一年就受到大量开发者的追捧(据官方统计有 120 万用户).然而,自 2022 年 6 月起,它改为了付费订阅模式(每月 10 美元 ...

  6. ProxySQL(9):ProxySQL的查询缓存功能

    文章转载自: https://www.cnblogs.com/f-ck-need-u/p/9314459.html ProxySQL支持查询缓存的功能,可以将后端返回的结果集缓存在自己的内存中,在某查 ...

  7. 不要舔 Switch 游戏卡,单性生殖,永久夏令时

    文章转载自:https://mp.weixin.qq.com/s/8EikwCvZgKt2TFsld-nKSA

  8. es根据关键词查看某个指定索引的内容并删除

    # 根据关键词查询某个索引的内容 GET product/_search?q=title:测试商品 {"query":{"match_all":{}}} # 根 ...

  9. 使用SkyWalking监控nginx (以openresty为例)

    安装使用SkyWalking先看这篇文章,地址:https://www.cnblogs.com/sanduzxcvbnm/p/15829781.html 使用SkyWalking监控nginx借助的是 ...

  10. 【JAVA】普通IO数据拷贝次数的问题探讨

    最近看到网上有些文章在讨论JAVA中普通文件IO读/写的时候经过了几次数据拷贝,如果从系统调用开始分析,以读取文件为例,数据的读取过程如下(以缓存I/O为例): 应用程序调用read函数发起系统调用, ...