LearnWrongBookServiceImpl.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package com.ruoyi.learn.service.impl;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.stream.Collectors;
  6. import com.google.common.collect.Lists;
  7. import com.google.common.collect.Maps;
  8. import com.ruoyi.common.utils.SecurityUtils;
  9. import com.ruoyi.common.utils.StringUtils;
  10. import com.ruoyi.dz.domain.DzSubject;
  11. import com.ruoyi.dz.mapper.DzSubjectMapper;
  12. import com.ruoyi.enums.QuestionType;
  13. import com.ruoyi.learn.domain.LearnQuestions;
  14. import com.ruoyi.learn.mapper.LearnKnowledgeTreeMapper;
  15. import com.ruoyi.learn.mapper.LearnQuestionsMapper;
  16. import io.swagger.annotations.ApiModelProperty;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Service;
  19. import com.ruoyi.learn.mapper.LearnWrongBookMapper;
  20. import com.ruoyi.learn.domain.LearnWrongBook;
  21. import com.ruoyi.learn.service.ILearnWrongBookService;
  22. /**
  23. * 学生错题本Service业务层处理
  24. *
  25. * @author ruoyi
  26. * @date 2025-09-25
  27. */
  28. @Service
  29. public class LearnWrongBookServiceImpl implements ILearnWrongBookService
  30. {
  31. @Autowired
  32. private LearnWrongBookMapper learnWrongBookMapper;
  33. @Autowired
  34. private DzSubjectMapper subjectMapper;
  35. @Autowired
  36. private LearnKnowledgeTreeMapper knowledgeTreeMapper;
  37. @Autowired
  38. private LearnQuestionsMapper questionsMapper;
  39. /**
  40. * 查询学生错题本
  41. *
  42. * @param wrongId 学生错题本主键
  43. * @return 学生错题本
  44. */
  45. @Override
  46. public LearnWrongBook selectLearnWrongBookByWrongId(Long wrongId)
  47. {
  48. return learnWrongBookMapper.selectLearnWrongBookByWrongId(wrongId);
  49. }
  50. /**
  51. * 查询学生错题本列表
  52. *
  53. * @param learnWrongBook 学生错题本
  54. * @return 学生错题本
  55. */
  56. @Override
  57. public List<LearnWrongBook> selectLearnWrongBookList(LearnWrongBook learnWrongBook)
  58. {
  59. return learnWrongBookMapper.selectLearnWrongBookList(learnWrongBook);
  60. }
  61. /**
  62. * 新增学生错题本
  63. *
  64. * @param learnWrongBook 学生错题本
  65. * @return 结果
  66. */
  67. @Override
  68. public int insertLearnWrongBook(LearnWrongBook learnWrongBook)
  69. {
  70. return learnWrongBookMapper.insertLearnWrongBook(learnWrongBook);
  71. }
  72. /**
  73. * 修改学生错题本
  74. *
  75. * @param learnWrongBook 学生错题本
  76. * @return 结果
  77. */
  78. @Override
  79. public int updateLearnWrongBook(LearnWrongBook learnWrongBook)
  80. {
  81. return learnWrongBookMapper.updateLearnWrongBook(learnWrongBook);
  82. }
  83. /**
  84. * 批量删除学生错题本
  85. *
  86. * @param wrongIds 需要删除的学生错题本主键
  87. * @return 结果
  88. */
  89. @Override
  90. public int deleteLearnWrongBookByWrongIds(Long[] wrongIds)
  91. {
  92. return learnWrongBookMapper.deleteLearnWrongBookByWrongIds(wrongIds);
  93. }
  94. /**
  95. * 删除学生错题本信息
  96. *
  97. * @param wrongId 学生错题本主键
  98. * @return 结果
  99. */
  100. @Override
  101. public int deleteLearnWrongBookByWrongId(Long wrongId)
  102. {
  103. return learnWrongBookMapper.deleteLearnWrongBookByWrongId(wrongId);
  104. }
  105. public List<DzSubject> findSubject() {
  106. return subjectMapper.selectWrongSubjectList(SecurityUtils.getUserId());
  107. }
  108. public List<LearnWrongBook> findWrongQuestions(Long subjectId) {
  109. Map cond = Maps.newHashMap();
  110. cond.put("subjectId", subjectId);
  111. cond.put("studentId", SecurityUtils.getUserId());
  112. List<LearnWrongBook> wrongBookList = learnWrongBookMapper.findWrongQuestions(cond);
  113. if(wrongBookList.size() > 0) {
  114. Map<Long, LearnQuestions> qMap = questionsMapper.selectLearnQuestionsByIds(wrongBookList.stream().map(LearnWrongBook::getQuestionId).toArray(Long[]::new)).stream().collect(Collectors.toMap(LearnQuestions::getId, t -> t));
  115. wrongBookList.stream().forEach(t -> {
  116. LearnQuestions q = qMap.get(t.getQuestionId());
  117. t.setTitle(q.getTitle());
  118. t.setParse(q.getParse());
  119. t.setType(q.getQtpye());
  120. t.setTypeId(QuestionType.of(q.getQtpye()).getVal());
  121. t.setAnswer1(q.getAnswer1());
  122. t.setAnswer2(q.getAnswer2());
  123. t.setAnswers(StringUtils.isNotBlank(t.getAnswer()) ? Arrays.asList(t.getAnswer().split(",")) : Lists.newArrayList());
  124. t.setOptions(StringUtils.getOptions(q.getOptionA(), q.getOptionB(), q.getOptionC(), q.getOptionD(), q.getOptionE(), q.getOptionF(), q.getOptionG()));
  125. });
  126. }
  127. return wrongBookList;
  128. }
  129. public List<LearnWrongBook> findWrongExaminees(Long wrongId) {
  130. return learnWrongBookMapper.findWrongExaminees(wrongId);
  131. }
  132. public int deleteByQuestion(Long studentId, Long questionId) {
  133. LearnWrongBook b = new LearnWrongBook();
  134. b.setStudentId(studentId);
  135. b.setQuestionId(questionId);
  136. return learnWrongBookMapper.deleteByQuestion(b);
  137. }
  138. }