PreviewPaperService.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. package com.qxgmat.service.inline;
  2. import com.github.pagehelper.Page;
  3. import com.nuliji.tools.AbstractService;
  4. import com.nuliji.tools.PageResult;
  5. import com.nuliji.tools.Tools;
  6. import com.nuliji.tools.Transform;
  7. import com.nuliji.tools.exception.ParameterException;
  8. import com.nuliji.tools.exception.SystemException;
  9. import com.nuliji.tools.mybatis.Example;
  10. import com.qxgmat.data.constants.enums.QuestionType;
  11. import com.qxgmat.data.constants.enums.module.CourseModule;
  12. import com.qxgmat.data.constants.enums.module.PaperModule;
  13. import com.qxgmat.data.constants.enums.module.PaperOrigin;
  14. import com.qxgmat.data.constants.enums.module.QuestionModule;
  15. import com.qxgmat.data.constants.enums.status.DirectionStatus;
  16. import com.qxgmat.data.constants.enums.status.PreviewStatus;
  17. import com.qxgmat.data.dao.PreviewPaperMapper;
  18. import com.qxgmat.data.dao.entity.PreviewPaper;
  19. import com.qxgmat.data.dao.entity.UserPaper;
  20. import com.qxgmat.data.dao.entity.UserReport;
  21. import com.qxgmat.data.relation.PreviewPaperRelationMapper;
  22. import com.qxgmat.data.relation.UserPaperRelationMapper;
  23. import com.qxgmat.data.relation.UserReportRelationMapper;
  24. import com.qxgmat.data.relation.entity.UserPreviewPaperRelation;
  25. import com.qxgmat.service.UserPaperService;
  26. import com.qxgmat.service.extend.ToolsService;
  27. import org.slf4j.Logger;
  28. import org.slf4j.LoggerFactory;
  29. import org.springframework.stereotype.Service;
  30. import org.springframework.transaction.annotation.Transactional;
  31. import javax.annotation.Resource;
  32. import java.util.*;
  33. import java.util.stream.Collectors;
  34. @Service
  35. public class PreviewPaperService extends AbstractService {
  36. private static final Logger logger = LoggerFactory.getLogger(PreviewPaperService.class);
  37. @Resource
  38. private PreviewPaperMapper previewPaperMapper;
  39. @Resource
  40. private PreviewPaperRelationMapper previewPaperRelationMapper;
  41. private Map<String, String> adminMap = new HashMap<String, String>(){{
  42. put("", "pp");
  43. }};
  44. public Page<PreviewPaper> listAdmin(int page, int size, CourseModule courseModule, QuestionType questionType, Integer structId, Integer courseId, String order, DirectionStatus direction){
  45. if(order == null || order.isEmpty()){
  46. order = "id";
  47. }
  48. if(adminMap.containsKey(order)){
  49. order = adminMap.get(order)+".`"+Tools.underscoreName(order)+"`";
  50. }else{
  51. order = adminMap.get("")+".`"+Tools.underscoreName(order)+"`";
  52. }
  53. if (direction == null){
  54. direction = DirectionStatus.DESC;
  55. }
  56. String finalOrder = order;
  57. DirectionStatus finalDirection = direction;
  58. Page<PreviewPaper> p = page(() -> {
  59. previewPaperRelationMapper.listAdmin(courseModule != null ? courseModule.key : null, questionType != null ? questionType.key : null, structId, courseId, finalOrder, finalDirection.key);
  60. }, page, size);
  61. Collection ids = Transform.getIds(p, PreviewPaper.class, "id");
  62. // 获取详细数据
  63. List<PreviewPaper> list = select(ids);
  64. Transform.replace(p, list, PreviewPaper.class, "id");
  65. return p;
  66. }
  67. public PreviewPaper addCourseNo(PreviewPaper previewPaper){
  68. Example example = new Example(PreviewPaper.class);
  69. example.and(
  70. example.createCriteria()
  71. .andEqualTo("courseId", previewPaper.getCourseId())
  72. .andEqualTo("courseNo", previewPaper.getCourseNo())
  73. );
  74. PreviewPaper in = one(previewPaperMapper, example);
  75. if (in != null){
  76. throw new ParameterException("该课时已经创建");
  77. }
  78. return add(previewPaper);
  79. }
  80. public boolean removeCourseNo(Integer courseId, Integer no){
  81. Example example = new Example(PreviewPaper.class);
  82. example.and(
  83. example.createCriteria()
  84. .andEqualTo("courseId", courseId)
  85. .andEqualTo("courseNo", no)
  86. );
  87. return delete(previewPaperMapper, example) > 0;
  88. }
  89. public PreviewPaper add(PreviewPaper paper){
  90. int result = insert(previewPaperMapper, paper);
  91. paper = one(previewPaperMapper, paper.getId());
  92. if(paper == null){
  93. throw new SystemException("预习作业添加失败");
  94. }
  95. return paper;
  96. }
  97. public PreviewPaper edit(PreviewPaper paper){
  98. PreviewPaper in = one(previewPaperMapper, paper.getId());
  99. if(in == null){
  100. throw new ParameterException("预习作业不存在");
  101. }
  102. int result = update(previewPaperMapper, paper);
  103. return paper;
  104. }
  105. public boolean delete(Number id){
  106. PreviewPaper in = one(previewPaperMapper, id);
  107. if(in == null){
  108. throw new ParameterException("预习作业不存在");
  109. }
  110. int result = delete(previewPaperMapper, id);
  111. return result > 0;
  112. }
  113. public PreviewPaper get(Number id){
  114. PreviewPaper in = one(previewPaperMapper, id);
  115. if(in == null){
  116. throw new ParameterException("预习作业不存在");
  117. }
  118. return in;
  119. }
  120. public Page<PreviewPaper> select(int page, int pageSize){
  121. return select(previewPaperMapper, page, pageSize);
  122. }
  123. public Page<PreviewPaper> select(Integer[] ids){
  124. return page(()->select(previewPaperMapper, ids), 1, ids.length);
  125. }
  126. public List<PreviewPaper> select(Collection ids){
  127. return select(previewPaperMapper, ids);
  128. }
  129. }