|
@@ -39,7 +39,7 @@ public class IssueService {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- @Transactional
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean delete(Long subjectId, String grade, Long chapterId, int section) {
|
|
|
if (section == 1 && StringUtils.isBlank(grade)) {
|
|
|
return delete(subjectId, chapterId);
|
|
@@ -54,6 +54,7 @@ public class IssueService {
|
|
|
* @param chapterId 章节Id
|
|
|
* @return 是否删除
|
|
|
*/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
private boolean delete(Long subjectId, Long chapterId) {
|
|
|
List<Issue> list = issueDao.findBySubjectIdAndChapterId(subjectId, chapterId);
|
|
|
issueOptionService.deleteByIssueIds(list.stream().map(Issue::getId).collect(Collectors.toList()));
|
|
@@ -62,23 +63,26 @@ public class IssueService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- * 删除模块二三
|
|
|
+ * 根据科目、年级和模块删除试题
|
|
|
*
|
|
|
* @param subjectId 科目Id
|
|
|
* @param grade 年级
|
|
|
* @param section 模块
|
|
|
* @return 是否成功
|
|
|
*/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
private boolean delete(Long subjectId, String grade, int section) {
|
|
|
|
|
|
List<Issue> list = issueDao.findBySubjectIdAndGradeAndSection(subjectId, grade, section);
|
|
|
-
|
|
|
- if (section != 1) {
|
|
|
- issueLiteService.delete(subjectId, grade, section);
|
|
|
- } else {
|
|
|
- issueOptionService.deleteByIssueIds(list.stream().map(Issue::getId).collect(Collectors.toList()));
|
|
|
+ List<Long> issueIds = list.stream().map(Issue::getId).collect(Collectors.toList());
|
|
|
+ switch (section) {
|
|
|
+ case 3:
|
|
|
+ issueLiteService.deleteByIssueIds(issueIds);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ issueOptionService.deleteByIssueIds(issueIds);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
issueDao.deleteAll(list);
|
|
|
|
|
|
return true;
|
|
@@ -89,9 +93,9 @@ public class IssueService {
|
|
|
List<Long> chapterIds = Arrays.stream(paper.getChapterIds().split(",")).map(Long::valueOf).collect(Collectors.toList());
|
|
|
List<Issue> list1 = listWithOption(subjectId, chapterIds);
|
|
|
|
|
|
- List<Issue> list2 = listWithLite(subjectId, paper.getGrade2(), 2);
|
|
|
+ List<Issue> list2 = listWithOption(subjectId, paper.getGrade(), 2);
|
|
|
|
|
|
- List<Issue> list3 = listWithLite(subjectId, paper.getGrade3(), 3);
|
|
|
+ List<Issue> list3 = listWithLite(subjectId, paper.getGrade(), 3);
|
|
|
|
|
|
List<Issue> result = new ArrayList<>();
|
|
|
result.addAll(list1);
|
|
@@ -101,6 +105,13 @@ public class IssueService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ * 获取模块一题目列表
|
|
|
+ *
|
|
|
+ * @param subjectId 科目Id
|
|
|
+ * @param chapterIds 章节Id列表
|
|
|
+ * @return result
|
|
|
+ */
|
|
|
private List<Issue> listWithOption(Long subjectId, List<Long> chapterIds) {
|
|
|
List<Issue> list = list(subjectId, chapterIds);
|
|
|
List<IssueOption> options = issueOptionService.findByIssueIds(list.stream().map(Issue::getId).collect(Collectors.toList()));
|
|
@@ -112,12 +123,39 @@ public class IssueService {
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ * 获取模块二题目列表
|
|
|
+ *
|
|
|
+ * @param subjectId 科目Id
|
|
|
+ * @param grade 年级
|
|
|
+ * @param section 2
|
|
|
+ * @return result
|
|
|
+ */
|
|
|
+ private List<Issue> listWithOption(Long subjectId, String grade, int section) {
|
|
|
+ List<Issue> list = list(subjectId, grade, section);
|
|
|
+ List<IssueOption> options = issueOptionService.findByIssueIds(list.stream().map(Issue::getId).collect(Collectors.toList()));
|
|
|
+ options.sort(Comparator.comparing(IssueOption::getIssueId));
|
|
|
+ Map<Long, List<IssueOption>> group = options.stream().collect(Collectors.groupingBy(IssueOption::getIssueId));
|
|
|
+ for (Issue issue : list) {
|
|
|
+ issue.setOptions(group.getOrDefault(issue.getId(), new ArrayList<>()));
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 获取模块三题目列表
|
|
|
+ *
|
|
|
+ * @param subjectId 章节Id
|
|
|
+ * @param grade 年级
|
|
|
+ * @param section 3
|
|
|
+ * @return result
|
|
|
+ */
|
|
|
private List<Issue> listWithLite(Long subjectId, String grade, int section) {
|
|
|
List<Issue> list = list(subjectId, grade, section);
|
|
|
- List<IssueLite> lites2 = issueLiteService.listAll(list.stream().map(Issue::getId).collect(Collectors.toList()));
|
|
|
- Map<Long, List<IssueLite>> group2 = lites2.stream().collect(Collectors.groupingBy(IssueLite::getIssueId));
|
|
|
+ List<IssueLite> lites = issueLiteService.listAll(list.stream().map(Issue::getId).collect(Collectors.toList()));
|
|
|
+ Map<Long, List<IssueLite>> group = lites.stream().collect(Collectors.groupingBy(IssueLite::getIssueId));
|
|
|
for (Issue issue : list) {
|
|
|
- issue.setLites(group2.getOrDefault(issue.getId(), new ArrayList<>()));
|
|
|
+ issue.setLites(group.getOrDefault(issue.getId(), new ArrayList<>()));
|
|
|
}
|
|
|
return list;
|
|
|
}
|