rentaiming
2024-05-27 72ef4f043ba34a535d00bff6a0e264d1a7e12548
写用户端接口
3个文件已添加
11个文件已修改
459 ■■■■■ 已修改文件
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberArticleCollectionController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/ArticleCommentsDTO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberArticleCollectionDTO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberLikeDTO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberArticleCollectionService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleCommentsVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleVO.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/MemberArticleCollectionVO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,7 +44,7 @@
    @PostMapping("/getArticleList")
    @ResponseBody
    @ApiOperation(value = "获取资讯")
    public R<PageDTO<Article>> getArticleList(ArticleDTO articleDTO) {
    public R<PageDTO<ArticleVO>> getArticleList(ArticleDTO articleDTO) {
      return R.ok(iArticleService.getArticleList(articleDTO));
    }
@@ -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();
    }
}
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));
    }
}
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)
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberArticleCollectionDTO.java
New file
@@ -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;
}
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;
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);
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);
}
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());
    }
}
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);
        List<ArticleComments> articleCommentsList=page1.getRecords();
        List<ArticleCommentsVO> articleCommentsVOList=new ArrayList<>();
        for(ArticleComments articleComments:articleCommentsList){
            ArticleCommentsVO articleCommentsVO=new ArticleCommentsVO();
        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<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();
        return null;
                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 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());
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;
    }
}
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java
@@ -46,7 +46,14 @@
        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){
            List< MemberLike> memberLikes = memberLikeService.list(wrapper);
            if (memberLikes.size()==0){
            MemberLike memberLike=new MemberLike();
            memberLike.setMemberId(memberLikeDTO.getMemberId());
            memberLike.setArticleId(memberLikeDTO.getArticleId());
@@ -67,13 +74,10 @@
                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);
            if (memberLikes.size()>0){
            for (MemberLike memberLike:memberLikes){
                memberLikeService.removeById(memberLike);
@@ -94,5 +98,7 @@
                }
            }
        }
        }
    }
}
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;
}
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/ArticleVO.java
New file
@@ -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;
}
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/vo/MemberArticleCollectionVO.java
New file
@@ -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;
}