PostsCommentsServiceImpl.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package com.nosum.deliver.posts.service.impl;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.nosum.deliver.auth.dao.AuthUserDao;
  4. import com.nosum.deliver.auth.domain.po.AuthUser;
  5. import com.nosum.common.base.domain.Result;
  6. import com.nosum.common.base.domain.vo.UserSessionVO;
  7. import com.nosum.common.base.service.impl.BaseServiceImpl;
  8. import com.nosum.common.constant.Constants;
  9. import com.nosum.common.enums.ErrorEnum;
  10. import com.nosum.common.util.ExceptionUtil;
  11. import com.nosum.common.util.PageUtil;
  12. import com.nosum.common.util.SessionUtil;
  13. import com.nosum.deliver.posts.dao.PostsCommentsDao;
  14. import com.nosum.deliver.posts.dao.PostsDao;
  15. import com.nosum.deliver.posts.domain.po.PostsComments;
  16. import com.nosum.deliver.posts.domain.vo.PostsCommentsVO;
  17. import com.nosum.deliver.posts.service.PostsCommentsService;
  18. import org.apache.commons.lang3.StringUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Service;
  21. import java.time.LocalDateTime;
  22. import java.util.List;
  23. import java.util.Optional;
  24. /**
  25. * <p>
  26. * 评论表 服务实现类
  27. * </p>
  28. * @author sumbytes
  29. * @since 2019-09-03
  30. */
  31. @Service
  32. public class PostsCommentsServiceImpl extends BaseServiceImpl<PostsCommentsDao, PostsComments> implements PostsCommentsService {
  33. @Autowired
  34. private PostsCommentsDao postsCommentsDao;
  35. @Autowired
  36. private PostsDao postsDao;
  37. @Autowired
  38. private AuthUserDao authUserDao;
  39. @Override
  40. public Result savePostsComments(PostsCommentsVO postsCommentsVO) {
  41. UserSessionVO userSessionInfo = SessionUtil.getUserSessionInfo();
  42. PostsComments postsComments = new PostsComments();
  43. postsComments.setAuthorId(userSessionInfo.getId());
  44. postsComments.setContent(postsCommentsVO.getContent());
  45. postsComments.setPostsId(postsCommentsVO.getPostsId());
  46. postsComments.setCreateTime(LocalDateTime.now());
  47. String treePath;
  48. if (postsCommentsVO.getParentId() == null) {
  49. this.postsCommentsDao.insert(postsComments);
  50. treePath = postsComments.getId() + Constants.TREE_PATH;
  51. } else {
  52. PostsComments parentPostsComments = this.postsCommentsDao.selectById(postsCommentsVO.getParentId());
  53. if (parentPostsComments == null) {
  54. ExceptionUtil.rollback(ErrorEnum.DATA_NO_EXIST);
  55. }
  56. postsComments.setParentId(postsCommentsVO.getParentId());
  57. this.postsCommentsDao.insert(postsComments);
  58. treePath = parentPostsComments.getTreePath() + postsComments.getId() + Constants.TREE_PATH;
  59. }
  60. this.postsCommentsDao.updateById(postsComments.setTreePath(treePath));
  61. this.postsDao.incrementComments( postsCommentsVO.getPostsId());
  62. return Result.createWithSuccessMessage();
  63. }
  64. @Override
  65. public Result replyComments(PostsCommentsVO postsCommentsVO) {
  66. // 查询用户信息
  67. UserSessionVO userSessionInfo = SessionUtil.getUserSessionInfo();
  68. AuthUser authUser = authUserDao.selectById(userSessionInfo.getId());
  69. PostsComments postsComments=postsCommentsDao.selectById(postsCommentsVO.getParentId());
  70. // 准备更新前的参数内容
  71. postsComments.setParentId(postsCommentsVO.getParentId())
  72. .setContent(postsCommentsVO.getContent())
  73. .setAuthorId(authUser.getId())
  74. .setCreateTime(LocalDateTime.now())
  75. .setId(null);
  76. // 添加评论
  77. this.postsCommentsDao.insert(postsComments);
  78. // 增加完成后会默认获取id,此时需要将id,增加到层级结构当中
  79. this.postsCommentsDao.updateById(postsComments.setTreePath(postsComments.getTreePath() + postsComments.getId() + Constants.TREE_PATH));
  80. // 为文章添加评论数
  81. this.postsDao.incrementComments( postsCommentsVO.getPostsId());
  82. return Result.createWithSuccessMessage();
  83. }
  84. @Override
  85. public Result getPostsCommentsByPostsIdList(PostsCommentsVO postsCommentsVO) {
  86. Page page = Optional.ofNullable(PageUtil.checkAndInitPage(postsCommentsVO)).orElse(PageUtil.initPage());
  87. List<PostsCommentsVO> postsCommentsVOLis = this.postsCommentsDao.selectPostsCommentsByPostsIdList(page, postsCommentsVO.getPostsId());
  88. return Result.createWithPaging(postsCommentsVOLis, PageUtil.initPageInfo(page));
  89. }
  90. @Override
  91. public Result getPostsCommentsList(PostsCommentsVO postsCommentsVO) {
  92. Page page = Optional.ofNullable(PageUtil.checkAndInitPage(postsCommentsVO)).orElse(PageUtil.initPage());
  93. if (StringUtils.isNotBlank(postsCommentsVO.getKeywords())) {
  94. postsCommentsVO.setKeywords("%" + postsCommentsVO.getKeywords() + "%");
  95. }
  96. List<PostsCommentsVO> postsCommentsVOLis = this.postsCommentsDao.selectPostsCommentsList(page, postsCommentsVO);
  97. return Result.createWithPaging(postsCommentsVOLis, PageUtil.initPageInfo(page));
  98. }
  99. @Override
  100. public Result deletePostsComments(Long id) {
  101. this.postsCommentsDao.deleteById(id);
  102. return Result.createWithSuccessMessage();
  103. }
  104. @Override
  105. public Result getPostsComment(Long id) {
  106. ExceptionUtil.isRollback(id==null,ErrorEnum.PARAM_ERROR);
  107. List<PostsCommentsVO> postsCommentsVOLis = this.postsCommentsDao.selectPostsCommentsList(new PostsCommentsVO().setId(id));
  108. if (postsCommentsVOLis!=null && postsCommentsVOLis.size()>0){
  109. return Result.createWithModel(postsCommentsVOLis.get(0));
  110. }
  111. return Result.createWithError();
  112. }
  113. }