Commit f6d16496 by 段启岩

删除点赞完成

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