Skip to content

Latest commit

 

History

History
executable file
·
36 lines (21 loc) · 2.34 KB

mall逻辑梳理.md

File metadata and controls

executable file
·
36 lines (21 loc) · 2.34 KB

mall学习教程 (macrozheng.com)

gateway + Oauth2 认证授权

采用的是密码授权模式:

  1. 客户端请求认证服务申请令牌

  2. 认证服务生成令牌,认证服务采用非对称加密算法,使用私钥生成令牌。

  3. 客户端携带令牌访问资源服务客户端在Http header 中添加: Authorization:Bearer令牌。

  4. 资源服务请求认证服务校验令牌的有效性资源服务接收到令牌,使用公钥校验令牌的合法性。

  5. 令牌有效,资源服务向客户端响应资源信息

portal前台商城

依据购物车信息生成确认订单逻辑

后台拿到提交参数(商品ID列表):

  • **获取购物车信息:**获取当前会员ID,以当前会员ID和商品id列表查询。listPromotion()(依据当前登录用户id得到所有的购物车商品详细信息(OmsCartItem)与要购买的商品id进行匹配筛选,查询计算并添加促销活动(促销、打折、满减)的待购买商品信息(CartPromotionItem extend OmsCartItem ,添加真实库存、减免价格等属性) 列表并返回。
  • 获取用户收货地址列表
  • **获取可用优惠券列表:**依据购物车中商品详细信息CartPromotionItem获取可用优惠券列表(查询用户领取的所有优惠券、依据优惠券类型(指定分类、全场通用、指定商品)以及购物车商品来判断优惠券是否可用)
  • 获取用户积分及积分使用规则
  • 计算总金额、活动优惠、应付金额

订单生成逻辑

  • 获得订单提交参数(收货地址、商品id列表、优惠券ID、积分以及支付方式),调用listPromotion()得到待购买商品信息,然后遍历封装生成下单商品。
  • 判断商品是否均有库存、是否使用优惠券并对下单商品增加优惠券金额属性、是否使用积分 并增加处理(分摊)。
  • 计算实付金额并进行库存锁定,计算出最终支付金额、并将订单信息插入数据库(待支付状态),赠送对应的成长值、积分等,更新优惠券使用状态以及扣分扣增,删除购物车对应商品,mq发送延时消息取消订单。
  • 订单生成后调用支付接口,支付完成后修改订单状态,恢复商品锁定库存、完成库存更新