Browse Source

bug修改

weiwenhai 7 years ago
parent
commit
837032a3fc

+ 20 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/PaperDetailUnitServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qmth.cqb.paper.service.impl;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 
+import com.netflix.infix.lang.infix.antlr.EventFilterParser.boolean_expr_return;
 import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
 import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
 import com.qmth.cqb.paper.model.Paper;
@@ -22,6 +24,7 @@ import com.qmth.cqb.paper.model.PaperDetail;
 import com.qmth.cqb.paper.model.PaperDetailUnit;
 import com.qmth.cqb.paper.service.PaperDetailUnitService;
 import com.qmth.cqb.paper.service.PaperService;
+import com.qmth.cqb.question.model.QuesProperty;
 import com.qmth.cqb.question.model.Question;
 import com.qmth.cqb.question.service.QuesService;
 import com.qmth.cqb.utils.enums.PaperType;
@@ -102,6 +105,23 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService{
                 }
                 // 更新套题unit当前总分与子题分数
                 oldPdu.setSubScoreList(subScoreList);
+                //重新计算套题的难度,公开度
+                boolean publicity = false;
+                double totalSum = 0d;
+                for(Question subQuestion:oldPdu.getQuestion().getSubQuestions()){
+        			//设置公开度
+        			if(subQuestion.getPublicity()){
+        				publicity = true;
+        			}
+        			if(subQuestion.getDifficultyDegree() == null){
+        				subQuestion.setDifficultyDegree(0.5);
+        			}
+        			totalSum = subQuestion.getDifficultyDegree() + totalSum;
+        		}
+        		BigDecimal b = new BigDecimal(totalSum / (oldPdu.getQuestion().getSubQuestions().size()));  
+    			Double difficulty = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
+    			oldPdu.getQuestion().setDifficultyDegree(difficulty);
+    			oldPdu.getQuestion().setPublicity(publicity);
             }
         } else {
             oldPdu.setQuestion(quesService.saveQues(pduExp.getQuestion()));