下单模块伪代码
时间:2019-11-28
本文章向大家介绍下单模块伪代码,主要包括下单模块伪代码使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
11.27伪代码实现下单流程
def 下单(): # 获取参数(前端或内存数据库) 用户id=request.用户id if not 用户id: return '请登录' if not all(地址, 支付手段, 商品id&购买数量[列表] ) return '信息不全' # 校验 try: 获取地址,支付手段 except: return '信息错误' # 业务处理 # 拼接订单id, 及其内容 订单id = 年月日秒UUID+用户id 总数量 = 0 总价格 = 0 运费 = 0 支付方式 = 支付手段 # 回滚点1 设置事务点1 try-事务: 创建订单 = ( ... ) for 商品id,购买数量 in 商品id&购买数量[列表]: try: 查询商品id # !设置悲观锁 (**悲观锁**) 锁定该商品字段. (**乐观锁**) 保存库存数 except: 回滚节点1 return '桑品不存在' 通过商品id查询商品,得商品详情. 查询商品库存. if 商品库存< 购买数量: 回滚节点1 return '商品库存不足' (**悲观锁**) 直接修改库存 (**乐观锁**) 重新查询商品, 判断库存数是否与之前一致. if 一致: 更新修改库存 else: 重试 if 重试次数>设定次数: 回滚节点1 return 总价格 += 商品小计 重新保存订单数据(总价格=总价格) except: 回滚节点1 return '下单失败,请重试' 提交事务 # 返回结果 return '提交订单成功' ### 锁的选择: # 服务器性能较好或者并发较低时, 可以使用乐观锁, 能充分利用资源 # 反之, 使用悲观锁.
原文地址:https://www.cnblogs.com/jrri/p/11950311.html
- HDUOJ-----(1329)Calling Extraterrestrial Intelligence Again
- 修改WordPress默认评论表情(附:跳转到多说评论框的方法)
- HDUOJ--------(1312)Red and Black
- HDUOJ---------(1045)Fire Net
- HDUOJ----(1175)连连看
- HDUOJ-----(1072)Nightmare(bfs)
- deque容器的运用一点一点积累
- HDUOJ----(1016)Prime Ring Problem
- WordPress获取文章浏览总数
- HDUOJ----Safecracker(1015)
- hduoj---Tempter of the Bone
- nyoj------------找球号(一)
- nyoj------擅长排列的小明
- HDUOJ-------(1211)RSA
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java|类的继承中两种错误的解决方式 |案例介绍
- 3分钟短文 | PHP时不时蹦出这串神秘字符,有认识的吗?
- 五分钟看懂 Nginx 负载均衡
- 干掉公式 —— numpy 就该这么学
- 全面解析YOLO V4网络结构
- 刺激!一行代码即可导出所有浏览记录
- 你不知道的 node 爬虫原来这么简单
- 带货直播系统源码中,商品详情页是如何搭建起来的
- 基于飞桨复现CVPR 2020 GhostNet的全程解析
- 【即时通信IM】红包消息如何构建?
- YOLOv4损失函数全面解析
- Pandas进阶修炼120题,给你深度和广度的船新体验
- 5万字、97 张图总结操作系统核心知识点
- C++核心准则CP.100:不要使用无锁编程方式,除非绝对必要
- 神了,Excel的这个操作我今天才知道