From 392b42c4891cf2e6beda57ab32c51598f290f4b7 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 14 三月 2025 20:56:27 +0800
Subject: [PATCH] bug修改

---
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java |   86 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 73 insertions(+), 13 deletions(-)

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 9f8a426..f1f02a5 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
@@ -29,7 +29,9 @@
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
+import com.ruoyi.common.core.utils.page.CollUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
+import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.domain.Member;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.domain.dto.MemberDTO;
@@ -45,6 +47,7 @@
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * <p>
@@ -210,6 +213,8 @@
 
     @Override
     public PageDTO<ArticleCommentsVO> getArticleCommentsList(ArticleDTO articleDTO) {
+        Long userId = SecurityUtils.getUserId();
+        Member member = memberClient.getMemberByUserId(userId, SecurityConstants.INNER).getData();
         Page<ArticleComments> page = new Page<>(articleDTO.getPageCurr(), articleDTO.getPageSize());
         LambdaQueryWrapper< ArticleComments> wrapper= Wrappers.lambdaQuery();
         wrapper.eq(ArticleComments::getArticleId,articleDTO.getId());
@@ -225,10 +230,16 @@
                 R<Member> membeOne = memberClient.getMembeOne(articleCommentsVO.getMemberId(),
                         SecurityConstants.INNER);
                 Member data = membeOne.getData();
-                articleCommentsVO.setMemberNickname(data.getNickname());
-                articleCommentsVO.setMemberNickavatar(data.getAvatar());
+                if (data!=null){
+                    articleCommentsVO.setMemberNickname(data.getNickname());
+                    articleCommentsVO.setMemberNickavatar(data.getAvatar());
+                }else{
+                    articleCommentsVO.setMemberNickname("平台发布");
+                    articleCommentsVO.setMemberNickavatar("https://jyzx-obs.obs.cn-sccd1.ctyun.cn/d41508d822cb4b7896aaa1bb56e6167f.png");
+                }
+
                 LambdaQueryWrapper<MemberLike> wrapper1= Wrappers.lambdaQuery();
-                wrapper1.eq(MemberLike::getMemberId,articleCommentsVO.getMemberId());
+                wrapper1.eq(MemberLike::getMemberId, member.getId());
                 wrapper1.eq(MemberLike::getArticleId,articleCommentsVO.getId());
                 wrapper1.eq(MemberLike::getType,2);
                 wrapper1.eq( MemberLike::getDelFlag,0);
@@ -264,16 +275,21 @@
                     articleCommentsVO1.setContent(articleComments1.getContent());
                     articleCommentsVO1.setMemberId(articleComments1.getMemberId());
                     articleCommentsVO1.setId(articleComments1.getId());
-                    articleCommentsVO1.setMemberNickname(data1.getNickname());
-                    articleCommentsVO1.setMemberNickavatar(data1.getAvatar());
-                    articleCommentsVO1.setBmemberNickavatar(data1.getAvatar());
+                    if (data1!=null){
+                        articleCommentsVO1.setMemberNickname(data1.getNickname());
+                        articleCommentsVO1.setMemberNickavatar(data1.getAvatar());
+                    }
+
+
                     articleCommentsVO1.setLikeCount(articleComments1.getLikeCount());
                     articleCommentsVO1.setCreateTime(articleComments1.getCreateTime());
-                    articleCommentsVO1.setBmemberNickname(data2.getNickname());
-                    articleCommentsVO1.setBmemberNickavatar(data2.getNickname());
-                    articleCommentsVO1.setState(articleComments1.getState());
-                    articleCommentsVO1.setBmemberId(data2.getId());
+                    if (data2!=null){
+                        articleCommentsVO1.setBmemberNickname(data2.getNickname());
+                        articleCommentsVO1.setBmemberNickavatar(data2.getAvatar());
+                        articleCommentsVO1.setBmemberId(data2.getId());
+                    }
 
+                    articleCommentsVO1.setState(articleComments1.getState());
                     LambdaQueryWrapper<MemberLike> wrapper3= Wrappers.lambdaQuery();
                     wrapper3.eq(MemberLike::getMemberId,articleCommentsVO.getMemberId());
                     wrapper3.eq(MemberLike::getArticleId,articleComments1.getId());
@@ -285,7 +301,10 @@
                     }else {
                         articleCommentsVO1.setIslike(2);
                     }
-                    articleCommentsVOList1.add(articleCommentsVO1);
+                    if (data1!=null){
+                        articleCommentsVOList1.add(articleCommentsVO1);
+                    }
+
                 }
 
                 articleCommentsVO.setArticleCommentsVOList(articleCommentsVOList1);
