订单架构文档
1 交易的概念
指用户与平台之间,用户将平台的商品加入购物车,并提交订单并付款给平台,平台看到用户发起的订单,并将商品发送给用户,用户确认收款,至此完成了一笔成功的交易。
通过以上的概念得知交易包含:用户,商品,购物车,订单,平台。其中用户和平台代表交易的双方,商品,购物车和订单代表交易的媒介。
2 购物车架构
2.1 简述作用
购物车中存储的是平台的商品,这些商品有平台自营也有平台各个商家的商品,当用户将商品添加到购物车时,需要按照平台和各个商家来进行区分。
2.2 添加商品到购物车
2.2.1 流程图
2.2.2 流程图思路描述:
- 调用CartController的添加商品接口。
- 根据商品的id读取商品的信息。
- 根据商品的id读取参与的促销活动。
- 把以上得到的信息存储到cartPo中。
- 将cartPo压入到reids。
- 调用IPromotionManager的购物车价格计算方法。
2.3 展示购物车数据
2.3.1 流程图
2.3.2流程图思路说明
- 调用CartController的读取购物车数据接口。
- 通过当前会话的key读取redis缓存中的购物车列表。
- 返回购物车数据列表。
3 结算参数架构
3.1 简述作用
结算参数包含(收货人信息,支付方式,配送方式,发票信息,送货时间等),这些信息是用户需要告知平台,如何把商品交易到用户手中。
添加结算参数信息
3.2.1 流程图
3.2.2 流程思路说明
- 调用CheckoutParamController的putParam接口用户发送的参数信息。
- 设置参数信息。
- 读取当前会员的默认收货人信息。
- 检查session是否已上锁。
- 若没有上锁则将结算参数信息压入redis中。
3.3 读取结算参数信息
3.3.1 流程图
3.3.2 思路说明(看红框处)
- 调用CheckoutParamController读取结算参数的接口
- 调用结算参数业务层。
- 从redis中读取结算参数。
- 返回给用户。
4 订单架构
4.1 简述作用
把购物车中的商品,结算参数信息归拢在一起,并按照店铺拆分,购物车中每一个店铺为一个订单,一笔交易包含多个订单,交易价格为我的购物车中所有商品的价格。
4.2 创建交易
4.2.1 流程图
4.2.2 流程图思路描述
- 调用OrderCreateController创建订单接口
- 调用RedisTradeCreator创建交易方法
- 调用ICartmanager接口,从redis读取购物车数据。
- 检测方法: a)调用IGoodsManager检测接口,检测商品是否合规。 b)调用IPromotionManager检测接口,检测促销方式是否合规。
- 调用ICheckoutParamManager接口,从redis读取结算参数。
- 调用IOrderPriceManager接口,从redis中读取交易价格信息。
- 把交易信息存储到redis中
- 把交易发送给消息队列(MQ)。
- 返回给用户创建。