|
|
@@ -2,7 +2,6 @@ package cn.seecoder.data.server.service.Impl;
|
|
|
|
|
|
import cn.seecoder.bok.client.SeecoderBokClient;
|
|
|
import cn.seecoder.bok.common.vo.QuestionVO;
|
|
|
-import cn.seecoder.data.server.domain.GeneralRecordDao;
|
|
|
import cn.seecoder.data.server.domain.knowledge.KnowledgeDao;
|
|
|
import cn.seecoder.data.server.domain.knowledge.KnowledgeOnPositionDao;
|
|
|
import cn.seecoder.data.server.domain.knowledge.PositionWeightDao;
|
|
|
@@ -12,7 +11,6 @@ import cn.seecoder.data.server.repository.knowledge.PositionWeightRepository;
|
|
|
import cn.seecoder.data.server.service.KnowledgeService;
|
|
|
import cn.seecoder.data.server.vo.knowledge.KnowledgePointVO;
|
|
|
import cn.seecoder.data.server.vo.knowledge.KnowledgeVO;
|
|
|
-import org.checkerframework.checker.units.qual.A;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -73,6 +71,7 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
|
@Override
|
|
|
public KnowledgePointVO getTreeByPosition(String position) {
|
|
|
List<PositionWeightDao> positionWeightDaos = positionWeightRepository.findByPosition(position);
|
|
|
+ SeecoderBokClient seecoderBokClient = new SeecoderBokClient("http://bok.seec.seecoder.cn");
|
|
|
KnowledgePointVO root = new KnowledgePointVO("SE","软件工程",0,0,0,0,0,0,0,null);
|
|
|
for(int i=0;i<positionWeightDaos.size();i++){
|
|
|
PositionWeightDao positionWeight = positionWeightDaos.get(i);
|
|
|
@@ -88,7 +87,6 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
|
if(!getAbbOnVO(upNode.getKnowledgePointVOs()).contains(tempLevel)){
|
|
|
nodeToAdd = new KnowledgePointVO(tempLevel,knowledgeInfo.getName(),0,0,0,0,0,0,0,null);
|
|
|
if(j+1==knowledgeLevel.length) {
|
|
|
- SeecoderBokClient seecoderBokClient = new SeecoderBokClient("http://bok.seec.seecoder.cn");
|
|
|
ArrayList<String> knowledgeIds = new ArrayList<>();
|
|
|
knowledgeIds.add(tempLevel);
|
|
|
long questionNum = seecoderBokClient.getQuestionList(null, null, knowledgeIds, null).getTotalElements();
|
|
|
@@ -147,9 +145,9 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
|
return root;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
private KnowledgePointVO addScoreToNode(KnowledgePointVO root, Double score, Double scoreTotal, QuestionVO questionInfo,String knowledege,int deep) {
|
|
|
String[] nodeKnowledge = knowledege.split("\\.");
|
|
|
+ double[] questionWeight = {1,1,1,1,05,1.1};
|
|
|
String now = nodeKnowledge[0];
|
|
|
for(int i=1;i<deep && i<nodeKnowledge.length;i++)
|
|
|
now = now + "." + nodeKnowledge[i];
|
|
|
@@ -160,14 +158,17 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
|
root.setScoreGotten(root.getScoreGotten()+leafNode.getScoreGotten());
|
|
|
root.setScoreTotal(root.getScoreTotal()+leafNode.getScoreTotal());
|
|
|
if(root.getScoreTotal()!=0)
|
|
|
- root.setCorrectRate(root.getScoreGotten()/root.getScoreTotal());
|
|
|
+ root.setCorrectRate((root.getScoreGotten()/root.getScoreTotal())>1?1:(root.getScoreGotten()/root.getScoreTotal()));
|
|
|
if(root.getQuestionsNumTotal()!=0)
|
|
|
- root.setCoverageRate(root.getQuestionsNumDone()/root.getQuestionsNumTotal());
|
|
|
+ root.setCoverageRate((root.getQuestionsNumDone()/root.getQuestionsNumTotal())>1?1:(root.getQuestionsNumDone()/root.getQuestionsNumTotal()));
|
|
|
return leafNode;
|
|
|
}
|
|
|
else{
|
|
|
root.setQuestionsNumDone(root.getQuestionsNumDone()+1);
|
|
|
- root.setScoreGotten(score*root.getLeafWeight());
|
|
|
+ if(questionInfo.getWeight()!=null)
|
|
|
+ root.setScoreGotten(score*root.getLeafWeight()*questionWeight[questionInfo.getWeight()]);
|
|
|
+ else
|
|
|
+ root.setScoreGotten(score*root.getLeafWeight());
|
|
|
root.setScoreTotal(scoreTotal*root.getLeafWeight());
|
|
|
if(root.getScoreTotal()!=0)
|
|
|
root.setCorrectRate(root.getScoreGotten()/root.getScoreTotal());
|
|
|
@@ -191,7 +192,6 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
public ArrayList<String> getAbbOnVO(List<KnowledgePointVO> knowledgePointVOS){
|
|
|
ArrayList<String> arrayList= new ArrayList<>();
|
|
|
if(knowledgePointVOS!=null && knowledgePointVOS.size()>0) {
|