需求:
1. 实现订单信息的生成提交:整合订单表信息、订单详情表信息、订单物流表信息;
2. 实现扣减库存接口;
3. 清理超时未支付订单;

需求分析:

实现流程:
创建订单业务比较复杂,流程如下:
- 1)根据雪花算法生成订单id
- 2)商品微服务提供FeignClient,实现根据id查询商品的接口
- 3)根据itemId查询商品信息
- 4)基于商品价格、购买数量计算商品总价:totalFee
- 5)封装Order对象,初识status为未支付
- 6)将Order写入数据库tb_order表中
- 7)将商品信息、orderId信息封装为OrderDetail对象,写入tb_order_detail表
- 8)将user-service的根据id查询地址接口封装为FeignClient
- 9)根据addressId查询user-service服务,获取地址信息
- 10)将地址封装为OrderLogistics对象,写入tb_order_logistics表
- 11)在item-service提供减库存接口,并编写FeignClient
- 12)调用item-service的减库存接口
需要注意的是,注意确保跨服务业务的事务安全性。
何时扣库存?

本文详细介绍了企业级开发项目中下单业务的逻辑,包括订单信息整合、库存扣减以及超时订单的清理。在下单过程中,通过FeignClient调用商品和服务接口,实现订单、订单详情和物流信息的存储。同时,采用延迟队列确保30分钟后未支付的订单被自动取消,恢复相应库存。整个流程注重事务安全性和幂等性设计。
最低0.47元/天 解锁文章
2936





