mitao
2024-08-16 d7dc4db8d005a58f51d21d35147317762a16373f
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);
            }
        }
    }
}