随笔- 63  文章- 0  评论- 0  阅读- 5285 

ATM购物车项目分析

  • 需求分析

  • 程序架构分析

  • 软件开发目录

  • 创建用户功能字典及搭建用户

  • 编写具体功能

 

 

需求分析

# 项目大致需求
- 额度15000或自定义
- 支持多账户登录
- 可以查看账户余额
- 可以提现(可自定义手续费比例)
- 提供还款接口
- 支持账户间转账
- 记录每月日常消费流水
- 实现购物商城,买东西加入购物车,调用信用卡接口结账
- 提供管理接口,包括添加账户、用户额度,冻结账户等
- ATM记录操作日志
- 用户认证功能
# 提炼项目功能
1.用户注册
2.登录功能
3.查看余额
4.余额提现
5.账户充值
6.金额转账
7.查看流水
8.添加购物车
9.查看购物车
10.结算购物车
11.管理员功能
   
   
# 项目大致技术栈
1.python基础核心编程
2.函数(装饰器)
3.常见内置模块(os,sys,json)

程序架构设计

1.程序设计的好处
(1)思路清晰
  (2)不会出现写一半代码时推翻重写的情况
  (3方便自己或以后的同事更好维护

2.三层架构设计的好处
  (1)把每个功能都分层三部分,逻辑清晰
  (2)如果用户更换不同的用户界面或不同,
      的数据储存机制都不会影响接口层的核心
      逻辑代码,扩展性强。
  (3)可以在接口层,准确的记录日志与流水。
   
3.三层架构
   
   用户视图层
 用于与用户交互的,可以接受用户的输入,打印接口返回的数据。

逻辑接口层
 接受 用户视图层 传递过来的参数,根据逻辑判断调用数据层加以处理,并返回一个结果给 用户视图层。

数据处理层
 接受接口层传递过来的参数,做数据的处理
   - 保存数据  
   - 查看数据  
   - 更新数据
   - 删除数据
​程序架构图:

 

 

 

软件开发目录

conf:项目的配置信息
core:核心的代码
db:数据
interface:接口
lib:共用的一些功能
log:日志
readme:介绍项目的功能使用等
srart.py:项目的启动文件

 

 


创建用户功能字典及搭建用户图层

core中src代码如下

 

 



start.py代码如下

 

 

编写具体功能

1.注册功能
用户在视图层输入账号和密码,将账号和密码交给逻 处理层,逻辑处理层调用数据处理层的功能来判断账号和密码是否存在。存在与否,则返回相应结果给逻辑处理层(接口层),若账号密码存在,则接口层直接返回,若不存在需要接口层需要完成注册功能,接口层需要做的是组织用户的信息,然后调用数据处理层的功能将用户信息写入相应json文件并返回,最终由接口层将是否注册成功返回给用户视图层。
2.登录功能
用户在视图层输入账号和密码交给登录接口层,接口层调用数据处理层的功能来判断用户是否登录成功,另外加了一个用户的登录状态变量is_login用于记录用户登录状态和一个用户登录认证装饰器
3.查看余额
用户登录后(未登录会被强制登录),查看余额,直接调用查看余额接口,查看余额接口调用数据处理层中的功能,完成任务。
4.提现功能
用户在登录后(未登录会强制登录),在用户视图层输入提现金额,调用接口层中的提现接口,在提现接口中调用了数据处理层中的功能返回给接口层,接口层完成逻辑处理后将结果返回视图层。

记录流水和日志:要在接口层接入记录日志的功能。
注意:
转账要注意手续费的处理,以及用户输入的是否为数字等细节判断。
5.还款功能
用户在视图层输入还款金额,由接口层进行与数据处理层进行交互,完成功能
6.转账功能
用户输入要转入的账户和金额,传入转账接口,转账接口利用数据处理层的select和save完成功能
7.查看流水
用户在视图层选择查看流水功能,调用查看流水接口,流水接口调用数据处理层的查看功能完成功能。
8.添加购物车功能
(1)购物:需要对用户输入的指令进行判定
(2)支付:计算当前购物车总花费,接入支付接口,完成支付
(3)加入购物车:读取之前的购物车,若存在加入重复的商品名,则数量增加,否则新增购物,最后更新购物车
9.查看购物车
和查看余额一样,直接调用接口层,利用数据处理层查看功能完成任务
10.管理员功能
管理员需要有的功能分析如下:
       (1)添加用户
       (2)修改用户额度
       (3)冻结用户

与写整个项目不同,管理员功能相对来说比较独立,我们在写这个功能的时候,同样采取三层架构。
即管理员视图层=》管理员接口层=》管理员数据处理层,但这里处理的是用户的数据,其实也是用户数据处理层。

 

 posted on   鳗鱼的春天  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示