package com.tanpu.community.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.tanpu.common.uuid.UuidGenHelper; import com.tanpu.community.api.enums.DeleteTagEnum; import com.tanpu.community.api.enums.TopicStatusEnum; import com.tanpu.community.dao.entity.community.CommentEntity; import com.tanpu.community.dao.mapper.community.CommentMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @Service public class CommentService { @Resource private CommentMapper commentMapper; @Autowired private UuidGenHelper uuidGenHelper; public void insertComment(CommentEntity commentEntity) { commentEntity.setCommentId(uuidGenHelper.getUuidStr()); commentMapper.insert(commentEntity); } public List<CommentEntity> selectByUserId(String userId) { return commentMapper.selectList(new LambdaQueryWrapper<CommentEntity>().eq(CommentEntity::getAuthorId, userId)); } //统计主题集合的评论量 public Integer getCommentCountByThemeIds(List<String> themeIds) { return commentMapper.selectList((new LambdaQueryWrapper<CommentEntity>() .in(CommentEntity::getThemeId, themeIds))) .size(); } public Set<String> getCommentUserCount(List<String> themeIds) { return commentMapper.selectList((new LambdaQueryWrapper<CommentEntity>() .in(CommentEntity::getThemeId, themeIds))) .stream().map(CommentEntity::getAuthorId).collect(Collectors.toSet()); } public List<CommentEntity> selectByThemeIdAndParentId(String themeId, String parentId) { LambdaQueryWrapper<CommentEntity> queryWrapper = new LambdaQueryWrapper<CommentEntity>() .eq(CommentEntity::getThemeId, themeId) .eq(CommentEntity::getDeleteTag, DeleteTagEnum.NOT_DELETED.getCode()) .eq(CommentEntity::getIsBlock, TopicStatusEnum.FALSE.getCode()) .orderByDesc(CommentEntity::getCreateTime); if (parentId == null) { queryWrapper.isNull(CommentEntity::getParentId); } else { queryWrapper.eq(CommentEntity::getParentId, parentId); } return commentMapper.selectList(queryWrapper); } }