@Autowired RedisService redisService; @Autowired GoodsService goodsService; @Autowired ThymeleafViewResolver thymeleafViewResolver; @Autowired ApplicationContext applicationContext; /** * 商品列表 * */ @RequestMapping(value="/to_list", produces="text/html") @ResponseBody public String list(HttpServletRequest request, HttpServletResponse response, Model model,MiaoshaUser user) { model.addAttribute("user", user); //取缓存 String html = redisService.get(GoodsKey.getGoodsList, "", String.class); if(!StringUtils.isEmpty(html)) { return html; } List<GoodsVo> goodsList = goodsService.listGoodsVo(); model.addAttribute("goodsList", goodsList); // return "goods_list"; SpringWebContext ctx = new SpringWebContext(request,response, request.getServletContext(),request.getLocale(), model.asMap(), applicationContext ); //手动渲染 html = thymeleafViewResolver.getTemplateEngine().process("goods_list", ctx); if(!StringUtils.isEmpty(html)) { redisService.set(GoodsKey.getGoodsList, "", html);// 渲染成功更新缓存 } return html; }
@RequestMapping(value="/to_detail2/{goodsId}",produces="text/html") 
    @ResponseBody 
    public String detail2(HttpServletRequest request, HttpServletResponse response, Model model,MiaoshaUser user, 
            @PathVariable("goodsId")long goodsId) { 
        model.addAttribute("user", user); 
         
        //取缓存 
        String html = redisService.get(GoodsKey.getGoodsDetail, ""+goodsId, String.class); 
        if(!StringUtils.isEmpty(html)) { 
            return html; 
        } 
        //手动渲染 
        GoodsVo goods = goodsService.getGoodsVoByGoodsId(goodsId); 
        model.addAttribute("goods", goods); 
         
        long startAt = goods.getStartDate().getTime(); 
        long endAt = goods.getEndDate().getTime(); 
        long now = System.currentTimeMillis(); 
         
        int miaoshaStatus = 0; 
        int remainSeconds = 0; 
        if(now < startAt ) {//秒杀还没开始,倒计时 
            miaoshaStatus = 0; 
            remainSeconds = (int)((startAt - now )/1000); 
        }else  if(now > endAt){//秒杀已经结束 
            miaoshaStatus = 2; 
            remainSeconds = -1; 
        }else {//秒杀进行中 
            miaoshaStatus = 1; 
            remainSeconds = 0; 
        } 
        model.addAttribute("miaoshaStatus", miaoshaStatus); 
        model.addAttribute("remainSeconds", remainSeconds); 
//        return "goods_detail"; 
         
        SpringWebContext ctx = new SpringWebContext(request,response, 
                request.getServletContext(),request.getLocale(), model.asMap(), applicationContext ); 
        html = thymeleafViewResolver.getTemplateEngine().process("goods_detail", ctx); 
        if(!StringUtils.isEmpty(html)) { 
            redisService.set(GoodsKey.getGoodsDetail, ""+goodsId, html); 
        } 
        return html; 
    }
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/15683.html
