• 使用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();
            }
        }

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

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

  • 相关阅读:
    webview学习
    Android中webview html5 自动播放本地视频
    Android中使用WebView实现全屏切换播放网页视频
    Android中实现Activity的透明背景效果
    App过大
    Android 9.0网络权限适配
    Android中自定义环形图2
    Android中自定义环形图
    Android中自定义水球
    vue学习指南:第五篇(详细)
  • 原文地址:https://www.cnblogs.com/ckfeng/p/14018725.html
Copyright © 2020-2023  润新知