From b69edf91df77182944ccd376ec0ec1c033bf5b82 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期一, 27 五月 2024 15:25:00 +0800
Subject: [PATCH] 写用户端接口

---
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java         |    2 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java              |    3 +
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java                       |   14 ++--
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java |    2 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java                  |    3 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberLikeDTO.java                       |   19 ++++++
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java      |   77 +++++++++++++++++++++++++
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java         |   20 ++++++
 8 files changed, 131 insertions(+), 9 deletions(-)

diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java
index 9dc38ce..4f64ecd 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java
@@ -1,9 +1,19 @@
 package com.ruoyi.article.controller;
 
 
+import com.ruoyi.article.dto.ArticleCommentsDTO;
+import com.ruoyi.article.dto.MemberLikeDTO;
+import com.ruoyi.article.service.IMemberLikeService;
+import com.ruoyi.common.core.domain.R;
+import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.formula.functions.T;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
 
 /**
  * <p>
@@ -17,4 +27,14 @@
 @RequestMapping("/member-like")
 public class MemberLikeController {
 
+    @Resource
+    private IMemberLikeService memberLikeService;
+    @PostMapping("/saveMemberLike")
+    @ResponseBody
+    @ApiOperation(value = "文章,评论和回复 点赞和取消点赞")
+    public R<T> saveMemberLike(MemberLikeDTO memberLikeDTO) {
+        memberLikeService.saveMemberLike(memberLikeDTO);
+        return R.ok();
+    }
+
 }
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java
index 01597c6..addf007 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java
@@ -73,6 +73,7 @@
 
     @ApiModelProperty(value = "1 评论,2 是回复")
     private  Integer type;
-
+    @ApiModelProperty(value = "点赞数")
+    private Integer likeCount;
 
 }
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java
index 1666013..0b1faa9 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java
@@ -1,8 +1,6 @@
 package com.ruoyi.article.domain;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
@@ -28,7 +26,7 @@
 
     private static final long serialVersionUID = 1L;
 
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Integer id;
 
     @ApiModelProperty(value = "会员id")
@@ -41,22 +39,26 @@
     private Long type;
 
     @ApiModelProperty(value = "创建者")
+    @TableField(value = "create_by", fill = FieldFill.INSERT)
     private String createBy;
 
     @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time", fill = FieldFill.INSERT)
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "更新者")
+    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
     private String updateBy;
 
     @ApiModelProperty(value = "更新时间")
+    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
     private LocalDateTime updateTime;
 
     @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)")
+    @TableLogic
     private Integer delFlag;
 
-    @ApiModelProperty(value = "点赞数")
-    private Long likeNum;
+
 
 
 }
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberLikeDTO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberLikeDTO.java
new file mode 100644
index 0000000..aa3605c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberLikeDTO.java
@@ -0,0 +1,19 @@
+package com.ruoyi.article.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class MemberLikeDTO {
+    @ApiModelProperty(value = "会员id")
+    private Long memberId;
+
+    @ApiModelProperty(value = "资讯id/评论id/回复id")
+    private Long articleId;
+
+    @ApiModelProperty(value = "1 点赞资讯,2 点赞评论, 3 点赞回复")
+    private Long type;
+
+    @ApiModelProperty(value = "1 点赞,2 取消点赞")
+    private Long state;
+}
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java
index b5d537a..e049907 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.article.domain.MemberLike;
+import com.ruoyi.article.dto.MemberLikeDTO;
 
 /**
  * <p>
@@ -13,4 +14,6 @@
  */
 public interface IMemberLikeService extends IService<MemberLike> {
 
+   void saveMemberLike(MemberLikeDTO memberLikeDTO);
+
 }
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java
index f241b86..4c53c83 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java
@@ -1,7 +1,7 @@
 package com.ruoyi.article.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.article.domain.pojo.ArticleComments;
+import com.ruoyi.article.domain.ArticleComments;
 import com.ruoyi.article.dto.ArticleCommentsDTO;
 import com.ruoyi.article.mapper.ArticleCommentsMapper;
 import com.ruoyi.article.service.IArticleCommentsService;
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java
index 1b4913a..e0db56b 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java
@@ -54,7 +54,7 @@
         Page<Article> page = new Page<>(articleDTO.getPageCurr(), articleDTO.getPageSize());
         LambdaQueryWrapper< Article> wrapper= Wrappers.lambdaQuery();
         if (articleDTO.getArticleType()!=0){
-            wrapper.like(Article::getArticleType,articleDTO.getArticleType());
+            wrapper.eq(Article::getArticleType,articleDTO.getArticleType());
         }
         wrapper.like(Article::getTitle,articleDTO.getTitle());
         wrapper.eq(Article::getStatus,2);
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java
index a855882..4655268 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java
@@ -1,10 +1,22 @@
 package com.ruoyi.article.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.article.domain.Article;
