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

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

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

  • 相关阅读:
    flume采集log4j日志到kafka
    解决spring 事务管理默认不支持SQLException等运行时异常
    基于黑名单的xss过滤器
    VMware创建Linux虚拟机并安装CentOS(三)
    dubbo 常见错误
    Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
    zookeeper工作原理、安装配置、工具命令简介
    VMware创建Linux虚拟机并安装CentOS(二)
    NSPredicate谓词
    IOS网络请求之NSURLSession使用详解
  • 原文地址:https://www.cnblogs.com/ckfeng/p/14018725.html
Copyright © 2011-2022 走看看