商品秒杀代码实战
该业务流程图中可以看出,后端接口在接收前端用户的秒杀请求时,其核心处理逻辑为: (1)首先判断当前用户是否已经抢购过该商品了,如果否,则代表用户没有抢购过该商品,可以进入下一步的处理逻辑 (2)判断该商品可抢的剩余数量,即库存是否充足(即是否大于0),如果是,则进入下一步的处理逻辑 (3)扣减库存,并更新数据库的中对应抢购记录的库存(一般是减一操作),判断更新库存的数据库操作是否成功了,如果是,则创建用户秒杀成功的订单,并异步发送短信或者邮件通知信息通知用户 (4)以上的操作逻辑如果有任何一步是不满足条件的,则直接结束整个秒杀的流程,即秒杀失败! 接下来,我们仍然基于MVC的开发模式,采用代码实战实现这一功能模块! (1)首先是在KillController 控制器开发接收“前端用户秒杀请求”的功能方法,其中,该方法需要接收前端请求过来的“待秒杀Id”,而当前用户的Id可以通过上一篇博文介绍的Shiro 的会话模块Session进行获取!方法涉及的功能模块稍微比较多,即主要包含了“分布式唯一ID-雪花算法的应用”、“整合RabbitMQ异步发送通知消息给用户”、“基于JavaMail开发发送邮件的功能”、“死信队列失效超时未支付的订单”等等,这些功能模块将在后面的小节一步一步展开进行介绍! (4)最后是需要在前端页面info.jsp开发“提交用户秒杀请求”的功能,其部分核心源代码如下所示:中,提交的数据是采用application/json的格式提交的,即json的格式!并采用POST的请求方法进行交互!
(5)将整个系统、项目采用外置的tomcat运行起来,观察控制台的输出信息,如果没有报错信息,则代表整体的实战代码没有语法级别的错误!点击“详情”按钮,登录成功后,进入“待秒杀商品的的详情”,可以查看当前待秒杀商品的详情信息;点击“抢购”按钮,即可进入“秒杀”环节,后端经过一系列的逻辑处理之后,将处理的结果返回给到前端,如下图所示: (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |