您当前的位置: 首页 > 

java持续实践

暂无认证

  • 1浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

黑马十次方项目day03-20之控制不能重复点赞

java持续实践 发布时间:2019-01-19 19:24:28 ,浏览量:1

文章目录
      • 引入redis的依赖
      • Controller
      • 测试
      • 关于视频中重复点赞问题的个人纠正
实现思路只用在点赞成功之后,往redis缓存中,存入当前用户redis的标示就行了.

引入redis的依赖

在docker中启动redis. 导入redis的依赖

  
            org.springframework.boot
            spring-boot-starter-data-redis
        

在yml中,加入redis的配置,写上redis的地址

Controller

@Autowired
private RedisTemplate redisTemplate;

/**
     * 方法名: thumbup
     * 方法描述: 进行点赞
     * 修改日期: 2019/1/19 18:01
      * @param spitId
     * @return entity.Result
     * @author taohongchao
     * @throws
     */
    @RequestMapping(value = "/thumbup/{spitId}",method = RequestMethod.PUT)
    public Result thumbup(@PathVariable String spitId){
        //判断当前的用户是否已经点赞了,由于没有搞登录认证,先把userid写死
        String userId = "111";

        //判断当前用户是否已经点赞了
        if (redisTemplate.opsForValue().get("thumbup_" + userId) != null) {
            return new Result(false, StatusCode.REMOTEERROR, "不能重复点赞");
        }
        //调用service层,进行点赞
        spitService.thumbup(spitId);
        //如果用户点赞成功,就把点赞的信息,存入redis中
        redisTemplate.opsForValue().set("thumbup_"+userId,1);
        return new Result(true, StatusCode.OK, "点赞成功");
    }
测试

发送点赞的请求,进行点赞. 对同一个吐槽的id进行点赞请求时,提示如下

关于视频中重复点赞问题的个人纠正

在视频中,对于重复点赞,只把用户的id存入了redis的缓存,作为了key. 那么导致的结果是只能对一个吐槽进行点赞,即使是第一次点赞别的吐槽,也会提示不能重复点赞. 因此要把用户的id和吐槽的id, 共同作为redis的键进行.

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0437s