SentenceArticleService.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.qxgmat.service.inline;
  2. import com.github.pagehelper.Page;
  3. import com.nuliji.tools.AbstractService;
  4. import com.nuliji.tools.exception.ParameterException;
  5. import com.nuliji.tools.exception.SystemException;
  6. import com.nuliji.tools.mybatis.Example;
  7. import com.qxgmat.data.constants.enums.status.DirectionStatus;
  8. import com.qxgmat.data.dao.SentenceArticleMapper;
  9. import com.qxgmat.data.dao.entity.Manager;
  10. import com.qxgmat.data.dao.entity.SentenceArticle;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.stereotype.Service;
  14. import javax.annotation.Resource;
  15. import java.util.Collection;
  16. import java.util.List;
  17. @Service
  18. public class SentenceArticleService extends AbstractService {
  19. private static final Logger logger = LoggerFactory.getLogger(SentenceArticleService.class);
  20. @Resource
  21. private SentenceArticleMapper sentenceArticleMapper;
  22. /**
  23. * 获取长难句所有文章: 做目录
  24. * @return
  25. */
  26. public List<SentenceArticle> all(){
  27. Example example = new Example(SentenceArticle.class);
  28. example.setOrderByClause("chapter asc,part asc");
  29. return select(sentenceArticleMapper, example);
  30. }
  31. public Page<SentenceArticle> listAdmin(int page, int pageSize, Number chapter, Number part, String order, DirectionStatus direction){
  32. Example example = new Example(SentenceArticle.class);
  33. if (chapter!=null){
  34. example.and(
  35. example.createCriteria()
  36. .andEqualTo("chapter", chapter)
  37. );
  38. }
  39. if (part!=null){
  40. example.and(
  41. example.createCriteria()
  42. .andEqualTo("part", part)
  43. );
  44. }
  45. if(order == null || order.isEmpty()) order = "id";
  46. switch(direction){
  47. case ASC:
  48. example.orderBy(order).asc();
  49. break;
  50. case DESC:
  51. default:
  52. example.orderBy(order).desc();
  53. }
  54. return select(sentenceArticleMapper, example, page, pageSize);
  55. }
  56. /**
  57. * 获取长难句单个章节所有文章
  58. * @param chapter
  59. * @return
  60. */
  61. public List<SentenceArticle> listByChapter(Number chapter){
  62. Example example = new Example(SentenceArticle.class);
  63. example.and(
  64. example.createCriteria()
  65. .andEqualTo("chapter", chapter)
  66. );
  67. example.orderBy("part").asc();
  68. return select(sentenceArticleMapper, example);
  69. }
  70. /**
  71. * 获取所有试用章节文章
  72. * @return
  73. */
  74. public List<SentenceArticle> listByTrail(){
  75. Example example = new Example(SentenceArticle.class);
  76. example.and(
  77. example.createCriteria()
  78. .andEqualTo("isTrail", 1)
  79. );
  80. example.setOrderByClause("chapter asc,part asc");
  81. return select(sentenceArticleMapper, example);
  82. }
  83. /**
  84. * 获取章节下最大
  85. * @param chapter
  86. * @return
  87. */
  88. public Integer maxPart(Integer chapter){
  89. Example example = new Example(SentenceArticle.class);
  90. example.and(
  91. example.createCriteria()
  92. .andEqualTo("chapter", chapter)
  93. );
  94. example.selectProperties("part");
  95. example.setOrderByClause("part desc");
  96. SentenceArticle entity = one(sentenceArticleMapper, example);
  97. return entity != null ? entity.getPart() : 0;
  98. }
  99. public SentenceArticle add(SentenceArticle article){
  100. int result = insert(sentenceArticleMapper, article);
  101. article = one(sentenceArticleMapper, article.getId());
  102. if(article == null){
  103. throw new SystemException("文章添加失败");
  104. }
  105. return article;
  106. }
  107. public SentenceArticle edit(SentenceArticle article){
  108. SentenceArticle in = one(sentenceArticleMapper, article.getId());
  109. if(in == null){
  110. throw new ParameterException("文章不存在");
  111. }
  112. int result = update(sentenceArticleMapper, article);
  113. return article;
  114. }
  115. public boolean delete(Number id){
  116. SentenceArticle in = one(sentenceArticleMapper, id);
  117. if(in == null){
  118. throw new ParameterException("文章不存在");
  119. }
  120. int result = delete(sentenceArticleMapper, id);
  121. return result > 0;
  122. }
  123. public SentenceArticle get(Number id){
  124. SentenceArticle in = one(sentenceArticleMapper, id);
  125. if(in == null){
  126. throw new ParameterException("文章不存在");
  127. }
  128. return in;
  129. }
  130. public Page<SentenceArticle> select(int page, int pageSize){
  131. return select(sentenceArticleMapper, page, pageSize);
  132. }
  133. public Page<SentenceArticle> select(Integer[] ids){
  134. return page(()->select(sentenceArticleMapper, ids), 1, ids.length);
  135. }
  136. public List<SentenceArticle> select(Collection ids){
  137. return select(sentenceArticleMapper, ids);
  138. }
  139. }