doum
17 小时以前 1e4f8276eb86dde67135126cbb9bae19bb845823
server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java
@@ -1,7 +1,10 @@
package com.doumee.service.business.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.listener.event.IntegralEvent;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -23,11 +26,6 @@
import com.doumee.dao.web.dto.activity.ActivityReplyCommentDTO;
import com.doumee.dao.web.request.CommentApplyRequest;
import com.doumee.service.business.CommentService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.ZanService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.collections4.MapUtils;
@@ -84,15 +82,22 @@
        target.setType(Constants.ZERO);
        if (comment.getReplyId() != null){
            Comment reply = commentMapper.selectById(comment.getReplyId());
            Comment reply = commentMapper.selectJoinOne(Comment.class,new MPJLambdaWrapper<Comment>()
                    .selectAll(Comment.class)
                    .selectAs(Member::getNickname,Comment::getReplyMemberNikeName)
                    .leftJoin(Member.class,Member::getId,Comment::getMemberId)
                    .eq(Comment::getId,comment.getReplyId())
            );
            reply = Optional.ofNullable(reply).orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "回复目标不存在"));
            target.setReplyId(reply.getId());
            target.setReplyMemberId(reply.getMemberId());
            target.setReplyMemberNikeName(reply.getReplyMemberNikeName());
            target.setCommentId(reply.getId());
            target.setCommentMemberId(reply.getMemberId());
            target.setType(Constants.ONE);
        }
        if (comment.getCommentId() != null ){
            target.setCommentId(reply.getCommentId());
            target.setCommentMemberId(reply.getCommentMemberId());
        }else if (comment.getCommentId() != null ){
            Comment reply = commentMapper.selectById(comment.getCommentId());
            reply = Optional.ofNullable(reply).orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "一级评论目标不存在"));
            target.setCommentId(reply.getCommentId());
@@ -123,8 +128,6 @@
                target.setMemberImgUrl(memberFile + member.getImgurl());
            }
        }
        IntegralEvent<Comment> integralEvent = new IntegralEvent(this,target, Constants.CoffeeBeanTask.POST_COMMENTS,memberId);
        applicationEventPublisher.publishEvent(integralEvent);
        target.setZanCount(Constants.ZERO);
        target.setZanStatus(Constants.ZERO);
        return target;
@@ -188,7 +191,7 @@
        QueryWrapper<Comment> wrapper = new QueryWrapper<>(comment);
        return commentMapper.selectList(wrapper);
    }
    @Override
    public PageData<Comment> findPage(PageWrap<Comment> pageWrap) {
        IPage<Comment> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -264,7 +267,7 @@
        replyWrapper.selectAs(Comment::getCommentId,ActivityReplyCommentDTO::getCommentId);
        replyWrapper.selectAs(Comment::getMemberId,ActivityReplyCommentDTO::getMemberId);
        replyWrapper.selectAs(Comment::getContent,ActivityReplyCommentDTO::getContent);
        replyWrapper.selectAs(Member::getNickname,ActivityReplyCommentDTO::getMemberNikeName);
        replyWrapper.selectAs(Member::getNickname,ActivityReplyCommentDTO::getNikeName);
        replyWrapper.selectAs(Member::getImgurl,ActivityReplyCommentDTO::getMemberImgUrl);
        replyWrapper.selectCount(Comment::getId,ActivityReplyCommentDTO::getReplyCount);
        replyWrapper.selectMin(Comment::getCreateDate,ActivityReplyCommentDTO::getCreateDate);
@@ -272,6 +275,7 @@
        replyWrapper.eq(Comment::getType, Constants.ONE);
        replyWrapper.eq(Comment::getStatus, Constants.ZERO);
        replyWrapper.in(Comment::getCommentId,commentIds);
        replyWrapper.orderByDesc(Comment::getId);
        replyWrapper.groupBy(Comment::getCommentId);
        List<ActivityReplyCommentDTO> activityCommentDTOS = commentJoinMapper.selectJoinList(ActivityReplyCommentDTO.class, replyWrapper);
@@ -324,7 +328,7 @@
        MPJLambdaWrapper<Comment> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.selectAll(Comment.class);
        queryWrapper.selectAs(Member::getNickname,ActivityReplyCommentDTO::getMemberNikeName);
        queryWrapper.selectAs(Member::getNickname,ActivityReplyCommentDTO::getNikeName);
        queryWrapper.selectAs(Member::getImgurl,ActivityReplyCommentDTO::getMemberImgUrl);
        if(Objects.isNull(pageWrap.getModel().getMemberId())){
            queryWrapper.select(" 0 ",ActivityReplyCommentDTO::getZanStatus);
@@ -338,6 +342,7 @@
        queryWrapper.eq(Comment::getType, Constants.ONE);
        queryWrapper.eq(Comment::getStatus, Constants.ZERO);
        queryWrapper.eq(Comment::getCommentId,pageWrap.getModel().getCommentId());
        queryWrapper.orderByDesc(Comment::getId);
        IPage<ActivityReplyCommentDTO> result = commentJoinMapper.selectJoinPage(page, ActivityReplyCommentDTO.class, queryWrapper);
        if (CollectionUtils.isEmpty(result.getRecords())){
            return PageData.from(result);
@@ -371,7 +376,6 @@
                s.setReplyMemberNikeName(null);
            }
        });
        return PageData.from(result);
    }
}