使用springboot整合mybatis-plus實現點贊功能
阿新 • • 發佈:2020-11-22
表結構如下
文章表
點贊記錄表
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();
}
}
無論是點贊,收藏、關注都可以參考下這種方法來實現,要是業務比較複雜的話,那就另想辦法了哈。
有問題請留言,有錯誤請指出哈。