Преглед изворни кода

Merge remote-tracking branch 'origin/dev/mix20191225_security' into dev/mix20191225_security

zhoutg пре 5 година
родитељ
комит
84ac451ecd

+ 4 - 0
knowledgeman-service/src/main/java/com/diagbot/entity/wrapper/LisMappingWrapper.java

@@ -1,5 +1,6 @@
 package com.diagbot.entity.wrapper;
 
+import com.diagbot.annotation.CryptField;
 import com.diagbot.entity.LisMapping;
 import lombok.Getter;
 import lombok.Setter;
@@ -12,7 +13,10 @@ import lombok.Setter;
 @Getter
 @Setter
 public class LisMappingWrapper extends LisMapping {
+    @CryptField
     private String mealName;
+    @CryptField
     private String itemName;
+    @CryptField
     private String uniqueName;
 }

+ 30 - 6
knowledgeman-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -578,7 +578,7 @@ public class ConceptFacade extends ConceptServiceImpl {
         //String regEx = "[0-9]+|[`~·!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]+";
         String regEx = "[0-9]+";
         for (AddConceptInfoDetailVO i : addConceptInfoVO.getDetailList()) {
-            if (i.getName().matches(regEx)) {
+            if ((cryptConfiguer.cryptFlag ? CryptUtil.decrypt_char(i.getName()) : i.getName()).matches(regEx)) {
                 //throw new CommonException(CommonErrorCode.RPC_ERROR, lineNumStr + "无法输入纯数字或者纯字符,请输入正确数据!");
                 throw new CommonException(CommonErrorCode.RPC_ERROR,
                         lineNumStr + "无法输入纯数字,请输入正确数据!");
@@ -766,7 +766,8 @@ public class ConceptFacade extends ConceptServiceImpl {
 
             if (addConceptInfoVO.getAddCptDiseaseExtVO() == null) {
                 QueryWrapper<Concept> conceptQe = new QueryWrapper<>();
-                conceptQe.eq("lib_name", "全科");
+                conceptQe.eq("lib_name",
+                        cryptConfiguer.cryptFlag ? CryptUtil.encrypt_char("全科") : "全科");
                 conceptQe.eq("lib_type", LexiconTypeEnum.DEPARTMENT.getKey());
                 disease.setDeptId(getOne(conceptQe, false).getId());
                 disease.setClassify(DiseaseClassifyEnum.LevelFirst.getName());
@@ -994,8 +995,15 @@ public class ConceptFacade extends ConceptServiceImpl {
         ////优化后
         QueryWrapper<LibraryInfo> libraryInfoQe = new QueryWrapper<>();
         libraryInfoQe.in("name", addConceptInfoDetailVOList.stream()
-                .map(i -> i.getName()).distinct().collect(Collectors.toList()));
-        Map<String, List<LibraryInfo>> libraryInfoListMap = libraryinfoFacade.list(libraryInfoQe)
+                .map(i -> i.getName())
+                .distinct()
+                .map(i -> cryptConfiguer.cryptFlag ? CryptUtil.encrypt_char(i) : i)
+                .collect(Collectors.toList()));
+        List<LibraryInfo> libraryInfoList = libraryinfoFacade.list(libraryInfoQe);
+        libraryInfoList.forEach(i -> {
+            i.setName(cryptConfiguer.cryptFlag ? CryptUtil.decrypt_char(i.getName()) : i.getName());
+        });
+        Map<String, List<LibraryInfo>> libraryInfoListMap = libraryInfoList
                 .stream().collect(Collectors.groupingBy(LibraryInfo::getName));
 
         Map<String, Lexicon> lexiconMap = lexiconFacade.list().stream()
@@ -1128,6 +1136,10 @@ public class ConceptFacade extends ConceptServiceImpl {
             return sbf.toString();
         }
 
+        libraryInfoList.forEach(i -> {
+            i.setName(cryptConfiguer.cryptFlag ? CryptUtil.encrypt_char(i.getName()) : i.getName());
+        });
+
         addConceptInfoVO.setConcept(concept);
         addConceptInfoVO.setConceptCommon(conceptCommon);
         addConceptInfoVO.setLibraryInfoList(libraryInfoList);
@@ -1214,7 +1226,8 @@ public class ConceptFacade extends ConceptServiceImpl {
             Date now = DateUtil.now();
 
             QueryWrapper<Concept> conceptQe = new QueryWrapper<>();
-            conceptQe.eq("lib_name", "全科");
+            conceptQe.eq("lib_name",
+                    cryptConfiguer.cryptFlag ? CryptUtil.encrypt_char("全科") : "全科");
             conceptQe.eq("lib_type", LexiconTypeEnum.DEPARTMENT.getKey());
             Concept deptConcept = getOne(conceptQe, false);
 
@@ -1296,7 +1309,10 @@ public class ConceptFacade extends ConceptServiceImpl {
         //出参封装
         Map<Long, String> map = new HashMap<>();
         if (ListUtil.isNotEmpty(concepts)) {
-            map = concepts.stream().collect(Collectors.toMap(r -> r.getId(), r -> r.getLibName()));
+            map = concepts
+                    .stream()
+                    .collect(Collectors.toMap(r -> r.getId(),
+                            r -> cryptConfiguer.cryptFlag ? CryptUtil.decrypt_char(r.getLibName()) : r.getLibName()));
         }
         return map;
     }
@@ -1420,6 +1436,10 @@ public class ConceptFacade extends ConceptServiceImpl {
                 conceptExistVO.setLibType(libType);
             }
         }
+        //加密
+        if (cryptConfiguer.cryptFlag) {
+            CryptUtil.encryptList(conceptExistVO.getNameList());
+        }
 
         //获取结构
         List<Concept> concepts
@@ -1436,6 +1456,10 @@ public class ConceptFacade extends ConceptServiceImpl {
                         typeList.add(type);
                     }
                 }
+                //解密
+                if (cryptConfiguer.cryptFlag) {
+                    key = CryptUtil.decrypt_char(key);
+                }
                 typeMap.put(key, typeList);
             }
         }

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

@@ -301,7 +301,7 @@ public class LisMappingFacade extends LisMappingServiceImpl {
                 uniqueName = uniqueConcept.getLibName();
             }
         }
-        return uniqueName;
+        return cryptConfiguer.cryptFlag ? CryptUtil.decrypt_char(uniqueName) : uniqueName;
     }
 
 
@@ -317,12 +317,12 @@ public class LisMappingFacade extends LisMappingServiceImpl {
         if (ListUtil.isNotEmpty(res)) {
             Map<String, String> map = res.stream().collect(
                     Collectors.toMap((r -> r.getTc() + "__" + r.getMx()), (r -> r.getUniqueName())));
-            for(LisMappingSearch mappingListVO : lisMappingSearchList) {
+            for (LisMappingSearch mappingListVO : lisMappingSearchList) {
                 String uniqueName = map.get(mappingListVO.getMealName() + "__" + mappingListVO.getItemName());
                 mappingListVO.setUniqueName(
                         cryptConfiguer.cryptFlag ?
-                            CryptUtil.decrypt_char(uniqueName) :
-                            uniqueName);
+                                CryptUtil.decrypt_char(uniqueName) :
+                                uniqueName);
             }
         }
         return lisMappingSearchList;

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

@@ -3,6 +3,7 @@ package com.diagbot.vo;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 
+import com.diagbot.annotation.CryptField;
 import org.hibernate.validator.constraints.Range;
 
 import io.swagger.annotations.ApiModelProperty;
@@ -21,6 +22,7 @@ public class AddConceptInfoDetailVO {
 	/**
      * 术语名称
      */
+	@CryptField
 	@ApiModelProperty(value="术语名称",required=true)
 	@NotBlank(message="术语名称必传")
     private String name;
@@ -28,6 +30,7 @@ public class AddConceptInfoDetailVO {
     /**
      * 术语拼音
      */
+	@CryptField
 	@ApiModelProperty(value="术语拼音")
     private String spell;
 	

+ 2 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/AddConceptInfoVO.java

@@ -5,6 +5,7 @@ import java.util.List;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 
+import com.diagbot.annotation.CryptField;
 import org.hibernate.validator.constraints.Range;
 
 import com.diagbot.entity.Concept;
@@ -33,6 +34,7 @@ public class AddConceptInfoVO {
 	/**
      * 标准术语名称 提示使用
      */
+	@CryptField
 	@ApiModelProperty(value="标准术语名称",required=true)
 	@NotBlank(message="标准术语名称必传")
     private String name;

+ 2 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/GetConceptPacInfosVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -12,5 +13,6 @@ import lombok.Setter;
 @Setter
 public class GetConceptPacInfosVO {
     //输入内容
+    @CryptField
     private String inputStr;
 }

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

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -13,7 +14,9 @@ import javax.validation.constraints.NotBlank;
 @Getter
 @Setter
 public class GetUniqueNameVO {
+    @CryptField
     @NotBlank(message = "请输入化验套餐")
     private String mealName;
+    @CryptField
     private String itemName;
 }

+ 2 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/IndexLexiconVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -15,6 +16,7 @@ import java.util.List;
 @Getter
 @Setter
 public class IndexLexiconVO {
+    @CryptField
     @NotBlank(message = "名称不能为空")
     private String name;
     @NotNull(message = "词性类型不能为空")

+ 2 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/IndexVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 
+import com.diagbot.annotation.CryptField;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
@@ -15,6 +16,7 @@ import javax.validation.constraints.NotNull;
 @Getter
 @Setter
 public class IndexVO {
+    @CryptField
     @NotBlank(message = "名称不能为空")
     private String name;
     @NotNull(message = "类型不能为空")

+ 4 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/LisMappingPageVO.java

@@ -1,6 +1,7 @@
 package com.diagbot.vo;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -12,7 +13,10 @@ import lombok.Setter;
 @Getter
 @Setter
 public class LisMappingPageVO extends Page {
+    @CryptField
     private String mealName;
+    @CryptField
     private String itemName;
+    @CryptField
     private String uniqueName;
 }

+ 2 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/LisMappingSearch.java

@@ -18,10 +18,12 @@ public class LisMappingSearch {
     private String index;
     @CryptField
     private String mealName;        // 化验标准词套餐名称
+    @CryptField
     @ApiModelProperty(hidden = true)
     private String tc;              // 化验同义词套餐名称
     @CryptField
     private String itemName;        // 化验标准词明细名称
+    @CryptField
     @ApiModelProperty(hidden = true)
     private String mx;              // 化验同义词明细名称
     private String uniqueName;