Selaa lähdekoodia

将所需诊断依据的词库加载到redis,待用

zhoutg 5 vuotta sitten
vanhempi
commit
1d05485e15

+ 17 - 0
knowledgeman-service/src/main/java/com/diagbot/dto/RedisWithDiagnoseDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @description: 诊断依据redis
+ * @author: zhoutg
+ * @date: 2019/8/22 16:12
+ */
+@Getter
+@Setter
+public class RedisWithDiagnoseDTO {
+	
+	private String wKey;
+	private String wVal;
+}

+ 32 - 1
knowledgeman-service/src/main/java/com/diagbot/facade/LibraryInfoFacade.java

@@ -1,8 +1,17 @@
 package com.diagbot.facade;
 
+import com.diagbot.dto.RedisWithDiagnoseDTO;
+import com.diagbot.service.impl.LibraryInfoServiceImpl;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataAccessException;
+import org.springframework.data.redis.connection.RedisConnection;
+import org.springframework.data.redis.core.RedisCallback;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 
-import com.diagbot.service.impl.LibraryInfoServiceImpl;
+import java.util.List;
 
 /**
  * @Description: 术语基本信息查询业务层
@@ -12,5 +21,27 @@ import com.diagbot.service.impl.LibraryInfoServiceImpl;
 @Component
 public class LibraryInfoFacade extends LibraryInfoServiceImpl {
 
+    @Autowired
+    RedisTemplate<String, String> redisTemplate;
 
+    public void loadRedisWithDiagnose() {
+        redisTemplate.delete("diagnose");
+        List<RedisWithDiagnoseDTO> libRedisVOS = this.putRedis();
+        byte[] tt = "diagnose".getBytes();
+        List<Object> resultList = redisTemplate.executePipelined(new RedisCallback<Object>() {
+            @Override
+            public String doInRedis(RedisConnection connection) throws DataAccessException {
+//               1.connection 打开管道
+                connection.openPipeline();
+                if (ListUtil.isNotEmpty(libRedisVOS)) {
+                    for (RedisWithDiagnoseDTO vo : libRedisVOS) {
+                        if (StringUtil.isNotEmpty(vo.getWVal()) && StringUtil.isNotEmpty(vo.getWKey())) {
+                            connection.hSet(tt, vo.getWKey().getBytes(), vo.getWVal().getBytes());
+                        }
+                    }
+                }
+                return null;
+            }
+        });
+    }
 }

+ 3 - 0
knowledgeman-service/src/main/java/com/diagbot/mapper/LibraryInfoMapper.java

@@ -2,6 +2,7 @@ package com.diagbot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.dto.LibraryForDiagnoseDTO;
+import com.diagbot.dto.RedisWithDiagnoseDTO;
 import com.diagbot.entity.LibraryInfo;
 
 import java.util.List;
@@ -18,4 +19,6 @@ public interface LibraryInfoMapper extends BaseMapper<LibraryInfo> {
 
 
     public List<LibraryForDiagnoseDTO> getLibraryForDiagnose();
+
+    public List<RedisWithDiagnoseDTO> putRedis();
 }

+ 3 - 0
knowledgeman-service/src/main/java/com/diagbot/service/LibraryInfoService.java

@@ -2,6 +2,7 @@ package com.diagbot.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.LibraryForDiagnoseDTO;
+import com.diagbot.dto.RedisWithDiagnoseDTO;
 import com.diagbot.entity.LibraryInfo;
 
 import java.util.List;
@@ -17,4 +18,6 @@ import java.util.List;
 public interface LibraryInfoService extends IService<LibraryInfo> {
 
     public List<LibraryForDiagnoseDTO> getLibraryForDiagnose();
+
+    public List<RedisWithDiagnoseDTO> putRedis();
 }

+ 8 - 0
knowledgeman-service/src/main/java/com/diagbot/service/impl/LibraryInfoServiceImpl.java

@@ -1,6 +1,7 @@
 package com.diagbot.service.impl;
 
 import com.diagbot.dto.LibraryForDiagnoseDTO;
+import com.diagbot.dto.RedisWithDiagnoseDTO;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -26,4 +27,11 @@ public class LibraryInfoServiceImpl extends ServiceImpl<LibraryInfoMapper, Libra
     public List<LibraryForDiagnoseDTO> getLibraryForDiagnose() {
         return baseMapper.getLibraryForDiagnose();
     }
+
+    @Override
+    public List<RedisWithDiagnoseDTO> putRedis() {
+        return baseMapper.putRedis();
+    }
+
+
 }

+ 15 - 0
knowledgeman-service/src/main/java/com/diagbot/web/DiagnoseController.java

@@ -10,6 +10,7 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.VerifyDataDTO;
 import com.diagbot.entity.wrapper.DiagnoseWrapper;
 import com.diagbot.facade.DiagnoseFacade;
+import com.diagbot.facade.LibraryInfoFacade;
 import com.diagbot.vo.DeleteDiagnoseVO;
 import com.diagbot.vo.DiagnosePageVO;
 import com.diagbot.vo.DiseaseIndexVO;
@@ -22,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -40,6 +42,8 @@ public class DiagnoseController {
 
     @Autowired
     DiagnoseFacade diagnoseFacade;
+    @Autowired
+    LibraryInfoFacade libraryInfoFacade;
 
     @ApiOperation(value = "诊断依据-分页[by:zhoutg]", notes = "")
     @PostMapping("/page")
@@ -106,4 +110,15 @@ public class DiagnoseController {
         DiagnoseDetailSaveDTO diagnoseDetailSaveDTO = diagnoseFacade.getDetail(getDiagnoseDetailVO);
         return RespDTO.onSuc(diagnoseDetailSaveDTO);
     }
+
+
+    @ApiOperation(value = "诊断依据-加载诊断依据所需词库[by:zhoutg]")
+    @PostMapping("/loadRedisWithDiagnose")
+    @SysLogger("loadRedisWithDiagnose")
+    @ApiIgnore
+    public RespDTO<Boolean> loadRedisWithDiagnose() {
+        libraryInfoFacade.loadRedisWithDiagnose();
+        return RespDTO.onSuc(true);
+    }
+
 }

+ 6 - 0
knowledgeman-service/src/main/resources/mapper/LibraryInfoMapper.xml

@@ -23,4 +23,10 @@
         and type_id in (1,5,12,13,14,16,17,18,35,70)
     </select>
 
+
+    <select id="putRedis" resultType="com.diagbot.dto.RedisWithDiagnoseDTO">
+        SELECT concat(name, '_', type_id) w_key,IF(is_concept=1,a.name,(select lib_name from kl_concept b where b.id = a.concept_id) ) w_val
+        from kl_library_info a where  a.is_deleted = 'N'
+        and type_id in (1,5,12,13,14,16,17,18,35,70)
+    </select>
 </mapper>