|
@@ -28,6 +28,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* Created by HenryLee on 2017/7/10.
|
|
@@ -270,6 +271,19 @@ public class CalculateScoreLogicImpl implements CalculateSocreLogic {
|
|
|
@Override
|
|
|
public List<CaughtNodeDTO> catchNode(Long examId, Long caseId, Long userId, String uploadTime,
|
|
|
List<CaughtNodeDTO> caughtNodeDTOs) {
|
|
|
+ List<CatchDTO> catchDTOList = new ArrayList<>();
|
|
|
+
|
|
|
+ //CatchDTO
|
|
|
+ for (CaughtNodeDTO caughtNodeDTO : caughtNodeDTOs) {
|
|
|
+ CatchDTO catchDTO = new CatchDTO();
|
|
|
+
|
|
|
+ catchDTO.setNodeName(caughtNodeDTO.getNodeName());
|
|
|
+ catchDTO.setUploadTime(uploadTime);
|
|
|
+ catchDTO.setCategory(caughtNodeDTO.getCategory());
|
|
|
+ catchDTO = catchService.updateCatchDTO(catchDTO);
|
|
|
+ catchDTOList.add(catchDTO);
|
|
|
+ }
|
|
|
+
|
|
|
List<CaughtNodeDTO> returnList = new ArrayList<>();
|
|
|
List<CaughtNodeDTO> caughtNodeList = caughtNodeService.getCaughtNodeList(examId, caseId);
|
|
|
CaughtNodeDTO cn = new CaughtNodeDTO();
|
|
@@ -298,30 +312,28 @@ public class CalculateScoreLogicImpl implements CalculateSocreLogic {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //CatchDTO
|
|
|
- CatchDTO catchDTO = new CatchDTO();
|
|
|
- catchDTO.setNodeName(cn.getNodeName());
|
|
|
- catchDTO.setUploadTime(uploadTime);
|
|
|
- catchDTO = catchService.updateCatchDTO(catchDTO);
|
|
|
-
|
|
|
//userCatch
|
|
|
List<UserCatchDTO> userCatchDTOs = userCatchService.getUserCatchDTOs(userId, examId, caseId);
|
|
|
|
|
|
if (userCatchDTOs != null) {
|
|
|
UserCatchDTO userCatchDTO = userCatchService.getUserCatchDTOs(userId, examId, caseId).get(0);
|
|
|
List<CatchDTO> catchDTOs = userCatchDTO.getCatchDTOs();
|
|
|
- catchDTOs.add(catchDTO);
|
|
|
+
|
|
|
+ List<String> nodeNames = catchDTOs.stream().map(catchDTO -> catchDTO.getNodeName()).collect(Collectors.toList());
|
|
|
+ for (CatchDTO newCatchDTO : catchDTOList) {
|
|
|
+ if (!nodeNames.contains(newCatchDTO.getNodeName())) {
|
|
|
+ catchDTOs.add(newCatchDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
userCatchDTO.setCatchDTOs(catchDTOs);
|
|
|
userCatchService.updateUserCatch(userCatchDTO);
|
|
|
-
|
|
|
} else {
|
|
|
UserCatchDTO userCatchDTO = new UserCatchDTO();
|
|
|
userCatchDTO.setCaseId(caseId);
|
|
|
userCatchDTO.setExamId(examId);
|
|
|
userCatchDTO.setUserId(userId);
|
|
|
- userCatchDTO.setCategory(cn.getCategory());
|
|
|
List<CatchDTO> catchDTOs = new ArrayList<>();
|
|
|
- catchDTOs.add(catchDTO);
|
|
|
+ catchDTOs.addAll(catchDTOList);
|
|
|
userCatchDTO.setCatchDTOs(catchDTOs);
|
|
|
userCatchService.createUserCatch(userCatchDTO);
|
|
|
}
|