A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

控制层
修改 pinyougou-seckill-web 的 SeckillGoodsController.java
[AppleScript] 纯文本查看 复制代码
/** 
  * 当前秒杀的商品 
  * @return 
  */ 
 @RequestMapping("/findList") 
 public List<TbSeckillGoods> findList(){ 
  return seckillGoodsService.findList(); 
 } 

前端代码实现
2.3.1 服务层
在 pinyougou-seckill-web 创建 seckillGoodsService.js
[AppleScript] 纯文本查看 复制代码
//服务层
app.service('seckillGoodsService',function($http){       
 //读取列表数据绑定到表单中 
 this.findList=function(){ 
  return $http.get('seckillGoods/findList.do');   
 }  
}); 

控制层
在 pinyougou-seckill-web 创建 seckillGoodsController.js
[AppleScript] 纯文本查看 复制代码
//控制层  
app.controller('seckillGoodsController' ,function($scope,seckillGoodsService){  
  //读取列表数据绑定到表单中   
 $scope.findList=function(){ 
  seckillGoodsService.findList().success( 
   function(response){ 
    $scope.list=response; 
   }    
  ); 
 }        
}); 

页面
修改 seckill-index.html,引入 js
[AppleScript] 纯文本查看 复制代码
<script type="text/javascript" src="plugins/angularjs/angular.min.js">  </script> 
<script type="text/javascript" src="js/base.js">  </script> 
<script type="text/javascript" src="js/service/seckillGoodsService.js">  </script> 
<script src="js/controller/seckillGoodsController.js">  </script> 

指令
[AppleScript] 纯文本查看 复制代码
<body ng-app="pinyougou" ng-controller="seckillGoodsController" ng-init="findList()"> 

循环列表的实现
[AppleScript] 纯文本查看 复制代码
<li class="seckill-item" ng-repeat="pojo in list"> 
 <div class="pic"> 
  <img src="{{pojo.smallPic}}" width="290px" height="290px" alt=''>  
</div> 
 <div class="intro"><span>{{pojo.title}}</span></div> 
 <div class='price'><b class='sec-price'>¥{{pojo.costPrice}}</b><b 
class='ever-price'>¥{{pojo.price}}</b></div> 
 <div class='num'> 
  <div>已售{{ ((pojo.num-pojo.stockCount)/pojo.num*100).toFixed(0) }}%</div> 
  <div class='progress'> 
   <div class='sui-progress progress-danger'><span style='width: 
{{ ((pojo.num-pojo.stockCount)/pojo.num*100).toFixed(0) }}%;' 
class='bar'></span></div> 
  </div> 
  <div>剩余<b class='owned'>{{pojo.stockCount}}</b>件</div> 
 </div> 
 <a class='sui-btn btn-block btn-buy' href='seckill-item.html#?id={{pojo.id}}' 
target='_blank'>立即抢购</a> 
</li> 

缓存处理

修改 pinyougou-seckill-service 的 SeckillGoodsServiceImpl.java
[AppleScript] 纯文本查看 复制代码
@Autowired 
 private RedisTemplate redisTemplate; 
   
 @Override 
 public List<TbSeckillGoods> findList() { 
  //获取秒杀商品列表 
  List<TbSeckillGoods> seckillGoodsList = 
redisTemplate.boundHashOps("seckillGoods").values(); 
  if(seckillGoodsList==null || seckillGoodsList.size()==0){ 
   TbSeckillGoodsExample example=new TbSeckillGoodsExample(); 
   Criteria criteria = example.createCriteria(); 
   criteria.andStatusEqualTo("1");//审核通过 
   criteria.andStockCountGreaterThan(0);//剩余库存大于 0 
   criteria.andStartTimeLessThanOrEqualTo(new Date());//开始时间小于等于当前
时间 
   criteria.andEndTimeGreaterThan(new Date());//结束时间大于当前时间 
   seckillGoodsList= seckillGoodsMapper.selectByExample(example);   
   //将商品列表装入缓存 
   System.out.println("将秒杀商品列表装入缓存"); 
   for(TbSeckillGoods seckillGoods:seckillGoodsList){ 
   
 redisTemplate.boundHashOps("seckillGoods").put(seckillGoods.getId(), 
seckillGoods); 
   }    
  } 
  return seckillGoodsList; 
 }


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马