Bläddra i källkod

获取描述框架

wangfeng 5 år sedan
förälder
incheckning
d565588bd6

+ 19 - 0
ltkg-service/src/main/java/com/diagbot/dto/NodeLabelsDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-03-16 11:43
+ */
+@Setter
+@Getter
+public class NodeLabelsDTO {
+
+    private int Id;
+    private String relationNode;
+    private String node;
+
+}

+ 19 - 0
ltkg-service/src/main/java/com/diagbot/dto/SchemaDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-03-16 11:39
+ */
+@Setter
+@Getter
+public class SchemaDTO {
+    private int nodeId;
+    private String diseaseNode;
+    private List<NodeLabelsDTO> nodeLabels;
+}

+ 4 - 1
ltkg-service/src/main/java/com/diagbot/mapper/KgMapper.java

@@ -2,7 +2,10 @@ package com.diagbot.mapper;
 
 import com.diagbot.dto.GraphDTO;
 import com.diagbot.dto.NodeDTO;
+import com.diagbot.dto.SchemaDTO;
 import com.diagbot.vo.KgQueryVO;
+import com.diagbot.vo.SchemaVO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -23,5 +26,5 @@ public interface KgMapper {
 
     List<Map> getTree();
 
-    List<Map> getSchema();
+    List<SchemaDTO> getSchema(SchemaVO schemaVO);
 }

+ 3 - 1
ltkg-service/src/main/java/com/diagbot/service/KgService.java

@@ -2,7 +2,9 @@ package com.diagbot.service;
 
 import com.diagbot.dto.GraphDTO;
 import com.diagbot.dto.NodeDTO;
+import com.diagbot.dto.SchemaDTO;
 import com.diagbot.vo.KgQueryVO;
+import com.diagbot.vo.SchemaVO;
 
 import java.util.List;
 import java.util.Map;
@@ -23,5 +25,5 @@ public interface KgService {
 
     List<Map> getTree();
 
-    List<Map> getSchema();
+    List<SchemaDTO> getSchema(SchemaVO schemaVO);
 }

+ 4 - 2
ltkg-service/src/main/java/com/diagbot/service/impl/KgServiceImpl.java

@@ -2,9 +2,11 @@ package com.diagbot.service.impl;
 
 import com.diagbot.dto.GraphDTO;
 import com.diagbot.dto.NodeDTO;
+import com.diagbot.dto.SchemaDTO;
 import com.diagbot.mapper.KgMapper;
 import com.diagbot.service.KgService;
 import com.diagbot.vo.KgQueryVO;
+import com.diagbot.vo.SchemaVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -41,7 +43,7 @@ public class KgServiceImpl implements KgService {
     }
 
     @Override
-    public List<Map> getSchema(){
-        return kgMapper.getSchema();
+    public List<SchemaDTO> getSchema(SchemaVO schemaVO){
+        return kgMapper.getSchema( schemaVO);
     }
 }

+ 4 - 2
ltkg-service/src/main/java/com/diagbot/web/KgController.java

@@ -5,8 +5,10 @@ import com.diagbot.dto.GraphDTO;
 import com.diagbot.dto.GraphLabelDTO;
 import com.diagbot.dto.NodeDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SchemaDTO;
 import com.diagbot.facade.KgFacade;
 import com.diagbot.vo.KgQueryVO;
+import com.diagbot.vo.SchemaVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,8 +59,8 @@ public class KgController {
     @ApiOperation(value = "获取描述框架", notes = "获取描述框架")
     @PostMapping("/getSchema")
     @SysLogger("getSchema")
-    public RespDTO<List<Map>> getSchema() {
-        return RespDTO.onSuc(kgFacade.getSchema());
+    public RespDTO<List<SchemaDTO>> getSchema(@RequestBody SchemaVO schemaVO) {
+        return RespDTO.onSuc(kgFacade.getSchema(schemaVO));
     }
 }
 

+ 18 - 2
ltkg-service/src/main/resources/mapper/KgMapper.xml

@@ -14,6 +14,15 @@
             </collection>
         </collection>
     </resultMap>
+    <resultMap id="SchemaResultMap" type="com.diagbot.dto.SchemaDTO">
+        <result column="nodeId" property="nodeId"/>
+        <result column="diseaseNode" property="diseaseNode"/>
+            <collection property="nodeLabels" ofType="com.diagbot.dto.NodeLabelsDTO">
+                <result column="relationNode" property="relationNode"/>
+                <result column="Id" property="Id"/>
+                <result column="node" property="node"/>
+            </collection>
+    </resultMap>
 
     <select id="getNode" parameterType='com.diagbot.vo.KgQueryVO' resultType="com.diagbot.dto.NodeDTO">
         Match (n:${labelName}) where n.name STARTS WITH #{inputStr} with collect(n.name) as rows1
@@ -36,8 +45,15 @@
       MATCH (obj:`疾病名称`) RETURN obj LIMIT 25
     </select>
 
-    <select id="getSchema" resultType="java.util.Map">
-      MATCH (obj:`疾病名称`) RETURN obj LIMIT 25
+    <select id="getSchema" parameterType='com.diagbot.vo.SchemaVO' resultMap="SchemaResultMap">
+      match(d:${labelName})-[r]->(h)
+      where d.name = #{pramNme}
+      return
+       id(d) as nodeId ,
+       d.name as diseaseNode ,
+      type(r) as relationNode ,
+      id(h) as Id ,
+      h.name as node
     </select>
 
 </mapper>