Преглед на файлове

更新删除图谱对接接口

zhoutg преди 5 години
родител
ревизия
869b5ffb57

+ 5 - 1
config-server/src/main/resources/shared/knowledgeman-service-dev.yml

@@ -107,4 +107,8 @@ fastdfs:
   charset: UTF-8
   http_tracker_http_port: 8080
   http_anti_steal_token: no
-  tracker_servers: 192.168.2.236:22122
+  tracker_servers: 192.168.2.236:22122
+
+neo:
+  server:
+    address: http://192.168.2.234:5008

+ 5 - 1
config-server/src/main/resources/shared/knowledgeman-service-local.yml

@@ -107,4 +107,8 @@ fastdfs:
   charset: UTF-8
   http_tracker_http_port: 8080
   http_anti_steal_token: no
-  tracker_servers: 192.168.2.236:22122
+  tracker_servers: 192.168.2.236:22122
+
+neo:
+  server:
+    address: http://192.168.2.234:5008

+ 5 - 1
config-server/src/main/resources/shared/knowledgeman-service-pro.yml

@@ -107,4 +107,8 @@ fastdfs:
   charset: UTF-8
   http_tracker_http_port: 8080
   http_anti_steal_token: no
-  tracker_servers: 192.168.2.236:22122
+  tracker_servers: 192.168.2.236:22122
+
+ai:
+  server:
+    address: http://192.168.2.234:5008

+ 5 - 1
config-server/src/main/resources/shared/knowledgeman-service-test.yml

@@ -107,4 +107,8 @@ fastdfs:
   charset: UTF-8
   http_tracker_http_port: 8080
   http_anti_steal_token: no
-  tracker_servers: 192.168.2.241:22122
+  tracker_servers: 192.168.2.241:22122
+
+neo:
+  server:
+    address: http://192.168.2.234:5008

+ 27 - 0
knowledgeman-service/src/main/java/com/diagbot/client/NeoServiceClient.java

@@ -0,0 +1,27 @@
+package com.diagbot.client;
+
+import com.diagbot.client.hystrix.NeoServiceHystrix;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.NeoParamVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+
+/**
+ * @Description: 图谱更新服务
+ * @author: gaodm
+ * @time: 2018/8/6 9:52
+ */
+@FeignClient(name = "neo", url = "${neo.server.address}", fallback = NeoServiceHystrix.class)
+public interface NeoServiceClient {
+
+    @PostMapping("/user/verifyToken")
+    RespDTO<Boolean> updateNeo(@RequestBody NeoParamVO neoParamVO);
+
+    @PostMapping("/user/verifyToken")
+    RespDTO<Boolean> deleteNeo(@RequestBody NeoParamVO neoParamVO);
+}
+
+
+

+ 35 - 0
knowledgeman-service/src/main/java/com/diagbot/client/hystrix/NeoServiceHystrix.java

