- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
品优购电商系统开发
第19章
秒杀解决方案
传智播客.黑马程序员
课程目标
目标1:能够说出秒杀实现思路
目标2:实现秒杀频道首页功能
目标3:实现秒杀商品详细页功能
目标4:实现秒杀下单功能
目标5:实现秒杀支付功能
1.秒杀业务分析
1.1需求分析
所谓“秒杀”,就是网络 \t "/item/%E7%A7%92%E6%9D%80/_blank" 卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟。
秒杀商品通常有两种限制:库存限制、时间限制。
需求:
商家提交秒杀商品申请,录入秒杀商品数据,主要包括:商品标题、原价、秒杀价、商品图片、介绍等信息
运营商审核秒杀申请
秒杀频道首页列出秒杀商品(进行中的)点击秒杀商品图片跳转到秒杀商品详细页。
商品详细页显示秒杀商品信息,点击立即抢购实现秒杀下单,下单时扣减库存。当库存为0或不在活动期范围内时无法秒杀。
秒杀下单成功,直接跳转到支付页面(微信扫码),支付成功,跳转到成功页,填写收货地址、电话、收件人等信息,完成订单。
当用户秒杀下单5分钟内未支付,取消预订单,调用微信支付的关闭订单接口,恢复库存。
1.2数据库表分析
Tb_seckill_goods 秒杀商品表
Tb_seckill_order 秒杀订单表
1.3秒杀实现思路
秒杀技术实现核心思想是运用缓存减少数据库瞬间的访问压力!读取商品详细信息时运用缓存,当用户点击抢购时减少缓存中的库存数量,当库存数为0时或活动期结束时,同步到数据库。 产生的秒杀预订单也不会立刻写到数据库中,而是先写到缓存,当用户付款成功后再写入数据库。
1.4工程搭建与准备
1.4.1工程模块搭建
(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.
1.4.2代码生成
运用《黑马程序员代码生成器》生成代码,拷入工程
1.5秒杀商品后台管理(学员完成)
运营商系统web模块pinyougou-manager-web依赖 pinyougou-seckill-interface
商家系统web模块pinyougou-shop-web依赖pinyougou-seckill-interface
学员实现代码:
1.5.1商家后台
秒杀商品列表
秒杀商品申请
秒杀订单查询
1.5.2运营商后台
待审核秒杀商品列表
秒杀商品审核
(3)秒杀订单查询
2.品优购-秒杀频道首页
2.1需求分析
秒杀频道首页,显示正在秒杀的商品(已经开始,未结束的商品)
2.2后端代码
2.2.1服务接口层
(1)修改pinyougou-seckill-interface的SeckillGoodsService.java
/**
* 返回当前正在参与秒杀的商品
* @return
*/
public List<TbSeckillGoods> findList();
2.2.2服务实现层
修改pinyougou-seckill-service的SeckillGoodsServiceImpl.java
@Override
public List<TbSeckillGoods> findList() {
TbSeckillGoodsExample example=new TbSeckillGoodsExample();
Criteria criteria = example.createCriteria();
criteria.andStatusEqualTo("1");//审核通过
criteria.andStockCountGreaterThan(0);//
您可能关注的文档
- 第一单元 文档 分享.docx
- 第三单元. 文档 分享.docx
- 第2课时 解决问题 文档 分享.ppt
- 练习五 文档 分享.pptx
- 整理和复习 文档 分享.pptx
- 练习十九 文档 分享.pptx
- 练习十二 文档 分享.pptx
- 第4课时 5、4、3、2加几 文档 分享.ppt
- 练习二 文档 分享.pptx
- 第4课时 分与合 文档 分享.ppt
- 地理-内蒙古锡林郭勒盟2023~2024学年第一学期高三年级全盟统考试题和答案.docx
- 历史|湖北元月调考暨湖北省部分市州元月高三期末联考历史试卷及答案.docx
- 历史-内蒙古锡林郭勒盟2023~2024学年第一学期高三年级全盟统考试题和答案.docx
- 数学(理科)-内蒙古锡林郭勒盟2023~2024学年第一学期高三年级全盟统考试题和答案.docx
- 历史丨金太阳24~239C湖北省十堰市2024届高三上学期1月调研考试历史试卷及答案.docx
- 青岛某高层办公楼地下防水施工方案(sbs卷材).docx
- 土木工程实习报告表格.doc
- 工程流体力学教学课件ppt作者闻建龙工程流体力学习题答案部分.doc
- 围手术期管理制度(1)_0.doc
- 2023年公务员多省联考《申论》题(内蒙古旗县卷)及参考答案.doc
文档评论(0)