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

---
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleVO.java                                    |   60 ++++++
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java                    |   11 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberArticleCollectionService.java         |    8 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java                 |  152 +++++++++++++++-
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java         |   14 +
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberArticleCollectionController.java    |   34 +++
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberLikeDTO.java                               |    3 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/MemberArticleCollectionVO.java                    |   41 ++++
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/ArticleCommentsDTO.java                          |    3 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java |   92 ++++++++++
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleCommentsVO.java                            |    6 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberArticleCollectionDTO.java                  |   18 ++
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java                         |    5 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java              |   70 ++++---
 14 files changed, 460 insertions(+), 57 deletions(-)

diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java
index f5dfd23..c71df1d 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java
@@ -3,8 +3,10 @@
 
 import com.ruoyi.article.domain.Article;
 import com.ruoyi.article.dto.ArticleDTO;
+import com.ruoyi.article.dto.MemberLikeDTO;
 import com.ruoyi.article.service.IArticleService;
 import com.ruoyi.article.vo.ArticleCommentsVO;
+import com.ruoyi.article.vo.ArticleVO;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.system.api.domain.MemberAddress;
@@ -42,8 +44,8 @@
     @PostMapping("/getArticleList")
     @ResponseBody
     @ApiOperation(value = "获取资讯")
-    public R<PageDTO<Article>> getArticleList(ArticleDTO articleDTO) {
-      return R.ok(iArticleService.getArticleList(articleDTO));
+    public R<PageDTO<ArticleVO>> getArticleList(ArticleDTO articleDTO) {
+        return R.ok(iArticleService.getArticleList(articleDTO));
     }
 
     @PostMapping("/getMemberArticleList")
@@ -73,11 +75,9 @@
     @PostMapping("/getMemberArticleInfo")
     @ResponseBody
     @ApiOperation(value = "获取资讯详情")
-    public R<Article> getMemberArticleInfo(ArticleDTO articleDTO) {
+    public R<ArticleVO> getMemberArticleInfo(ArticleDTO articleDTO) {
         return R.ok(iArticleService.getMemberArticleInfo(articleDTO));
     }
-
-
 
 
     @PostMapping("/getArticleCommentsList")
@@ -94,4 +94,5 @@
         iArticleService.getReport(articleDTO);
         return R.ok();
     }
+
 }
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberArticleCollectionController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberArticleCollectionController.java
index 02aa1c2..18d7db9 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberArticleCollectionController.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberArticleCollectionController.java
@@ -1,9 +1,24 @@
 package com.ruoyi.article.controller;
 
 
+import com.ruoyi.article.domain.Article;
+import com.ruoyi.article.dto.ArticleDTO;
+import com.ruoyi.article.dto.MemberArticleCollectionDTO;
+import com.ruoyi.article.dto.MemberLikeDTO;
+import com.ruoyi.article.service.IMemberArticleCollectionService;
+import com.ruoyi.article.vo.ArticleVO;
+import com.ruoyi.article.vo.MemberArticleCollectionVO;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.page.PageDTO;
+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 +32,23 @@
 @RequestMapping("/member-article-collection")
 public class MemberArticleCollectionController {
 
+    @Resource
+    private IMemberArticleCollectionService memberArticleCollectionService;
+
+    @PostMapping("/saveMemberArticleCollection")
+    @ResponseBody
+    @ApiOperation(value = "文章收藏和取消收藏")
+    public R<T> saveMemberArticleCollection(MemberArticleCollectionDTO memberArticleCollectionDTO) {
+        memberArticleCollectionService.saveMemberArticleCollection(memberArticleCollectionDTO);
+        return R.ok();
+    }
+
+
+    @PostMapping("/getMemberArticleCollection")
+    @ResponseBody
+    @ApiOperation(value = "获取用户收藏资讯")
+    public R<PageDTO<MemberArticleCollectionVO>> getMemberArticleCollection(ArticleDTO articleDTO) {
+        return R.ok(memberArticleCollectionService.getMemberArticleCollection(articleDTO));
+    }
+
 }
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/ArticleCommentsDTO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/ArticleCommentsDTO.java
index 314c084..138fda2 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/ArticleCommentsDTO.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/ArticleCommentsDTO.java
@@ -1,12 +1,13 @@
 package com.ruoyi.article.dto;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.common.core.web.page.BasePage;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.time.LocalDateTime;
 @Data
-public class ArticleCommentsDTO {
+public class ArticleCommentsDTO extends BasePage {
 
     @ApiModelProperty(value = "资讯评论id")
     @TableId(value = "id", type = IdType.ASSIGN_ID)
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberArticleCollectionDTO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberArticleCollectionDTO.java
new file mode 100644
index 0000000..6ac6d58
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberArticleCollectionDTO.java
@@ -0,0 +1,18 @@
+package com.ruoyi.article.dto;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class MemberArticleCollectionDTO extends BasePage {
+
+    @ApiModelProperty(value = "收藏目标id")
+    private Long targetId;
+
+    @ApiModelProperty(value = "会员id")
+    private Long memberId;
+
+    @ApiModelProperty(value = "1收藏,2 取消收藏")
+    private Long state;
+}
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
index aa3605c..1dadc99 100644
--- 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
@@ -1,10 +1,11 @@
 package com.ruoyi.article.dto;
 
+import com.ruoyi.common.core.web.page.BasePage;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
-public class MemberLikeDTO {
+public class MemberLikeDTO extends BasePage {
     @ApiModelProperty(value = "会员id")
     private Long memberId;
 
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java
index 5b522b4..2186e9b 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java
@@ -4,6 +4,7 @@
 import com.ruoyi.article.domain.Article;
 import com.ruoyi.article.dto.ArticleDTO;
 import com.ruoyi.article.vo.ArticleCommentsVO;
+import com.ruoyi.article.vo.ArticleVO;
 import com.ruoyi.common.core.utils.page.PageDTO;
 
 /**
@@ -16,7 +17,7 @@
  */
 public interface IArticleService extends IService<Article> {
 
-    PageDTO< Article> getArticleList(ArticleDTO articleDTO);
+    PageDTO<ArticleVO> getArticleList(ArticleDTO articleDTO);
 
     PageDTO<Article> getMemberArticleList(ArticleDTO articleDTO);
 
@@ -24,7 +25,7 @@
 
     void delMemberArticle(ArticleDTO articleDTO);
 
-    Article getMemberArticleInfo(ArticleDTO articleDTO);
+    ArticleVO getMemberArticleInfo(ArticleDTO articleDTO);
 
     PageDTO<ArticleCommentsVO> getArticleCommentsList(ArticleDTO articleDTO);
     void getReport(ArticleDTO articleDTO);
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberArticleCollectionService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberArticleCollectionService.java
index 16cfa71..6fbea11 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberArticleCollectionService.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberArticleCollectionService.java
@@ -2,6 +2,11 @@
 
 import com.ruoyi.article.domain.MemberArticleCollection;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.article.dto.ArticleDTO;
+import com.ruoyi.article.dto.MemberArticleCollectionDTO;
+import com.ruoyi.article.vo.ArticleVO;
+import com.ruoyi.article.vo.MemberArticleCollectionVO;
+import com.ruoyi.common.core.utils.page.PageDTO;
 
 /**
  * <p>
@@ -12,5 +17,8 @@
  * @since 2024-05-27
  */
 public interface IMemberArticleCollectionService extends IService<MemberArticleCollection> {
+   void saveMemberArticleCollection(MemberArticleCollectionDTO memberArticleCollectionDTO);
+
+   PageDTO<MemberArticleCollectionVO> getMemberArticleCollection(ArticleDTO articleDTO);
 
 }
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 4c53c83..3e82b6e 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,10 +1,12 @@
 package com.ruoyi.article.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.article.domain.Article;
 import com.ruoyi.article.domain.ArticleComments;
 import com.ruoyi.article.dto.ArticleCommentsDTO;
 import com.ruoyi.article.mapper.ArticleCommentsMapper;
 import com.ruoyi.article.service.IArticleCommentsService;
+import com.ruoyi.article.service.IArticleService;
 import com.ruoyi.common.core.exception.ServiceException;
 import org.springframework.stereotype.Service;
 
@@ -23,6 +25,9 @@
         ServiceImpl<ArticleCommentsMapper, ArticleComments> implements IArticleCommentsService {
     @Resource
     private  IArticleCommentsService articleCommentsService;
+
+    @Resource
+    private IArticleService articleService;
 
     @Override
     public void saveMemberArticleComments(ArticleCommentsDTO articleCommentsDTO) {
@@ -46,11 +51,20 @@
             articleComments.setBmemberId(articleCommentsDTO.getBmemberId());
             articleComments.setType(2);
         }
+        Article byId = articleService.getById(articleCommentsDTO.getArticleId());
+        byId.setCommentCount(byId.getCommentCount()+1);
+        articleService.saveOrUpdate(byId);
         articleCommentsService.saveOrUpdate(articleComments);
     }
 
     @Override
     public void delMemberArticleComments(ArticleCommentsDTO articleCommentsDTO) {
+        ArticleComments byId1 = articleCommentsService.getById(articleCommentsDTO.getId());
+
+        Article byId = articleService.getById(byId1.getArticleId());
+        byId.setCommentCount(byId.getCommentCount()-1);
+        articleService.saveOrUpdate(byId);
+
         articleCommentsService.removeById(articleCommentsDTO.getId());
     }
 }
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 e0db56b..68bba48 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
@@ -6,14 +6,20 @@
 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.MemberArticleCollection;
+import com.ruoyi.article.domain.MemberLike;
 import com.ruoyi.article.dto.ArticleDTO;
 import com.ruoyi.article.mapper.ArticleMapper;
 import com.ruoyi.article.service.IArticleCommentsService;
 import com.ruoyi.article.service.IArticleService;
+import com.ruoyi.article.service.IMemberArticleCollectionService;
+import com.ruoyi.article.service.IMemberLikeService;
 import com.ruoyi.article.vo.ArticleCommentsVO;
+import com.ruoyi.article.vo.ArticleVO;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.enums.ArticleTypeEnum;
 import com.ruoyi.common.core.enums.AuditStatusEnum;
+import com.ruoyi.common.core.utils.bean.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.system.api.domain.Member;
 import com.ruoyi.system.api.domain.MemberAddress;
@@ -47,10 +53,16 @@
     private IArticleCommentsService articleCommentsService;
 
     @Resource
-    private MemberClient emberClient;
+    private MemberClient memberClient;
+
+    @Resource
+    private IMemberLikeService memberLikeService;
+
+    @Resource
+    private IMemberArticleCollectionService memberArticleCollectionService;
 
     @Override
-    public PageDTO<Article> getArticleList(ArticleDTO articleDTO) {
+    public PageDTO<ArticleVO> getArticleList(ArticleDTO articleDTO) {
         Page<Article> page = new Page<>(articleDTO.getPageCurr(), articleDTO.getPageSize());
         LambdaQueryWrapper< Article> wrapper= Wrappers.lambdaQuery();
         if (articleDTO.getArticleType()!=0){
@@ -61,7 +73,39 @@
         wrapper.eq( Article::getDelFlag,0);
         wrapper.orderByDesc(Article::getCreateTime);
         Page< Article> page1 = articleService.page(page, wrapper);
-        return PageDTO.of(page1);
+
+        PageDTO<ArticleVO> articleCommentsVOPageDTO = PageDTO.of(page1, ArticleVO.class);
+        List<ArticleVO> list2 = articleCommentsVOPageDTO.getList();
+        for (ArticleVO articleVO:list2) {
+            if (articleVO.getMemberId()!=null){
+                R<Member> membeOne = memberClient.getMembeOne(articleVO.getMemberId());
+                Member data = membeOne.getData();
+                articleVO.setMemberNickname(data.getNickname());
+            }
+            LambdaQueryWrapper<MemberLike> wrapper1 = Wrappers.lambdaQuery();
+            wrapper1.eq(MemberLike::getMemberId, articleDTO.getMemberId());
+            wrapper1.eq(MemberLike::getArticleId, articleVO.getId());
+            wrapper1.eq(MemberLike::getType, 1);
+            wrapper1.eq(MemberLike::getDelFlag, 0);
+            List<MemberLike> list = memberLikeService.list(wrapper1);
+            if (list.size() > 0) {
+                articleVO.setIsLike(1);
+            } else {
+                articleVO.setIsLike(2);
+            }
+
+            LambdaQueryWrapper<MemberArticleCollection> wrapper2 = Wrappers.lambdaQuery();
+            wrapper2.eq(MemberArticleCollection::getMemberId, articleDTO.getMemberId());
+            wrapper2.eq(MemberArticleCollection::getTargetId, articleVO.getId());
+            wrapper2.eq(MemberArticleCollection::getDelFlag, 0);
+            List<MemberArticleCollection> list1 = memberArticleCollectionService.list(wrapper2);
+            if (list1.size() > 0) {
+                articleVO.setIsCollect(1);
+            } else {
+                articleVO.setIsCollect(2);
+            }
+        }
+        return articleCommentsVOPageDTO;
     }
 
     @Override
@@ -108,9 +152,34 @@
     }
 
     @Override
-    public Article getMemberArticleInfo(ArticleDTO articleDTO) {
+    public ArticleVO getMemberArticleInfo(ArticleDTO articleDTO) {
         Article article=articleService.getById(articleDTO.getId());
-        return article;
+        ArticleVO articleVO=new ArticleVO();
+        BeanUtils.copyProperties(article, articleVO);
+
+        LambdaQueryWrapper<MemberLike> wrapper1= Wrappers.lambdaQuery();
+        wrapper1.eq(MemberLike::getMemberId,articleDTO.getMemberId());
+        wrapper1.eq(MemberLike::getArticleId,article.getId());
+        wrapper1.eq(MemberLike::getType,1);
+        wrapper1.eq( MemberLike::getDelFlag,0);
+        List<MemberLike> list = memberLikeService.list(wrapper1);
+        if (list.size()>0){
+            articleVO.setIsLike(1);
+        }else {
+            articleVO.setIsLike(2);
+        }
+
+        LambdaQueryWrapper<MemberArticleCollection> wrapper2= Wrappers.lambdaQuery();
+        wrapper2.eq(MemberArticleCollection::getMemberId,articleDTO.getMemberId());
+        wrapper2.eq(MemberArticleCollection::getTargetId,article.getId());
+        wrapper2.eq( MemberArticleCollection::getDelFlag,0);
+        List<MemberArticleCollection> list1 = memberArticleCollectionService.list(wrapper2);
+        if (list1.size()>0){
+            articleVO.setIsCollect(1);
+        }else {
+            articleVO.setIsCollect(2);
+        }
+        return articleVO;
     }
 
     @Override
@@ -122,24 +191,79 @@
         wrapper.eq( ArticleComments::getType,1);
         wrapper.orderByDesc(ArticleComments::getCreateTime);
         Page<ArticleComments> page1 = articleCommentsService.page(page, wrapper);
+        PageDTO<ArticleCommentsVO> articleCommentsVOPageDTO = PageDTO.of(page1, ArticleCommentsVO.class);
+        List<ArticleCommentsVO> list2 = articleCommentsVOPageDTO.getList();
+        for(ArticleCommentsVO articleCommentsVO:list2){
+            R<Member> membeOne = memberClient.getMembeOne(articleCommentsVO.getMemberId());
+            Member data = membeOne.getData();
+            articleCommentsVO.setMemberNickname(data.getNickname());
+            articleCommentsVO.setBmemberNickavatar(data.getAvatar());
+            LambdaQueryWrapper<MemberLike> wrapper1= Wrappers.lambdaQuery();
+            wrapper1.eq(MemberLike::getMemberId,articleCommentsVO.getMemberId());
+            wrapper1.eq(MemberLike::getArticleId,articleCommentsVO.getArticleId());
+            wrapper1.eq(MemberLike::getType,2);
+            wrapper1.eq( MemberLike::getDelFlag,0);
+            List<MemberLike> list = memberLikeService.list(wrapper1);
+            if (list.size()>0){
+                articleCommentsVO.setIslike(1);
+            }else {
+                articleCommentsVO.setIslike(2);
+            }
 
-        List<ArticleComments> articleCommentsList=page1.getRecords();
-        List<ArticleCommentsVO> articleCommentsVOList=new ArrayList<>();
-        for(ArticleComments articleComments:articleCommentsList){
-            ArticleCommentsVO articleCommentsVO=new ArticleCommentsVO();
 
+            List<ArticleCommentsVO> articleCommentsVOList1=new ArrayList<>();
+
+            LambdaQueryWrapper< ArticleComments> wrapper2= Wrappers.lambdaQuery();
+            wrapper2.eq(ArticleComments::getReplyId,articleCommentsVO.getArticleId());
+            wrapper2.eq( ArticleComments::getDelFlag,0);
+            wrapper2.eq( ArticleComments::getType,2);
+            List<ArticleComments> list1 = articleCommentsService.list(wrapper2);
+            for (ArticleComments articleComments1:list1){
+                ArticleCommentsVO articleCommentsVO1=new ArticleCommentsVO();
+
+                R<Member> membeOne1 = memberClient.getMembeOne(articleCommentsVO.getMemberId());
+                Member data1 = membeOne1.getData();
+
+                R<Member> membeOne2 = memberClient.getMembeOne(articleCommentsVO.getBmemberId());
+                Member data2 = membeOne2.getData();
+
+                articleCommentsVO1.setArticleId(articleComments1.getArticleId());
+                articleCommentsVO1.setContent(articleComments1.getContent());
+                articleCommentsVO1.setMemberId(articleComments1.getMemberId());
+                articleCommentsVO1.setId(articleComments1.getId());
+                articleCommentsVO1.setMemberNickname(data1.getNickname());
+                articleCommentsVO1.setBmemberNickavatar(data1.getAvatar());
+                articleCommentsVO1.setLikeCount(articleComments1.getLikeCount());
+                articleCommentsVO1.setCreateTime(articleComments1.getCreateTime());
+                articleCommentsVO1.setBmemberNickavatar(data2.getAvatar());
+                articleCommentsVO1.setBmemberNickname(data2.getNickname());
+
+                LambdaQueryWrapper<MemberLike> wrapper3= Wrappers.lambdaQuery();
+                wrapper3.eq(MemberLike::getMemberId,articleCommentsVO.getMemberId());
+                wrapper3.eq(MemberLike::getArticleId,articleCommentsVO.getArticleId());
+                wrapper3.eq(MemberLike::getType,2);
+                wrapper3.eq( MemberLike::getDelFlag,0);
+                List<MemberLike> list3 = memberLikeService.list(wrapper3);
+                if (list3.size()>0){
+                    articleCommentsVO1.setIslike(1);
+                }else {
+                    articleCommentsVO1.setIslike(2);
+                }
+                articleCommentsVOList1.add(articleCommentsVO1);
+            }
+
+            articleCommentsVO.setArticleCommentsVOList(articleCommentsVOList1);
+
+            list2.add(articleCommentsVO);
         }
 
-
-
-
-        return null;
+        return articleCommentsVOPageDTO;
     }
 
     @Override
     public void getReport(ArticleDTO articleDTO) {
        Article article= articleService.getById(articleDTO.getId());
-        R<Member> membeOne = emberClient.getMembeOne(articleDTO.getMemberId());
+        R<Member> membeOne = memberClient.getMembeOne(articleDTO.getMemberId());
         Member data = membeOne.getData();
         article.setReportBy(data.getNickname());
         article.setReportedTime(LocalDateTime.now());
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java
index 4acbc1e..f31f625 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java
@@ -1,10 +1,32 @@
 package com.ruoyi.article.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.article.domain.Article;
+import com.ruoyi.article.domain.ArticleComments;
 import com.ruoyi.article.domain.MemberArticleCollection;
+import com.ruoyi.article.domain.MemberLike;
+import com.ruoyi.article.dto.ArticleDTO;
+import com.ruoyi.article.dto.MemberArticleCollectionDTO;
 import com.ruoyi.article.mapper.MemberArticleCollectionMapper;
+import com.ruoyi.article.service.IArticleService;
 import com.ruoyi.article.service.IMemberArticleCollectionService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.article.vo.ArticleCommentsVO;
+import com.ruoyi.article.vo.ArticleVO;
+import com.ruoyi.article.vo.MemberArticleCollectionVO;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.page.PageDTO;
+import com.ruoyi.system.api.domain.Member;
+import com.ruoyi.system.api.feignClient.MemberClient;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +39,74 @@
 @Service
 public class MemberArticleCollectionServiceImpl extends ServiceImpl<MemberArticleCollectionMapper, MemberArticleCollection> implements IMemberArticleCollectionService {
 
+    @Resource
+    private  IMemberArticleCollectionService memberArticleCollectionService;
+
+    @Resource
+    private IArticleService  articleService;
+    @Resource
+    private MemberClient memberClient;
+
+    @Override
+    public void saveMemberArticleCollection(MemberArticleCollectionDTO memberArticleCollectionDTO) {
+        if (memberArticleCollectionDTO.getMemberId()!=null) {
+            throw new ServiceException("用户ID不能为空");
+        }
+        if (memberArticleCollectionDTO.getState()!=null) {
+            throw new ServiceException("类型不能为空");
+        }
+
+        LambdaQueryWrapper< MemberArticleCollection> wrapper= Wrappers.lambdaQuery();
+        wrapper.eq(MemberArticleCollection::getMemberId,memberArticleCollectionDTO.getMemberId());
+        wrapper.eq(MemberArticleCollection::getTargetId,memberArticleCollectionDTO.getTargetId());
+
+        if (memberArticleCollectionDTO.getState()==1){
+            List<MemberArticleCollection> list = memberArticleCollectionService.list(wrapper);
+            if (list.size()==0){
+                MemberArticleCollection m =new MemberArticleCollection();
+                m.setMemberId(memberArticleCollectionDTO.getMemberId());
+                m.setTargetId(memberArticleCollectionDTO.getTargetId());
+                memberArticleCollectionService.save(m);
+
+                Article byId = articleService.getById(memberArticleCollectionDTO.getTargetId());
+                byId.setCollectCount(byId.getCollectCount()+1);
+                articleService.saveOrUpdate(byId);
+            }
+
+        }else{
+            List<MemberArticleCollection> list = memberArticleCollectionService.list(wrapper);
+            if (list.size()>0){
+                for (MemberArticleCollection memberArticleCollection:list){
+                    Article byId = articleService.getById(memberArticleCollection.getTargetId());
+                    byId.setCollectCount(byId.getCollectCount()-1);
+                    articleService.saveOrUpdate(byId);
+                    memberArticleCollectionService.removeById(memberArticleCollection);
+                }
+            }
+
+        }
+    }
+
+    @Override
+    public PageDTO<MemberArticleCollectionVO> getMemberArticleCollection(ArticleDTO articleDTO) {
+        Page<MemberArticleCollection> page = new Page<>(articleDTO.getPageCurr(), articleDTO.getPageSize());
+        LambdaQueryWrapper< MemberArticleCollection> wrapper= Wrappers.lambdaQuery();
+        wrapper.eq(MemberArticleCollection::getMemberId,articleDTO.getMemberId());
+        Page<MemberArticleCollection> page1 = memberArticleCollectionService.page(page, wrapper);
+        PageDTO<MemberArticleCollectionVO> articleCommentsVOPageDTO = PageDTO.of(page1, MemberArticleCollectionVO.class);
+        List<MemberArticleCollectionVO> list2 = articleCommentsVOPageDTO.getList();
+        for (MemberArticleCollectionVO memberArticleCollectionVO:list2){
+            Article byId = articleService.getById(memberArticleCollectionVO.getTargetId());
+            memberArticleCollectionVO.setContent(byId.getContent());
+            memberArticleCollectionVO.setImages(byId.getImages());
+            memberArticleCollectionVO.setTitle(byId.getTitle());
+
+            R<Member> membeOne = memberClient.getMembeOne(memberArticleCollectionVO.getMemberId());
+            Member data = membeOne.getData();
+            memberArticleCollectionVO.setMemberNickname(data.getNickname());
+            memberArticleCollectionVO.setIsCollect(1);
+
+        }
+        return articleCommentsVOPageDTO;
+    }
 }
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 4655268..8c2ee66 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
@@ -46,53 +46,59 @@
         if (memberLikeDTO.getState()!=null) {
             throw new ServiceException("类型不能为空");
         }
+        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);
         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 (memberLikes.size()==0){
+                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);
+                    byId.setLikeCount(byId.getLikeCount()+1);
                     articleService.saveOrUpdate(byId);
                 }
                 if (memberLikeDTO.getType()==2){
                     ArticleComments byId = articleCommentsService.getById(memberLikeDTO.getArticleId());
-                    byId.setLikeCount(byId.getLikeCount()-1);
+                    byId.setLikeCount(byId.getLikeCount()+1);
                     articleCommentsService.saveOrUpdate(byId);
                 }
                 if (memberLikeDTO.getType()==3){
                     ArticleComments byId = articleCommentsService.getById(memberLikeDTO.getArticleId());
-                    byId.setLikeCount(byId.getLikeCount()-1);
+                    byId.setLikeCount(byId.getLikeCount()+1);
                     articleCommentsService.saveOrUpdate(byId);
                 }
+                memberLikeService.save(memberLike);
             }
+        }else{
+            List< MemberLike> memberLikes = memberLikeService.list(wrapper);
+            if (memberLikes.size()>0){
+                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);
+                    }
+                }
+            }
+
         }
     }
 }
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleCommentsVO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleCommentsVO.java
index 4d070b5..0a4ef06 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleCommentsVO.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleCommentsVO.java
@@ -42,9 +42,11 @@
 
     @ApiModelProperty(value = "会员头像")
     private String bmemberNickavatar;