@@ -0,0 +1,35 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.NeoServiceClient;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.Token;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @Description: 调用用户服务
+ * @author: gaodm
+ * @time: 2018/8/6 9:52
+ */
+@Component
+@Slf4j
+public class NeoServiceHystrix implements NeoServiceClient {
+
+    @Override
+    public RespDTO<Map<String, String>> getUserInfoByIds(@RequestBody List<String> ids) {
+        log.error("【hystrix】调用{}异常", "getUserInfoByIds");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Boolean> verifyToken(Token token) {
+        log.error("【hystrix】调用{}异常", "verifyToken");
+        return null;
+    }
+
+}

+ 19 - 0
knowledgeman-service/src/main/java/com/diagbot/dto/VerifyDataDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import com.diagbot.entity.DiagnoseDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description: 概念出参基础实体类
+ * @author: gaodm
+ * @time: 2019/5/7 9:44
+ */
+@Getter
+@Setter
+public class VerifyDataDTO {
+    private List<DiagnoseDetail> diagnoseDetailList;
+    private Integer hasQuestion;
+}

+ 50 - 0
knowledgeman-service/src/main/java/com/diagbot/enums/HasQuestionEnum.java

@@ -0,0 +1,50 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/5/7 14:06
+ */
+public enum HasQuestionEnum implements KeyedNamed {
+
+    HAS_QUESTION(1, "有问题词"),
+    NO_QUESTION(0, "无问题词");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    HasQuestionEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static HasQuestionEnum getEnum(Integer key) {
+        for (HasQuestionEnum item : HasQuestionEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        HasQuestionEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 39 - 4
knowledgeman-service/src/main/java/com/diagbot/facade/DiagnoseFacade.java

@@ -3,10 +3,13 @@ package com.diagbot.facade;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.client.NeoServiceClient;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.DiagnoseDetailSaveDTO;
 import com.diagbot.dto.DiagnosePageDTO;
 import com.diagbot.dto.LibraryForDiagnoseDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.VerifyDataDTO;
 import com.diagbot.entity.CommonParam;
 import com.diagbot.entity.Diagnose;
 import com.diagbot.entity.DiagnoseDetail;
@@ -15,6 +18,7 @@ import com.diagbot.entity.DiagnoseQuestion;
 import com.diagbot.entity.wrapper.DiagnoseWrapper;
 import com.diagbot.enums.DiagnoseFieldEnum;
 import com.diagbot.enums.DiagnoseTypeEnum;
+import com.diagbot.enums.HasQuestionEnum;
 import com.diagbot.enums.InsertOrUpdateEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconTypeEnum;
@@ -27,11 +31,13 @@ import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.DiagnoseTypeConvertUtil;
 import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.DeleteDiagnoseVO;
 import com.diagbot.vo.DiagnosePageVO;
 import com.diagbot.vo.DiseaseIndexVO;
 import com.diagbot.vo.GetDiagnoseDetailVO;
+import com.diagbot.vo.NeoParamVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
@@ -55,6 +61,8 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
     DiagnoseDetailFacade diagnoseDetailFacade;
     @Autowired
     LibraryInfoFacade libraryInfoFacade;
+    @Autowired
+    NeoServiceClient neoServiceClient;
 
     /**
      * 诊断依据分页
@@ -91,7 +99,12 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
                 .set("neo_update", now)
                 .set("remark", deleteDiagnoseVO.getRemark()));
 
-        // TODO 更新图谱
+        // 删除图谱数据
+        NeoParamVO neoParamVO = new NeoParamVO();
+        neoParamVO.setId(deleteDiagnoseVO.getId());
+        neoServiceClient.deleteNeo(neoParamVO);
+        RespDTO<Boolean> respDTO = neoServiceClient.updateNeo(neoParamVO);
+        RespDTOUtil.respNGDeal(respDTO, "删除图谱数据失败【远程调用】");
     }
 
 
@@ -140,7 +153,8 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
      *
      * @param diagnoseWrapper
      */
-    public List<DiagnoseDetail> verifyData(DiagnoseWrapper diagnoseWrapper) {
+    public VerifyDataDTO verifyData(DiagnoseWrapper diagnoseWrapper) {
+        VerifyDataDTO verifyDataDTO = new VerifyDataDTO();
         CommonParam param = initCommonParam();
         param.setPerson(diagnoseWrapper.getModifier());
 
@@ -255,10 +269,31 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
         }
         // 更新主表状态
         this.update(new UpdateWrapper<Diagnose>()
-                .set("has_question", ListUtil.isNotEmpty(diagnoseQuestionList)? 1 : 0)
+                .set("has_question", ListUtil.isNotEmpty(diagnoseQuestionList) ? HasQuestionEnum.HAS_QUESTION.getKey() : HasQuestionEnum.NO_QUESTION.getKey())
                 .eq("id", diagnose.getId())
         );
-        return diagnoseDetailList;
+        verifyDataDTO.setHasQuestion(ListUtil.isNotEmpty(diagnoseQuestionList) ? HasQuestionEnum.HAS_QUESTION.getKey() : HasQuestionEnum.NO_QUESTION.getKey());
+        verifyDataDTO.setDiagnoseDetailList(diagnoseDetailList);
+        return verifyDataDTO;
+    }
+
+
+    /**
+     * 更新图谱(先校验,再更新)
+     *
+     * @param diagnoseWrapper
+     * @return
+     */
+    public void  updateNeo(DiagnoseWrapper diagnoseWrapper) {
+        VerifyDataDTO verifyDataDTO = verifyData(diagnoseWrapper);
+        if (HasQuestionEnum.HAS_QUESTION.getKey() == verifyDataDTO.getHasQuestion()) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "有问题词存在,不能更新图谱");
+        }
+        // 更新图谱对接接口
+        NeoParamVO neoParamVO = new NeoParamVO();
+        neoParamVO.setId(diagnoseWrapper.getId());
+        RespDTO<Boolean> respDTO = neoServiceClient.updateNeo(neoParamVO);
+        RespDTOUtil.respNGDeal(respDTO, "更新图谱数据失败【远程调用】");
     }
 
 

+ 17 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/NeoParamVO.java

@@ -0,0 +1,17 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @description: 图片更新|删除对接入参
+ * @author: zhoutg
+ * @date: 2019/8/12 10:45
+ */
+@Getter
+@Setter
+public class NeoParamVO {
+
+    private Long id; // 诊断主键
+
+}

+ 13 - 3
knowledgeman-service/src/main/java/com/diagbot/web/DiagnoseController.java

@@ -7,7 +7,7 @@ import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.DiagnoseDetailSaveDTO;
 import com.diagbot.dto.DiagnosePageDTO;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.DiagnoseDetail;
+import com.diagbot.dto.VerifyDataDTO;
 import com.diagbot.entity.wrapper.DiagnoseWrapper;
 import com.diagbot.facade.DiagnoseFacade;
 import com.diagbot.vo.DeleteDiagnoseVO;
@@ -71,12 +71,22 @@ public class DiagnoseController {
     @PostMapping("/verifyData")
     @SysLogger("verifyData")
     @Transactional
-    public RespDTO<List<DiagnoseDetail>> verifyData(@RequestBody DiagnoseWrapper diagnoseWrapper) {
-        List<DiagnoseDetail> diagnoseDetailList = diagnoseFacade.verifyData(diagnoseWrapper);
+    public RespDTO<VerifyDataDTO> verifyData(@RequestBody DiagnoseWrapper diagnoseWrapper) {
+        VerifyDataDTO diagnoseDetailList = diagnoseFacade.verifyData(diagnoseWrapper);
         return RespDTO.onSuc(diagnoseDetailList);
     }
 
 
+    @ApiOperation(value = "诊断依据-更新图谱[by:zhoutg]")
+    @PostMapping("/updateNeo")
+    @SysLogger("updateNeo")
+    @Transactional
+    public RespDTO<Boolean> updateNeo4j(@RequestBody DiagnoseWrapper diagnoseWrapper) {
+        diagnoseFacade.updateNeo(diagnoseWrapper);
+        return RespDTO.onSuc(true);
+    }
+
+
     @ApiOperation(value = "诊断依据-获取详情[by:zhoutg]")
     @PostMapping("/getDetail")
     @SysLogger("getDetail")