From 24fd92d92b1da73361a6873f31e969af78aeeee8 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 28 十一月 2024 11:57:50 +0800 Subject: [PATCH] 导入题目时,如果课目不存在自动创建 --- src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java | 47 +++++++++++++++++++++++++++-------------------- 1 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java index e8879cd..56dbf2f 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java +++ b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java @@ -2,6 +2,7 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.github.pagehelper.PageInfo; import com.mindskip.xzs.base.BaseApiController; import com.mindskip.xzs.base.RestResponse; @@ -330,18 +331,22 @@ questionService.insert(question); - // 鏌ュ嚭鎵�鏈夌殑璇剧洰 - List<Subject> subjects = subjectMapper.allSubject(new ArrayList<>(), Boolean.TRUE); + List<String> subjectNames = Arrays.asList(excelQuestion.getSubjectName().split(SPLIT)); - List<Subject> targetSubject = subjects.stream() - .filter(subject -> subjectNames.contains(subject.getName())) - .collect(Collectors.toList()); - if (CollectionUtils.isEmpty(targetSubject)) { - // todo 璁板綍杩欎釜閿欒 - continue; - } + List<Subject> subjects = subjectNames.stream().map(name -> { + // 鍒ゆ柇璇剧洰鏄惁瀛樺湪浜庢暟鎹簱锛屽鏋滀笉瀛樺湪鍒欒嚜鍔ㄦ柊澧炶鐩� + Subject byName = subjectMapper.getByName(name); + if (Objects.isNull(byName)) { + byName = new Subject(); + byName.setName(name); + byName.setDeleted(false); + subjectMapper.insert(byName); + } + return byName; + }).collect(Collectors.toList()); + // 鏋勫缓璇剧洰-棰樼洰淇℃伅 - questionSubjectsList = targetSubject.stream() + questionSubjectsList = subjects.stream() .filter(subject -> { // 鍘婚噸棰樼洰锛氶骞�+璇剧洰鐩稿悓鎵嶇畻鍚屼竴棰� List<QuestionSubjectVO> lists = questionService.countQuestionByTitleAndSubject(excelQuestion.getTitle(), subject.getId()); @@ -359,18 +364,20 @@ questionSubjectService.saves(questionSubjectsList); } } else { - // 鏌ュ嚭鎵�鏈夌殑璇剧洰 - List<Subject> subjects = subjectMapper.allSubject(new ArrayList<>(), Boolean.TRUE); List<String> subjectNames = Arrays.asList(excelQuestion.getSubjectName().split(SPLIT)); - List<Subject> targetSubject = subjects.stream() - .filter(subject -> subjectNames.contains(subject.getName())) - .collect(Collectors.toList()); - if (CollectionUtils.isEmpty(targetSubject)) { - // todo 璁板綍杩欎釜閿欒 - continue; - } + List<Subject> subjects = subjectNames.stream().map(name -> { + // 鍒ゆ柇璇剧洰鏄惁瀛樺湪浜庢暟鎹簱锛屽鏋滀笉瀛樺湪鍒欒嚜鍔ㄦ柊澧炶鐩� + Subject byName = subjectMapper.getByName(name); + if (Objects.isNull(byName)) { + byName = new Subject(); + byName.setName(name); + byName.setDeleted(false); + subjectMapper.insert(byName); + } + return byName; + }).collect(Collectors.toList()); // 鏋勫缓璇剧洰-棰樼洰淇℃伅 - questionSubjectsList = targetSubject.stream() + questionSubjectsList = subjects.stream() .filter(subject -> { // 鍘婚噸棰樼洰锛氶骞�+璇剧洰鐩稿悓鎵嶇畻鍚屼竴棰� List<QuestionSubjectVO> lists = questionService.countQuestionByTitleAndSubject(excelQuestion.getTitle(), subject.getId()); -- Gitblit v1.8.0