+import com.ruoyi.article.domain.ArticleComments;
 import com.ruoyi.article.domain.MemberLike;
+import com.ruoyi.article.dto.MemberLikeDTO;
 import com.ruoyi.article.mapper.MemberLikeMapper;
+import com.ruoyi.article.service.IArticleCommentsService;
+import com.ruoyi.article.service.IArticleService;
 import com.ruoyi.article.service.IMemberLikeService;
+import com.ruoyi.common.core.exception.ServiceException;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -18,4 +30,69 @@
 public class MemberLikeServiceImpl extends ServiceImpl<MemberLikeMapper, MemberLike> implements
         IMemberLikeService {
 
+    @Resource
+    private  IMemberLikeService memberLikeService;
+    @Resource
+    private IArticleService articleService;
+
+    @Resource
+    private IArticleCommentsService articleCommentsService;
+
+    @Override
+    public void saveMemberLike(MemberLikeDTO memberLikeDTO) {
+        if (memberLikeDTO.getMemberId()!=null) {
+            throw new ServiceException("用户ID不能为空");
+        }
+        if (memberLikeDTO.getState()!=null) {
+            throw new ServiceException("类型不能为空");
+        }
+        if (memberLikeDTO.getState()==1){
+            MemberLike memberLike=new MemberLike();
+            memberLike.setMemberId(memberLikeDTO.getMemberId());
+            memberLike.setArticleId(memberLikeDTO.getArticleId());
+            memberLike.setType(memberLikeDTO.getType());
+            if (memberLikeDTO.getType()==1){
+                Article byId = articleService.getById(memberLikeDTO.getArticleId());
+                byId.setLikeCount(byId.getLikeCount()+1);
+                articleService.saveOrUpdate(byId);
+            }
+            if (memberLikeDTO.getType()==2){
+                ArticleComments byId = articleCommentsService.getById(memberLikeDTO.getArticleId());
+                byId.setLikeCount(byId.getLikeCount()+1);
+                articleCommentsService.saveOrUpdate(byId);
+            }
+            if (memberLikeDTO.getType()==3){
+                ArticleComments byId = articleCommentsService.getById(memberLikeDTO.getArticleId());
+                byId.setLikeCount(byId.getLikeCount()+1);
+                articleCommentsService.saveOrUpdate(byId);
+            }
+            memberLikeService.save(memberLike);
+        }else{
+            LambdaQueryWrapper< MemberLike> wrapper= Wrappers.lambdaQuery();
+            wrapper.eq(MemberLike::getMemberId,memberLikeDTO.getMemberId());
+            wrapper.eq(MemberLike::getArticleId,memberLikeDTO.getArticleId());
+            wrapper.eq(MemberLike::getType,memberLikeDTO.getType());
+            wrapper.eq( MemberLike::getDelFlag,0);
+            List< MemberLike> memberLikes = memberLikeService.list(wrapper);
+            for (MemberLike memberLike:memberLikes){
+                memberLikeService.removeById(memberLike);
+
+                if (memberLikeDTO.getType()==1){
+                    Article byId = articleService.getById(memberLikeDTO.getArticleId());
+                    byId.setLikeCount(byId.getLikeCount()-1);
+                    articleService.saveOrUpdate(byId);
+                }
+                if (memberLikeDTO.getType()==2){
+                    ArticleComments byId = articleCommentsService.getById(memberLikeDTO.getArticleId());
+                    byId.setLikeCount(byId.getLikeCount()-1);
+                    articleCommentsService.saveOrUpdate(byId);
+                }
+                if (memberLikeDTO.getType()==3){
+                    ArticleComments byId = articleCommentsService.getById(memberLikeDTO.getArticleId());
+                    byId.setLikeCount(byId.getLikeCount()-1);
+                    articleCommentsService.saveOrUpdate(byId);
+                }
+            }
+        }
+    }
 }

--
Gitblit v1.7.1