Ver código fonte

fix 导入节知识点

he2802 3 anos atrás
pai
commit
0979d47247

+ 32 - 16
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionServiceImpl.java

@@ -26,6 +26,8 @@ import com.zhongzheng.modules.base.domain.ApplyAreas;
 import com.zhongzheng.modules.course.bo.CourseChapterSectionListAddBo;
 import com.zhongzheng.modules.course.domain.*;
 import com.zhongzheng.modules.course.service.*;
+import com.zhongzheng.modules.exam.bo.ExamKnowledgeAddBo;
+import com.zhongzheng.modules.exam.bo.ExamKnowledgeBusinessAddBo;
 import com.zhongzheng.modules.exam.domain.ExamKnowledge;
 import com.zhongzheng.modules.exam.service.IExamKnowledgeService;
 import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
@@ -217,22 +219,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
         List<QuestionImport> errorList = new ArrayList<>();
         for (QuestionImport question : questionList) {
             QuestionAddBo bo = new QuestionAddBo();
-            if(Validator.isNotEmpty(question.getKnowledge())){
-                List<String> knowledgeList = Arrays.asList(question.getKnowledge().split(","));
-                List<Long> kIdList = new ArrayList<>();
-                for (String knowledge : knowledgeList) {
-                    Long knowledgeId = findKnowledgeId(knowledge);
-                    if(!Validator.isNotEmpty(knowledgeId)){
-                //        errorLog+=knowledge+"-该知识点不存在\n";
-                        question.setCause("该知识点不存在");
-                        errorList.add(question);
-                        continue;
-                    }
-                    kIdList.add(knowledgeId);
-                }
-                //知识点ID拼接
-                bo.setKnowledgeIds(join(",", kIdList));
-            }
+
             if(!Validator.isNotEmpty(question.getContent())){
         //        errorLog+="题目内容空白\n";
                 continue;
@@ -285,6 +272,35 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
                 errorList.add(question);
                 continue;
             }
+            if(Validator.isNotEmpty(question.getKnowledge())){
+                List<String> knowledgeList = Arrays.asList(question.getKnowledge().split(","));
+                List<Long> kIdList = new ArrayList<>();
+                for (String knowledge : knowledgeList) {
+                    Long knowledgeId = findKnowledgeId(knowledge);
+                    if(!Validator.isNotEmpty(knowledgeId)){
+                        //知识点不存在则导入
+                        ExamKnowledgeAddBo addBo = new ExamKnowledgeAddBo();
+                        addBo.setName(knowledge);
+                        List<ExamKnowledgeBusinessAddBo> bList = new ArrayList<>();
+                        ExamKnowledgeBusinessAddBo bAddBo = new ExamKnowledgeBusinessAddBo();
+                        bAddBo.setBusinessId(businessId);
+                        bAddBo.setSubjectId(subjectId);
+                        bList.add(bAddBo);
+                        addBo.setExamKnowledgeBusinessAddBoList(bList);
+                        knowledgeId = iExamKnowledgeService.insertByImportQuestionAddBo(addBo);
+                        if(Validator.isEmpty(knowledgeId)||knowledgeId==0){
+                            //        errorLog+=knowledge+"-该知识点不存在\n";
+                            question.setCause("该知识点不存在");
+                            errorList.add(question);
+                            continue;
+                        }
+
+                    }
+                    kIdList.add(knowledgeId);
+                }
+                //知识点ID拼接
+                bo.setKnowledgeIds(join(",", kIdList));
+            }
             questionBusinessAddBo.setEducationTypeId(eduId);
             questionBusinessAddBo.setProjectId(projectId);
             questionBusinessAddBo.setBusinessId(businessId);

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeAddBo.java

@@ -18,6 +18,10 @@ import java.util.List;
 @ApiModel("知识点添加对象")
 public class ExamKnowledgeAddBo {
 
+    /** 知识点名称 */
+    @ApiModelProperty("知识点名称")
+    private String name;
+
     /** 知识点名称 */
     @ApiModelProperty("知识点名称")
     private String[] knowledgeName;

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamKnowledgeService.java

@@ -35,6 +35,8 @@ public interface IExamKnowledgeService extends IService<ExamKnowledge> {
 	 */
 	Boolean insertByAddBo(ExamKnowledgeAddBo bo);
 
+	Long insertByImportQuestionAddBo(ExamKnowledgeAddBo bo);
+
 	/**
 	 * 根据编辑业务对象修改知识点
 	 * @param bo 知识点编辑业务对象

+ 27 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamKnowledgeServiceImpl.java

@@ -110,6 +110,33 @@ public class ExamKnowledgeServiceImpl extends ServiceImpl<ExamKnowledgeMapper, E
         return true;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Long insertByImportQuestionAddBo(ExamKnowledgeAddBo bo) {
+        LambdaQueryWrapper<ExamKnowledge> lqw = Wrappers.lambdaQuery();
+        lqw.eq(ExamKnowledge::getKnowledgeName, bo.getName());
+        lqw.in( ExamKnowledge::getStatus, 1);
+        Integer integer = baseMapper.selectCount(lqw);
+        if (integer > 0){
+            throw new RuntimeException("知识点不能重名");
+        }
+        ExamKnowledge examKnowledge = new ExamKnowledge();
+        examKnowledge.setKnowledgeName(bo.getName());
+        examKnowledge.setStatus(bo.getStatus());
+        examKnowledge.setEncoder(ServletUtils.getEncoded("ZSD"));
+        examKnowledge.setCreateTime(DateUtils.getNowTime());
+        examKnowledge.setUpdateTime(DateUtils.getNowTime());
+        boolean save = this.save(examKnowledge);
+        //知识点绑定业务
+        for (ExamKnowledgeBusinessAddBo examKnowledgeBusinessAddBo : bo.getExamKnowledgeBusinessAddBoList()) {
+            examKnowledgeBusinessAddBo.setKnowledgeId(examKnowledge.getKnowledgeId());
+            examKnowledgeBusinessAddBo.setUpdateTime(DateUtils.getNowTime());
+            examKnowledgeBusinessAddBo.setCreateTime(DateUtils.getNowTime());
+            Boolean aBoolean = examKnowledgeBusinessService.insertByAddBo(examKnowledgeBusinessAddBo);
+        }
+        return examKnowledge.getKnowledgeId();
+    }
+
     @Override
     public Boolean updateByEditBo(ExamKnowledgeEditBo bo) {
         ExamKnowledge update = BeanUtil.toBean(bo, ExamKnowledge.class);