CommentDAO.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package nju.seec.helper.dao;
  2. import nju.seec.helper.entity.Comment;
  3. import nju.seec.helper.entity.User;
  4. import nju.seec.helper.enums.ExceptionType;
  5. import nju.seec.helper.exception.HelperException;
  6. import org.springframework.data.domain.Page;
  7. import org.springframework.data.domain.Pageable;
  8. import org.springframework.data.jpa.repository.JpaRepository;
  9. import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
  10. import org.springframework.stereotype.Repository;
  11. import java.util.List;
  12. /**
  13. * @author cst
  14. */
  15. @Repository
  16. public interface CommentDAO extends JpaRepository<Comment, Long>, JpaSpecificationExecutor<Comment> {
  17. /**
  18. * 封装findById
  19. *
  20. * @param id
  21. * @return
  22. */
  23. default Comment findCommentById(Long id) {
  24. return this.findById(id)
  25. .orElseThrow(() -> HelperException.of(ExceptionType.NOT_FOUND, "找不到评论"));
  26. }
  27. /**
  28. * 根据课件ID、页码、置顶指数统计
  29. *
  30. * @param slideId
  31. * @param pageNumber
  32. * @param topNumber
  33. * @return
  34. */
  35. long countBySlideIdAndPageNumberAndTopNumberNot(Long slideId, Integer pageNumber, Integer topNumber);
  36. /**
  37. * 根据课件ID、页码、置顶指数检索
  38. *
  39. * @param slideId
  40. * @param pageNumber
  41. * @param topNumber
  42. * @return
  43. */
  44. List<Comment> findBySlideIdAndPageNumberAndTopNumberGreaterThan(Long slideId, Integer pageNumber, Integer topNumber);
  45. /**
  46. * 根据课件ID、页码、是否展示检索
  47. *
  48. * @param slideId
  49. * @param pageNumber
  50. * @param show
  51. * @param pageable
  52. * @return
  53. */
  54. Page<Comment> findBySlideIdAndPageNumberAndShow(Long slideId, Integer pageNumber, Boolean show, Pageable pageable);
  55. /**
  56. * 根据课件ID、页码、用户ID、是否展示检索
  57. *
  58. * @param slideId
  59. * @param pageNumber
  60. * @param user
  61. * @param show
  62. * @param pageable
  63. * @return
  64. */
  65. Page<Comment> findBySlideIdAndPageNumberAndUserAndShow(Long slideId, Integer pageNumber, User user, Boolean show, Pageable pageable);
  66. }