@@ -328,15 +347,19 @@
             user.setPhonenumber(query.getPhone());
             List<SysUser> sysUserList = sysUserClient.getUserListByName(user,
                     SecurityConstants.INNER).getData();
+            if (CollUtils.isNotEmpty(sysUserList)) {
             sysUserIdSet = sysUserList.stream().map(SysUser::getUserId)
                     .collect(Collectors.toSet());
+            }
             MemberDTO memberDTO = new MemberDTO();
             memberDTO.setNickname(query.getCreateBy());
             memberDTO.setPhone(query.getPhone());
             List<Member> memberlist = memberClient.getMemberListByCondition(memberDTO,
                     SecurityConstants.INNER).getData();
-            memberIdSet = memberlist.stream().map(Member::getId)
+            if (CollUtils.isNotEmpty(memberlist)) {
+                memberIdSet = memberlist.stream().map(Member::getId)
                     .collect(Collectors.toSet());
+            }
             if (StringUtils.isEmpty(sysUserIdSet) && StringUtils.isEmpty(memberIdSet)) {
                 return PageDTO.empty(page);
             }
@@ -345,11 +368,18 @@
         page = this.lambdaQuery()
                 .in(StringUtils.isNotEmpty(sysUserIdSet), Article::getCreateBy,
                         sysUserIdSet)
+                .or()
                 .in(StringUtils.isNotEmpty(memberIdSet), Article::getMemberId, memberIdSet)
                 .eq(StringUtils.isNotNull(query.getListingStatus()), Article::getListingStatus,
                         query.getListingStatus())
                 .eq(StringUtils.isNotNull(query.getArticleType()), Article::getArticleType,
                         query.getArticleType())
+                .eq(StringUtils.isNotNull(query.getStatus()), Article::getStatus,
+                        query.getStatus())
+                .in(StringUtils.isNotNull(query.getArticleType()) && query.getArticleType()
+                                .equals(ArticleTypeEnum.USER_POSTING), Article::getStatus,
+                        Lists.newArrayList(AuditStatusEnum.TO_BE_REVIEWED,
+                                AuditStatusEnum.REJECTED))
                 .like(StringUtils.isNotBlank(query.getTitle()), Article::getTitle, query.getTitle())
                 .orderByDesc(Article::getReported)
                 .page(new Page<>(query.getPageCurr(), query.getPageSize()));
@@ -398,6 +428,8 @@
                 if (StringUtils.isNotNull(sysUser)) {
                     articleVO.setCreateBy(sysUser.getNickName());
                     articleVO.setPhone(sysUser.getPhonenumber());
+                } else {
+                    articleVO.setCreateBy(null);
                 }
             });
         }
@@ -408,6 +440,8 @@
                 if (StringUtils.isNotNull(member)) {
                     articleVO.setCreateBy(member.getNickname());
                     articleVO.setPhone(member.getPhone());
+                } else {
+                    articleVO.setCreateBy(null);
                 }
             });
             voList.stream().filter(articleVO -> articleVO.getReported().equals(Boolean.TRUE))
@@ -472,7 +506,12 @@
         if (StringUtils.isNull(article)) {
             throw new ServiceException("资讯不存在");
         }
-        return BeanUtils.copyBean(article, MgtArticleVO.class);
+        MgtArticleVO mgtArticleVO = BeanUtils.copyBean(article, MgtArticleVO.class);
+        long count = articleCommentsService.count(
+                Wrappers.lambdaQuery(ArticleComments.class).eq(ArticleComments::getArticleId, id)
+                        .eq(ArticleComments::getType, 1));
+        mgtArticleVO.setCommentCount((int) count);
+        return mgtArticleVO;
     }
 
     /**
@@ -503,4 +542,25 @@
         this.lambdaUpdate().set(Article::getListingStatus, dto.getListingStatus())
                 .eq(Article::getId, dto.getId()).update();
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void removeCommentsById(Long id) {
+        ArticleComments articleComments = articleCommentsService.getById(id);
+        if (StringUtils.isNull(articleComments)) {
+            throw new ServiceException("评论/回复不存在");
+        }
+        articleCommentsService.removeById(id);
+        // 评论
+        if (articleComments.getType().equals(1)) {
+            // 查询回复
+            List<ArticleComments> replyList = articleCommentsService.lambdaQuery()
+                    .eq(ArticleComments::getReplyId, id).list();
+            if (StringUtils.isNotEmpty(replyList)) {
+                List<Long> replyIds = replyList.stream().map(ArticleComments::getId)
+                        .collect(Collectors.toList());
+                articleCommentsService.removeByIds(replyIds);
+            }
+        }
+    }
 }

--
Gitblit v1.7.1