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

 

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

 

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM