From fc13d832e58e42e241aa827e930651a28ca357e1 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 31 五月 2024 11:48:43 +0800
Subject: [PATCH] Merge branch 'mitao-dev'

---
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java |   93 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 90 insertions(+), 3 deletions(-)

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..09d3d0f 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,9 +1,25 @@
 package com.ruoyi.article.service.impl;
 
-import com.ruoyi.article.domain.MemberArticleCollection;
-import com.ruoyi.article.mapper.MemberArticleCollectionMapper;
-import com.ruoyi.article.service.IMemberArticleCollectionService;
+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.MemberArticleCollection;
+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.ruoyi.article.vo.MemberArticleCollectionVO;
+import com.ruoyi.common.core.constant.SecurityConstants;
+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 java.util.List;
+import javax.annotation.Resource;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +33,75 @@
 @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(),
+                    SecurityConstants.INNER);
+            Member data = membeOne.getData();
+            memberArticleCollectionVO.setMemberNickname(data.getNickname());
+            memberArticleCollectionVO.setIsCollect(1);
+
+        }
+        return articleCommentsVOPageDTO;
+    }
 }

--
Gitblit v1.7.1