mitao
2025-03-14 392b42c4891cf2e6beda57ab32c51598f290f4b7
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java
@@ -29,14 +29,15 @@
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;
import com.ruoyi.system.api.feignClient.MemberClient;
import com.ruoyi.system.api.feignClient.SysUserClient;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -46,6 +47,7 @@
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * <p>
@@ -211,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());
@@ -235,7 +239,7 @@
                }
                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);
@@ -282,11 +286,10 @@
                    if (data2!=null){
                        articleCommentsVO1.setBmemberNickname(data2.getNickname());
                        articleCommentsVO1.setBmemberNickavatar(data2.getAvatar());
                        articleCommentsVO1.setBmemberId(data2.getId());
                    }
                    articleCommentsVO1.setState(articleComments1.getState());
                    articleCommentsVO1.setBmemberId(data2.getId());
                    LambdaQueryWrapper<MemberLike> wrapper3= Wrappers.lambdaQuery();
                    wrapper3.eq(MemberLike::getMemberId,articleCommentsVO.getMemberId());
                    wrapper3.eq(MemberLike::getArticleId,articleComments1.getId());
@@ -344,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);
            }
@@ -361,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()));
@@ -414,6 +428,8 @@
                if (StringUtils.isNotNull(sysUser)) {
                    articleVO.setCreateBy(sysUser.getNickName());
                    articleVO.setPhone(sysUser.getPhonenumber());
                } else {
                    articleVO.setCreateBy(null);
                }
            });
        }
@@ -424,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))
@@ -488,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;
    }
    /**
@@ -519,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);
            }
        }
    }
}