|
@@ -2,6 +2,7 @@ package com.qizhen.healsphere.service.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import com.qizhen.healsphere.config.Neo4jUtil;
|
|
|
+import com.qizhen.healsphere.service.BaseNodeService;
|
|
|
import com.qizhen.healsphere.service.KgService;
|
|
|
import com.qizhen.healsphere.web.dto.BaseNodeRSDTO;
|
|
|
import com.qizhen.healsphere.web.dto.GraphDTO;
|
|
@@ -34,6 +35,9 @@ public class KgServiceImpl implements KgService {
|
|
|
@Autowired
|
|
|
private Neo4jUtil neo4jUtil;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private BaseNodeService nodeService;
|
|
|
+
|
|
|
@Override
|
|
|
public List<GraphDTO> getGraph(KgQuery kgQuery){
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
@@ -92,17 +96,35 @@ public class KgServiceImpl implements KgService {
|
|
|
rtypeMap.put(rType, nextNodeDTOS);
|
|
|
}
|
|
|
|
|
|
- GraphDTO graphDTO = graphMap.values().stream().findFirst().get();
|
|
|
-
|
|
|
- List<BaseNodeRSDTO> baseNodeRSDTOS = new ArrayList<>();
|
|
|
- rtypeMap.forEach((key, value) -> {
|
|
|
- BaseNodeRSDTO nodeRSDTO = new BaseNodeRSDTO();
|
|
|
- nodeRSDTO.setRType(key);
|
|
|
- nodeRSDTO.setENodeDTOS(value);
|
|
|
- baseNodeRSDTOS.add(nodeRSDTO);
|
|
|
- });
|
|
|
- graphDTO.setENodeRSDTOS(baseNodeRSDTOS);
|
|
|
- graphDTOList.add(graphDTO);
|
|
|
+ if (CollUtil.isNotEmpty(graphMap)) {
|
|
|
+ GraphDTO graphDTO = graphMap.values().stream().findFirst().get();
|
|
|
+
|
|
|
+ List<BaseNodeRSDTO> baseNodeRSDTOS = new ArrayList<>();
|
|
|
+ rtypeMap.forEach((key, value) -> {
|
|
|
+ BaseNodeRSDTO nodeRSDTO = new BaseNodeRSDTO();
|
|
|
+ nodeRSDTO.setRType(key);
|
|
|
+ nodeRSDTO.setENodeDTOS(value);
|
|
|
+ baseNodeRSDTOS.add(nodeRSDTO);
|
|
|
+ });
|
|
|
+ graphDTO.setENodeRSDTOS(baseNodeRSDTOS);
|
|
|
+ graphDTOList.add(graphDTO);
|
|
|
+ }else{
|
|
|
+ Map<String, Object> node = nodeService.findNode(kgQuery.getLabelName(), kgQuery.getInputStr());
|
|
|
+ if (CollUtil.isNotEmpty(node)){
|
|
|
+ Map<String,Object> properties = (Map<String,Object>)node.get("properties");
|
|
|
+ List<String> labelList = (List<String>) node.get("labels");
|
|
|
+ GraphDTO graphDTO = new GraphDTO();
|
|
|
+ graphDTO.setName(properties.get("name").toString());
|
|
|
+ graphDTO.setLabel(labelList.get(0));
|
|
|
+ graphDTO.setId((Long)node.get("id"));
|
|
|
+ graphDTO.setProperties(properties);
|
|
|
+ graphDTOList.add(graphDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
return graphDTOList;
|
|
|
|