品优购_day19_课程讲义_V1.3.docx

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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);//

文档评论(0)

文人教参 + 关注
实名认证
内容提供者

老师教学,学生学习备考课程、成人语言培训课程及教材等为提升学生终身学习竞争力,塑造学生综合能力素质,赋能学生而努力

版权声明书
用户编号:6103150140000005

1亿VIP精品文档

相关文档