2018年08月19日 12:00:36 GodBbb 阅读数:176更多
个人分类: 个人成长 实战项目 品优购
今日目标:
(1)理解秒杀实现思路
(2)实现秒杀频道首页功能
(3)实现秒杀商品详细页功能
(4)实现秒杀下单功能
(5)实现秒杀支付功能
目录
1、秒杀实现思路
1.1 需求分析
1.2 实现思路
1.3 准备工作
2、秒杀频道首页
2.1 需求分析
2.2 后端代码
2.3 前端代码
2.4 引入缓存
3、秒杀商品详细页
3.1 需求分析
3.2 显示商品详细页数据
3.3 秒杀倒计时,$interval服务
4、秒杀商品下单
4.1 需求分析
4.2 后端代码
4.3 前端代码
5、秒杀支付
5.1 需求分析
5.2 生成支付二维码
5.3 支付成功,保存订单
5.4 订单超时处理
1、秒杀实现思路
1.1 需求分析
所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟。
秒杀商品通常有两种限制:库存限制、时间限制。
详细:
商家提交秒杀商品申请,录入秒杀商品数据,主要包括:商品标题、原价、秒杀价、商品图片、介绍等信息
运营商审核秒杀申请
秒杀频道首页列出秒杀商品(进行中的)点击秒杀商品图片跳转到秒杀商品详细页。
商品详细页显示秒杀商品信息,点击立即抢购实现秒杀下单,下单时扣减库存。当库存为0或不在活动期范围内时无法秒杀。
秒杀下单成功,直接跳转到支付页面(微信扫码),支付成功,跳转到成功页,填写收货地址、电话、收件人等信息,完成订单。
当用户秒杀下单5分钟内未支付,取消预订单,调用微信支付的关闭订单接口,恢复库存。
1.2 实现思路
秒杀技术实现核心思想是运用缓存减少数据库瞬间的访问压力!读取商品详细信息时运用缓存,当用户点击抢购时减少缓存中的库存数量,当库存数为0时或活动期结束时,同步到数据库。 产生的秒杀预订单也不会立刻写到数据库中,而是先写到缓存,当用户付款成功后再写入数据库。
1.3 准备工作
(1)创建秒杀服务接口模块 pinyougou-seckill-interface ,依赖pinyougou-pojo
(2)创建秒杀服务模块pinyougou-seckill-service (war),pom.xml引入依赖参见其它服务工程,依赖 pinyougou-seckill-interface , Tomcat7插件运行端口为9009。添加web.xml、 spring 配置文件参见其它服务工程, dubbox的端口为20889。
(3)创建秒杀频道web模块 pinyougou-seckill-web(war) pom.xml引入依赖参见cart_web工程(需添加单点登录和权限控制),依赖 pinyougou-seckill-interface ,Tomcat7插件运行端口为9109 添加web.xml、 spring 配置文件参见cart_web工程。
将秒杀相关的页面及资源拷贝到此模块。添加angularJS.
2、秒杀频道首页
2.1 需求分析
秒杀频道首页,显示正在秒杀的商品(已经开始,未结束的商品)