Java之品优购课程讲义_day19(3)

控制层

修改 pinyougou-seckill-web 的 SeckillGoodsController.java 

/**
  * 当前秒杀的商品 
  * @return
  */
 @RequestMapping("/findList")
 public List<TbSeckillGoods> findList(){
  return seckillGoodsService.findList(); 
 }

前端代码实现 
2.3.1 服务层 
在 pinyougou-seckill-web 创建 seckillGoodsService.js 

//服务层
app.service('seckillGoodsService',function($http){      
 //读取列表数据绑定到表单中 
 this.findList=function(){
  return $http.get('seckillGoods/findList.do');   
 } 
});

控制层 
在 pinyougou-seckill-web 创建 seckillGoodsController.js 

//控制层  
app.controller('seckillGoodsController' ,function($scope,seckillGoodsService){ 
  //读取列表数据绑定到表单中   
 $scope.findList=function(){
  seckillGoodsService.findList().success(
   function(response){
    $scope.list=response; 
   }   
  ); 
 }       
});

页面 
修改 seckill-index.html,引入 js 

<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>

指令 

<body ng-app="pinyougou" ng-controller="seckillGoodsController" ng-init="findList()">

循环列表的实现 

<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 

@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; 
 }

转载于:https://blog.51cto.com/13517854/2311812

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值