业务流程图:
流程说明:
用户在点击秒杀按钮,选择规格尺寸,数量后,点击确认最终跳转到确认订单页。
在点击"确认"按钮后,api会把相关参数封装后调用促销结算接口。
1.促销这边首先做基本参数的校验判断,然后是单用户每次最大购买数量,单用户最大购买次数判断,秒杀活动时间,秒杀会员范围判断。
2.促销这边判断完以后再做计算商品秒杀金额,并组装前端商品信息,是否包邮信息,并将这些信息返回给api.
3.提交订单,调用订单系统保存订单接口。
4.保存订单接口先做订单主信息,订单明细信息的校验。然后是做防重复提交,前端提交订单时,传递的checkId,用于防止后台重复处理,如下图所示。
5.生成订单号,调用促销预占秒杀活动库存接口。
6.预占秒杀活动接口先判断秒杀活动是否存在,活动状态是否是进行中,如果是进行中则计算秒杀库存,redis中存有秒杀预占库存,秒杀一次,秒杀预占库存就加秒杀商品的数量,加完以后跟秒杀活动库存比较,如果大于秒杀活动库存则提示库存不足,如果库存足够,则继续往下执行,会员购买次数加1,存入redis.返回true给订单。
7.订单中心如果捕捉到异常则调促销中心加库存接口。扣减订单真实库存,订单侧的预占库存加秒杀商品的数量,可用库存减秒杀商品的数量,订单商品总库存不变,一开始订单商品总库存==订单可用库存。如果订单侧扣减失败则要回滚库存,要调促销侧的加库存接口。
8.促销侧加库存接口逻辑是,活动库存加回来,会员购买次数减1.
9.订单侧扣减完库存,更新缓存和DB。
10.订单支付完成后,调订单接口,修改订单状态。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!