|
|
@@ -2,6 +2,7 @@ package com.xjrsoft.module.assessment.service.impl;
|
|
|
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
@@ -28,7 +29,9 @@ import com.xjrsoft.module.assessment.mapper.AssessmentTemplateMapper;
|
|
|
import com.xjrsoft.module.assessment.mapper.AssessmentTemplatePlanMapper;
|
|
|
import com.xjrsoft.module.assessment.service.IAssessmentTemplatePlanService;
|
|
|
import com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerPageVo;
|
|
|
+import com.xjrsoft.module.assessment.vo.AssessmentQuestionVo;
|
|
|
import com.xjrsoft.module.assessment.vo.AssessmentTemplatePlanPageVo;
|
|
|
+import com.xjrsoft.module.assessment.vo.AssessmentTemplateQuestionVo;
|
|
|
import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
|
|
|
import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
|
|
|
@@ -37,7 +40,9 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Random;
|
|
|
|
|
|
/**
|
|
|
@@ -74,9 +79,14 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
|
|
|
.eq(AssessmentQuestion::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
.eq(AssessmentQuestion::getAssessmentTemplateId, dto.getAssessmentTemplateId())
|
|
|
);
|
|
|
+ Map<Long, Long> parentMap = new HashMap<>();
|
|
|
+ for (AssessmentQuestion assessmentQuestion : questionList) {
|
|
|
+ parentMap.put(assessmentQuestion.getId(), IdUtil.getSnowflakeNextId());
|
|
|
+ }
|
|
|
for (AssessmentQuestion assessmentQuestion : questionList) {
|
|
|
AssessmentPlanQuestion planQuestion = BeanUtil.toBean(assessmentQuestion, AssessmentPlanQuestion.class);
|
|
|
- planQuestion.setId(null);
|
|
|
+ planQuestion.setId(parentMap.get(assessmentQuestion.getId()));
|
|
|
+ planQuestion.setParentId(parentMap.get(assessmentQuestion.getParentId()));
|
|
|
planQuestion.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
|
|
|
planQuestionMapper.insert(planQuestion);
|
|
|
}
|
|
|
@@ -140,9 +150,16 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
|
|
|
new QueryWrapper<AssessmentQuestion>().lambda()
|
|
|
.eq(AssessmentQuestion::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
.eq(AssessmentQuestion::getAssessmentTemplateId, dto.getAssessmentTemplateId())
|
|
|
+ .orderByAsc(AssessmentQuestion::getCategory)
|
|
|
);
|
|
|
+ Map<Long, Long> parentMap = new HashMap<>();
|
|
|
+ for (AssessmentQuestion assessmentQuestion : questionList) {
|
|
|
+ parentMap.put(assessmentQuestion.getId(), IdUtil.getSnowflakeNextId());
|
|
|
+ }
|
|
|
for (AssessmentQuestion assessmentQuestion : questionList) {
|
|
|
AssessmentPlanQuestion planQuestion = BeanUtil.toBean(assessmentQuestion, AssessmentPlanQuestion.class);
|
|
|
+ planQuestion.setId(parentMap.get(assessmentQuestion.getId()));
|
|
|
+ planQuestion.setParentId(parentMap.get(assessmentQuestion.getParentId()));
|
|
|
planQuestion.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
|
|
|
planQuestionMapper.insert(planQuestion);
|
|
|
}
|
|
|
@@ -232,4 +249,50 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
|
|
|
studentMapper.sure(dto, teacherId);
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AssessmentTemplateQuestionVo getQuestionsById(Long id) {
|
|
|
+ AssessmentTemplatePlan templatePlan = templatePlanMapper.selectById(id);
|
|
|
+ AssessmentTemplateQuestionVo vo = BeanUtil.toBean(templatePlan, AssessmentTemplateQuestionVo.class);
|
|
|
+ List<AssessmentPlanQuestion> questionList = planQuestionMapper.selectList(
|
|
|
+ new QueryWrapper<AssessmentPlanQuestion>().lambda()
|
|
|
+ .eq(AssessmentPlanQuestion::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .eq(AssessmentPlanQuestion::getAssessmentTemplatePlanId, id)
|
|
|
+ );
|
|
|
+
|
|
|
+ //循环大题
|
|
|
+ List<AssessmentQuestionVo> oneList = new ArrayList<>();
|
|
|
+ for (AssessmentPlanQuestion assessmentQuestion : questionList) {
|
|
|
+ if(assessmentQuestion.getCategory() == 1){
|
|
|
+ oneList.add(BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //循环小题
|
|
|
+ for (AssessmentQuestionVo oneQuestion : oneList) {
|
|
|
+ List<AssessmentQuestionVo> twoList = new ArrayList<>();
|
|
|
+ for (AssessmentPlanQuestion assessmentQuestion : questionList) {
|
|
|
+ if(assessmentQuestion.getCategory() == 2 && assessmentQuestion.getParentId().equals(oneQuestion.getId())){
|
|
|
+ twoList.add(BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ oneQuestion.setChildren(twoList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //循环选项
|
|
|
+ for (AssessmentQuestionVo oneQuestion : oneList) {
|
|
|
+ for (AssessmentQuestionVo twoQuestion : oneQuestion.getChildren()) {
|
|
|
+ List<AssessmentQuestionVo> optionList = new ArrayList<>();
|
|
|
+ for (AssessmentPlanQuestion assessmentQuestion : questionList) {
|
|
|
+ if(assessmentQuestion.getCategory() == 3 && assessmentQuestion.getParentId().equals(twoQuestion.getId())){
|
|
|
+ optionList.add(BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ twoQuestion.setOptions(optionList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ vo.setChildren(oneList);
|
|
|
+ return vo;
|
|
|
+ }
|
|
|
}
|