zoukankan      html  css  js  c++  java
  • 使用springboot整合mybatis-plus实现点赞功能

    表结构如下

    文章表

     

    点赞记录表 

    member_id  等于上面的发表人的id

    whether_attention:是否点赞          0代表没点赞   代表已点赞

    service

     一个用户对同一条文章只能点赞一次,第二次就是取消点赞

    1.首先写个添加点赞记录接口 与 取消点赞记录接口 和 查询点赞记录的接口(根据发表人id和文章id查询)

    点赞记录接口:添加的的whether_attention为1  代表已点赞

    取消点赞接口:根据文章id修改whether_attention为0  代表取消点赞

    这两个接口使用mybatis-pius实现的话,很简单,这里就不粘代码了哈,需要请留言就好。

    查询点赞记录的接口:根据发表人id和文章id查询进行查询,查询whether_attention为1的数据,代表已点赞。

    controller

    @ApiOperation("文章点赞")
        @PostMapping("articleLike")
        public AjaxResult addUpdateLikeArticles(@RequestBody LikeArticles likeArticles) {
            //查询文章详情
            Articles article = articlesService.selectArticlesById(Long.valueOf(likeArticles.getArticleId()));
            if (article == null) {
                return AjaxResult.error();
            }
            try {//查询文章点赞记录  根据发表人id和文章id查询进行查询
                LikeArticles articlesLikeArticles = likeArticlesService.selectMemberByMemberId(likeArticles.getMemberId, likeArticles.getArticleId());
                //判断点赞记录是否为空,如何不为空就取消点赞 并且点赞-1;  如果为空就添加点赞进行点赞+1操作
                if (articlesLikeArticles != null) {
                    //取消点赞
                    Long likeCount = article.getLikeCount() - 1;
                    article.setLikeCount(likeCount < 0 ? 0 : likeCount);
                    articlesService.updateArticles(article);
                    //取消点赞记录
                    likeArticlesService.updateLikeArticles(likeArticles);
                } else {
                    //添加点赞
                    article.setLikeCount(article.getLikeCount() + 1);
                    articlesService.updateArticles(article);
                    //添加点赞记录
                    likeArticlesService.saveLikeArticles(likeArticles);
                }
                return AjaxResult.success();
            } catch (Exception e) {
                e.printStackTrace();
                return AjaxResult.error();
            }
        }

    无论是点赞,收藏、关注都可以参考下这种方法来实现,要是业务比较复杂的话,那就另想办法了哈。 

    有问题请留言,有错误请指出哈。

  • 相关阅读:
    FreeNAS的安装使用记录
    slackware中配置命令行下的分辨率
    创建类的理由
    软件开发人员的入门级书单
    Pow(x, n)
    Group Anagrams
    Rotate Image
    Permutations
    Multiply Strings
    Combination Sum II
  • 原文地址:https://www.cnblogs.com/ckfeng/p/14018725.html
Copyright © 2011-2022 走看看