Commit f6d16496 by 段启岩

删除点赞完成

parent ea0b4851
......@@ -185,10 +185,13 @@ public class BlogCommentServiceImpl extends ServiceImpl<BlogCommentMapper, BlogC
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(commentIds)) {
// 删点赞
QueryWrapper<BlogPraise> blogPraiseQueryWrapper = new QueryWrapper<>();
blogPraiseQueryWrapper.in("target_id", commentIds);
blogPraiseQueryWrapper.eq("target_type", BlogPraiseType.BLOG_COMMENT_PRAISE.getPraiseType());
blogPraiseService.remove(blogPraiseQueryWrapper);
// 删评论
remove(blogCommentQueryWrapper);
}
}
......
......@@ -208,10 +208,13 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
// 只有博客有评论的时候才删
if (!CollectionUtils.isEmpty(blogCommentIds)) {
// 删点赞
QueryWrapper<BlogPraise> blogPraiseQueryWrapper = new QueryWrapper<>();
blogPraiseQueryWrapper.in("target_id", blogCommentIds);
blogPraiseQueryWrapper.in("target_type", BlogPraiseType.BLOG_COMMENT_PRAISE.getPraiseType());
blogPraiseQueryWrapper.eq("target_type", BlogPraiseType.BLOG_COMMENT_PRAISE.getPraiseType());
blogPraiseService.remove(blogPraiseQueryWrapper);
// 删评论
blogCommentService.remove(queryWrapperComment);
}
......
......@@ -5,9 +5,14 @@ import cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage;
import cn.meteor.beyondclouds.core.queue.message.DataItemType;
import cn.meteor.beyondclouds.modules.post.dto.PostDTO;
import cn.meteor.beyondclouds.modules.post.entity.Post;
import cn.meteor.beyondclouds.modules.post.entity.PostComment;
import cn.meteor.beyondclouds.modules.post.entity.PostPraise;
import cn.meteor.beyondclouds.modules.post.enums.PostErrorCode;
import cn.meteor.beyondclouds.modules.post.enums.PostPraiseType;
import cn.meteor.beyondclouds.modules.post.exception.PostServiceException;
import cn.meteor.beyondclouds.modules.post.mapper.PostMapper;
import cn.meteor.beyondclouds.modules.post.service.IPostCommentService;
import cn.meteor.beyondclouds.modules.post.service.IPostPraiseService;
import cn.meteor.beyondclouds.modules.post.service.IPostService;
import cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException;
import cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService;
......@@ -66,12 +71,26 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
private ISearchDegreeService searchDegreeService;
private IPostCommentService postCommentService;
private IPostPraiseService postPraiseService;
@Autowired
public void setSearchDegreeService(ISearchDegreeService searchDegreeService) {
this.searchDegreeService = searchDegreeService;
}
@Autowired
public void setPostPraiseService(IPostPraiseService postPraiseService) {
this.postPraiseService = postPraiseService;
}
@Autowired
public void setPostCommentService(IPostCommentService postCommentService) {
this.postCommentService = postCommentService;
}
@Autowired
public void setUserFollowService(IUserFollowService userFollowService) {
this.userFollowService = userFollowService;
}
......@@ -225,10 +244,7 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
throw new PostServiceException(PostErrorCode.USER_POST_NOT_FOUND);
}
//2.删除动态
removeById(postId);
//3.删除动态里的话题引用
//2.删除动态里的话题引用
QueryWrapper<TopicReference> topicReferenceQueryWrapper = new QueryWrapper<>();
topicReferenceQueryWrapper.eq("referencer_id", postId);
//所有的话题引用减1
......@@ -238,8 +254,21 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
topicReferenceService.remove(topicReferenceQueryWrapper);
}
// 3.删除动态评论
QueryWrapper<PostComment> postCommentQueryWrapper = new QueryWrapper<>();
postCommentQueryWrapper.eq("post_id", postId);
postCommentService.remove(postCommentQueryWrapper);
//发送消息到消息队列
// 4.删除动态点赞
QueryWrapper<PostPraise> postPraiseQueryWrapper = new QueryWrapper<>();
postCommentQueryWrapper.eq("target_id", postId);
postCommentQueryWrapper.eq("target_type", PostPraiseType.POST_PRAISE.getPraiseType());
postPraiseService.remove(postPraiseQueryWrapper);
// 5.删除动态
removeById(postId);
// 6.发送消息到消息队列
messageQueueService.sendDataItemChangeMessage(DataItemChangeMessage.deleteMessage(DataItemType.POST, post.getPostId()));
}
......
......@@ -4,11 +4,14 @@ import cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage;
import cn.meteor.beyondclouds.core.queue.message.DataItemType;
import cn.meteor.beyondclouds.modules.project.entity.Project;
import cn.meteor.beyondclouds.modules.project.entity.ProjectComment;
import cn.meteor.beyondclouds.modules.project.entity.ProjectPraise;
import cn.meteor.beyondclouds.modules.project.enums.ProjectCommentErrorCode;
import cn.meteor.beyondclouds.modules.project.enums.ProjectErrorCode;
import cn.meteor.beyondclouds.modules.project.enums.ProjectPraiseType;
import cn.meteor.beyondclouds.modules.project.exception.ProjectCommentServiceException;
import cn.meteor.beyondclouds.modules.project.mapper.ProjectCommentMapper;
import cn.meteor.beyondclouds.modules.project.service.IProjectCommentService;
import cn.meteor.beyondclouds.modules.project.service.IProjectPraiseService;
import cn.meteor.beyondclouds.modules.project.service.IProjectService;
import cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService;
import cn.meteor.beyondclouds.modules.user.entity.User;
......@@ -24,6 +27,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
......@@ -42,6 +49,8 @@ public class ProjectCommentServiceImpl extends ServiceImpl<ProjectCommentMapper,
private IMessageQueueService messageQueueService;
private IProjectPraiseService projectPraiseService;
@Autowired
public void setProjectService(IProjectService projectService) {
this.projectService = projectService;
......@@ -57,6 +66,11 @@ public class ProjectCommentServiceImpl extends ServiceImpl<ProjectCommentMapper,
this.messageQueueService = messageQueueService;
}
@Autowired
public void setProjectPraiseService(IProjectPraiseService projectPraiseService) {
this.projectPraiseService = projectPraiseService;
}
@Override
public void publishComment(Integer projectId, Integer parentId, String comment, String userId) throws ProjectCommentServiceException {
Assert.notNull(projectId, "projectId must not be null");
......@@ -141,11 +155,21 @@ public class ProjectCommentServiceImpl extends ServiceImpl<ProjectCommentMapper,
}
}
// 3.删除评论及子评论
// 3.删除评论及子评论以及赞
QueryWrapper<ProjectComment> projectCommentQueryWrapper = new QueryWrapper<>();
projectCommentQueryWrapper.like("thread", projectComment.getThread());
List<ProjectComment> projectCommentList = list(projectCommentQueryWrapper);
List<Integer> commentIds = projectCommentList.stream()
.map(ProjectComment::getCommentId)
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(commentIds)) {
QueryWrapper<ProjectPraise> projectPraiseQueryWrapper = new QueryWrapper<>();
projectPraiseQueryWrapper.in("target_id", commentIds);
projectPraiseQueryWrapper.eq("target_type", ProjectPraiseType.PROJECT_COMMENT_PRAISE.getPraiseType());
projectPraiseService.remove(projectPraiseQueryWrapper);
remove(projectCommentQueryWrapper);
}
}
@Override
public IPage<ProjectComment> getCommentPage(Integer pageNumber, Integer pageSize, Integer projectId, Integer parentId) throws ProjectCommentServiceException {
......
......@@ -2,17 +2,13 @@ package cn.meteor.beyondclouds.modules.project.service.impl;
import cn.meteor.beyondclouds.core.authentication.Subject;
import cn.meteor.beyondclouds.modules.project.dto.ProjectDetailDTO;
import cn.meteor.beyondclouds.modules.project.entity.Project;
import cn.meteor.beyondclouds.modules.project.entity.ProjectCategory;
import cn.meteor.beyondclouds.modules.project.entity.ProjectComment;
import cn.meteor.beyondclouds.modules.project.entity.ProjectExt;
import cn.meteor.beyondclouds.modules.project.entity.*;
import cn.meteor.beyondclouds.modules.project.enums.ProjectErrorCode;
import cn.meteor.beyondclouds.modules.project.enums.ProjectPraiseType;
import cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException;
import cn.meteor.beyondclouds.modules.project.mapper.ProjectCategoryMapper;
import cn.meteor.beyondclouds.modules.project.mapper.ProjectMapper;
import cn.meteor.beyondclouds.modules.project.service.IProjectCommentService;
import cn.meteor.beyondclouds.modules.project.service.IProjectExtService;
import cn.meteor.beyondclouds.modules.project.service.IProjectService;
import cn.meteor.beyondclouds.modules.project.service.*;
import cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage;
import cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService;
import cn.meteor.beyondclouds.core.queue.message.DataItemType;
......@@ -30,8 +26,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 项目表 服务实现类
......@@ -46,8 +46,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
private IProjectExtService projectExtService;
private ProjectCategoryMapper projectCategoryMapper;
private IProjectCommentService projectCommentService;
private IUserService userService;
......@@ -56,10 +54,23 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
private IUserFollowService userFollowService;
private IProjectPraiseService projectPraiseService;
private IProjectCategoryService projectCategoryService;
@Autowired
public ProjectServiceImpl(IProjectExtService projectExtService, ProjectCategoryMapper projectCategoryMapper) {
public ProjectServiceImpl(IProjectExtService projectExtService) {
this.projectExtService = projectExtService;
this.projectCategoryMapper = projectCategoryMapper;
}
@Autowired
public void setProjectCategoryService(IProjectCategoryService projectCategoryService) {
this.projectCategoryService = projectCategoryService;
}
@Autowired
public void setProjectPraiseService(IProjectPraiseService projectPraiseService) {
this.projectPraiseService = projectPraiseService;
}
@Autowired
......@@ -90,7 +101,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
// 1.检查项目类别是否存在
Integer categoryId = project.getCategoryId();
ProjectCategory projectCategory = projectCategoryMapper.selectById(categoryId);
ProjectCategory projectCategory = projectCategoryService.getById(categoryId);
// 若分类不存在,则抛出异常
if (null == projectCategory) {
......@@ -140,16 +151,33 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
throw new ProjectServiceException(ProjectErrorCode.PROJECT_DISABLED);
}
// 2.删除项目的所有评论
// 2.删除项目的所有评论和对评论的赞
QueryWrapper<ProjectComment> projectCommentQueryWrapper = new QueryWrapper<>();
projectCommentQueryWrapper.eq("project_id", projectId);
List<ProjectComment> projectList = projectCommentService.list(projectCommentQueryWrapper);
List<Integer> commentIds = projectList.stream()
.map(ProjectComment::getCommentId)
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(commentIds)) {
// 删点赞
QueryWrapper<ProjectPraise> projectPraiseQueryWrapper = new QueryWrapper<>();
projectPraiseQueryWrapper.in("target_id", commentIds);
projectPraiseQueryWrapper.eq("target_type", ProjectPraiseType.PROJECT_COMMENT_PRAISE.getPraiseType());
projectPraiseService.remove(projectPraiseQueryWrapper);
// 删评论
projectCommentService.remove(projectCommentQueryWrapper);
// 3.删除项目本身
}
// 删除项目详情
projectExtService.removeById(projectId);
// 删除项目的赞
QueryWrapper<ProjectPraise> projectPraiseQueryWrapper = new QueryWrapper<>();
projectPraiseQueryWrapper.eq("target_id", projectId);
projectPraiseQueryWrapper.eq("target_type", ProjectPraiseType.PROJECT_PRAISE.getPraiseType());
projectPraiseService.remove(projectPraiseQueryWrapper);
// 删除项目
removeById(projectId);
......@@ -246,7 +274,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
// 检查项目类别是否存在
Integer categoryId = project.getCategoryId();
ProjectCategory projectCategory = projectCategoryMapper.selectById(categoryId);
ProjectCategory projectCategory = projectCategoryService.getById(categoryId);
// 若分类不存在,则抛出异常
if (null == projectCategory) {
......
......@@ -3,11 +3,14 @@ package cn.meteor.beyondclouds.modules.question.service.impl;
import cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage;
import cn.meteor.beyondclouds.core.queue.message.DataItemType;
import cn.meteor.beyondclouds.modules.question.entity.Question;
import cn.meteor.beyondclouds.modules.question.entity.QuestionPraise;
import cn.meteor.beyondclouds.modules.question.entity.QuestionReply;
import cn.meteor.beyondclouds.modules.question.enums.QuestionErrorCode;
import cn.meteor.beyondclouds.modules.question.enums.QuestionPraiseType;
import cn.meteor.beyondclouds.modules.question.enums.QuestionReplyErrorCode;
import cn.meteor.beyondclouds.modules.question.exception.QuestionReplyServiceException;
import cn.meteor.beyondclouds.modules.question.mapper.QuestionReplyMapper;
import cn.meteor.beyondclouds.modules.question.service.IQuestionPraiseService;
import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyCommentService;
import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyService;
import cn.meteor.beyondclouds.modules.question.service.IQuestionService;
......@@ -53,6 +56,13 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
private IMessageQueueService messageQueueService;
private IQuestionPraiseService questionPraiseService;
@Autowired
public void setQuestionPraiseService(IQuestionPraiseService questionPraiseService) {
this.questionPraiseService = questionPraiseService;
}
@Autowired
public void setQuestionService(IQuestionService questionService) {
this.questionService = questionService;
......@@ -188,8 +198,17 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
}
}
//3.删除该回复及评论
//3.删除该回复及评论和点赞
// 删点赞
QueryWrapper<QuestionPraise> questionPraiseQueryWrapper = new QueryWrapper<>();
questionPraiseQueryWrapper.eq("target_id", replyId);
questionPraiseQueryWrapper.eq("target_type", QuestionPraiseType.QUESTION_REPLY_PRAISE.getPraiseType());
questionPraiseService.remove(questionPraiseQueryWrapper);
// 删评论
questionReplyCommentService.remove(QuestionUtils.getWrapper("reply_id", replyId));
// 删回复
removeById(replyId);
//4.更新问题的回复数量
......
......@@ -6,6 +6,7 @@ import cn.meteor.beyondclouds.core.queue.message.DataItemType;
import cn.meteor.beyondclouds.modules.question.dto.QuestionDetailDTO;
import cn.meteor.beyondclouds.modules.question.entity.*;
import cn.meteor.beyondclouds.modules.question.enums.QuestionErrorCode;
import cn.meteor.beyondclouds.modules.question.enums.QuestionPraiseType;
import cn.meteor.beyondclouds.modules.question.enums.QuestionTagErrorCode;
import cn.meteor.beyondclouds.modules.question.exception.QuestionServiceException;
import cn.meteor.beyondclouds.modules.question.exception.QuestionTagServiceException;
......@@ -80,6 +81,8 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
private IUserFollowService userFollowService;
private IQuestionPraiseService questionPraiseService;
@Autowired
public QuestionServiceImpl(IQuestionExtService questionExtService, IQuestionCategoryService questionCategoryService, ITopicReferenceService topicReferenceService, QuestionMapper questionMapper) {
this.questionExtService = questionExtService;
......@@ -94,6 +97,11 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
}
@Autowired
public void setQuestionPraiseService(IQuestionPraiseService questionPraiseService) {
this.questionPraiseService = questionPraiseService;
}
@Autowired
public void setMessageQueueService(IMessageQueueService messageQueueService) {
this.messageQueueService = messageQueueService;
}
......@@ -188,26 +196,45 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
//2.删除question-tag表中关于该问题的标签
deleteOldTagReferences(questionId);
//3.获取该问题的所有回复
List<QuestionReply> questionReplies = questionReplyService.list(QuestionUtils.getWrapper("question_id", questionId));
//4.删除question-reply-comment表中关于该问题的所有回复
List<String> replyIds = questionReplies.stream().map(QuestionReply::getReplyId).collect(Collectors.toList());
questionReplyCommentService.removeByIds(replyIds);
//5.删除question-reply表中关于该问题的所有回复
questionReplyService.remove(QuestionUtils.getWrapper("question_id", questionId));
//3.删除话题引用表中的问题信息
deleteOldTopicReferences(questionId);
//6.删除question-ext表中的问题信息
//4.删除关于该问题的所有回复和评论以及对回复的点赞
QueryWrapper<QuestionReply> questionReplyQueryWrapper = new QueryWrapper<>();
questionReplyQueryWrapper.eq("question_id", questionId);
List<QuestionReply> questionReplyList = questionReplyService.list(questionReplyQueryWrapper);
List<String> replyIds = questionReplyList.stream()
.map(QuestionReply::getReplyId)
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(replyIds)) {
// 删评论
QueryWrapper<QuestionReplyComment> questionReplyCommentQueryWrapper = new QueryWrapper<>();
questionReplyCommentQueryWrapper.in("reply_id", replyIds);
questionReplyCommentService.remove(questionReplyCommentQueryWrapper);
// 删点赞
QueryWrapper<QuestionPraise> questionPraiseQueryWrapper = new QueryWrapper<>();
questionPraiseQueryWrapper.in("target_id", replyIds);
questionPraiseQueryWrapper.eq("target_type", QuestionPraiseType.QUESTION_REPLY_PRAISE.getPraiseType());
questionPraiseService.remove(questionPraiseQueryWrapper);
// 删回复
questionReplyService.removeByIds(replyIds);
}
//5.删除question-ext表中的问题信息
questionExtService.remove(QuestionUtils.getWrapper("question_id", questionId));
//6.删除对问题的点赞
QueryWrapper<QuestionPraise> questionPraiseQueryWrapper = new QueryWrapper<>();
questionPraiseQueryWrapper.eq("target_id", questionId);
questionPraiseQueryWrapper.eq("target_type", QuestionPraiseType.QUESTION_PRAISE.getPraiseType());
questionPraiseService.remove(questionPraiseQueryWrapper);
//7.删除question表中的问题信息
removeById(questionId);
//8.删除话题引用表中的问题信息
deleteOldTopicReferences(questionId);
// 9.发送消息到消息队列
//8.发送消息到消息队列
messageQueueService
.sendDataItemChangeMessage(
DataItemChangeMessage.deleteMessage(DataItemType.QUESTION, question.getQuestionId())
......
......@@ -20,7 +20,7 @@ public class QuestionUtils {
* @return
*/
public static <T> QueryWrapper<T> getWrapper(String field, Object data){
QueryWrapper<T> queryWrapper = new QueryWrapper<T>();
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(field,data);
return queryWrapper;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment