Jelajahi Sumber

Merge branch 'Release' of git.mooctest.net:summer/main-site into Release

zhangxin 7 tahun lalu
induk
melakukan
b996329133

+ 1 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/fromDev/impl/AnalysisServiceImpl.java

@@ -141,6 +141,7 @@ public class AnalysisServiceImpl implements AnalysisService {
     public List<CaughtNodeDTO> mutationCaughtNodeAnalyze(long examId, long workerId, long caseId){
         Case devCase=caseService.getCaseById(caseId);
         String url = pluginLogic.getAnalysisSignature(examId, workerId, devCase.getName());
+        System.out.println(url);
         List<String> defaultList = new ArrayList<>();
         defaultList.add("CONDITIONALS_BOUNDARY");
         defaultList.add("NEGATE_CONDITIONALS");

+ 2 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/fromDev/APFDLogic.java

@@ -25,4 +25,6 @@ public interface APFDLogic {
     String getMutationNodeAnalyseofCaseInExam(Long examId, Long caseId, Long participantId);
 
     List<CaughtNodeDTO> getMutationNodeAnalyseByExamIdAndParticipantId(Long examId, Long caseId, Long workerId);
+
+    void getMutationDTO(Long examId, Long caseId, Long participantId);
 }

+ 21 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/fromDev/impl/APFDLogicImpl.java

@@ -213,7 +213,28 @@ public class APFDLogicImpl extends BaseLogic implements APFDLogic{
                 calculateSocreLogic.calculateExamScoreAuto(examId,workerId);
             }
             calculateSocreLogic.catchNode(examId,caseId,workerId,String.valueOf(System.currentTimeMillis()),dtos);
+
+            getMutationDTO(examId,caseId,workerId);
             return dtos;
         }
     }
+
+    @Override
+    public void getMutationDTO(Long examId, Long caseId, Long participantId){
+        MutationDTO mutationDTO;
+        try {
+            mutationDTO = analysisService.mutationAnalyze(examId, participantId, caseId);
+            List<MutationForMongoDTO> list = mongoAPIService.getMutationFromMongo(participantId, examId, caseId);
+            if(list!=null) {
+                MutationForMongoDTO mutationForMongoDTO = list.get(0);
+                mutationForMongoDTO.setMutationDTO(mutationDTO);
+                mongoAPIService.updateMutationToMongo(mutationForMongoDTO);
+            }else {
+                mongoAPIService.saveMutationToMongo(participantId, examId, caseId, mutationDTO);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            return;
+        }
+    }
 }

+ 3 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/SimilarityLogicImpl.java

@@ -109,6 +109,9 @@ public class SimilarityLogicImpl implements SimilarityLogic{
             return result;
         }
         List<CatchDTO> catchDTOS = userCatchDTOS.get(0).getCatchDTOs().stream().filter(node -> node.getCategory().equals(type)).collect(Collectors.toList());
+        if(catchDTOS.size() == 0) {
+            return result;
+        }
         List<String> sortedTimestamp = getSortedTimeStamp(catchDTOS, type);
         HashMap<String, int[]> initMatrix = getNodeTimeInitMatrix(sortedTimestamp, catchDTOS, nodeNameSet);
         result = getExtendedMatrix(task.getBeginTime(), task.getEndTime(), initMatrix, sortedTimestamp);