+    @ApiModelProperty(value = "点赞数")
+    private Integer likeCount;
 
-    @ApiModelProperty("点赞数")
-    private Integer likeNum;
+    @ApiModelProperty("是否点赞 1 点赞, 2 未点赞")
+    private Integer islike;
 
     List<ArticleCommentsVO> articleCommentsVOList;
 }
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleVO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleVO.java
new file mode 100644
index 0000000..2753f89
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleVO.java
@@ -0,0 +1,60 @@
+package com.ruoyi.article.vo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.common.core.enums.ArticleTypeEnum;
+import com.ruoyi.common.core.enums.AuditStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class ArticleVO {
+    @ApiModelProperty(value = "资讯id")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    @ApiModelProperty(value = "资讯类型 1=平台发布 2=用户发布")
+    private ArticleTypeEnum articleType;
+
+    @ApiModelProperty(value = "资讯标题")
+    private String title;
+
+    @ApiModelProperty(value = "资讯内容")
+    private String content;
+
+    @ApiModelProperty(value = "资讯图片  ['a','b','c','d','e']")
+    private String images;
+
+    @ApiModelProperty(value = "资讯视频")
+    private String videoUrl;
+
+    @ApiModelProperty(value = "状态 1=待审核 2=已通过 3=已拒绝 4被举报")
+    private AuditStatusEnum status;
+
+    @ApiModelProperty(value = "点赞数")
+    private Integer likeCount;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "收藏数")
+    private Integer collectCount;
+
+    @ApiModelProperty(value = "评论数")
+    private Integer commentCount;
+
+    @ApiModelProperty(value = "会员id")
+    private Long memberId;
+    @ApiModelProperty(value = "拒绝原因")
+    private String refuseComment;
+
+    @ApiModelProperty("是否点赞 1 点赞, 2 未点赞")
+    private Integer isLike;
+
+    @ApiModelProperty("是否收藏 1收藏, 2 未收藏")
+    private Integer isCollect;
+
+    @ApiModelProperty(value = "会员名称")
+    private String memberNickname;
+}
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/MemberArticleCollectionVO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/MemberArticleCollectionVO.java
new file mode 100644
index 0000000..27a10e9
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/MemberArticleCollectionVO.java
@@ -0,0 +1,41 @@
+package com.ruoyi.article.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class MemberArticleCollectionVO {
+
+    private Integer id;
+
+    @ApiModelProperty(value = "收藏目标id")
+    private Long targetId;
+
+    @ApiModelProperty(value = "会员id")
+    private Long memberId;
+
+    @ApiModelProperty(value = "资讯标题")
+    private String title;
+
+    @ApiModelProperty(value = "资讯内容")
+    private String content;
+
+    @ApiModelProperty(value = "资讯图片  ['a','b','c','d','e']")
+    private String images;
+
+    @ApiModelProperty(value = "资讯视频")
+    private String videoUrl;
+
+    @ApiModelProperty(value = "会员名称")
+    private String memberNickname;
+
+    @ApiModelProperty("是否收藏 1收藏, 2 未收藏")
+    private Integer isCollect;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+}

--
Gitblit v1.7.1