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.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; /** *

* 会员收藏文章 服务实现类 *

* * @author mitao * @since 2024-05-27 */ @Service public class MemberArticleCollectionServiceImpl extends ServiceImpl 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 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 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 getMemberArticleCollection(ArticleDTO articleDTO) { Page page = new Page<>(articleDTO.getPageCurr(), articleDTO.getPageSize()); LambdaQueryWrapper< MemberArticleCollection> wrapper= Wrappers.lambdaQuery(); wrapper.eq(MemberArticleCollection::getMemberId,articleDTO.getMemberId()); Page page1 = memberArticleCollectionService.page(page, wrapper); PageDTO articleCommentsVOPageDTO = PageDTO.of(page1, MemberArticleCollectionVO.class); List 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 membeOne = memberClient.getMembeOne(memberArticleCollectionVO.getMemberId(), SecurityConstants.INNER); Member data = membeOne.getData(); memberArticleCollectionVO.setMemberNickname(data.getNickname()); memberArticleCollectionVO.setIsCollect(1); } return articleCommentsVOPageDTO; } }