xufei 4 rokov pred
rodič
commit
e1aacc68fc
23 zmenil súbory, kde vykonal 216 pridanie a 75 odobranie
  1. 4 2
      src/main/java/com/winhc/common/enums/CompanyEnum.java
  2. 24 0
      src/main/java/com/winhc/config/ConfigConstant.java
  3. 4 4
      src/main/java/com/winhc/config/KafkaConfig.java
  4. 10 7
      src/main/java/com/winhc/config/Neo4jDriver.java
  5. 29 0
      src/main/java/com/winhc/config/Neo4jDriverV2.java
  6. 18 4
      src/main/java/com/winhc/kafka/consumer/KafkaConsumerCaseMerge.java
  7. 9 5
      src/main/java/com/winhc/service/impl/CaseNodeImpl.java
  8. 10 7
      src/main/java/com/winhc/service/impl/CaseNodeImpl.java
  9. 9 6
      src/main/java/com/winhc/service/impl/CaseRelationImpl.java
  10. 10 8
      src/main/java/com/winhc/service/impl/CaseRelationImpl.java
  11. 5 1
      src/main/java/com/winhc/service/impl/CompanyNodeServiceImpl.java
  12. 5 1
      src/main/java/com/winhc/service/impl/HolderRelationV1ServiceImpl.java
  13. 5 1
      src/main/java/com/winhc/service/impl/HolderRelationV2ServiceImpl.java
  14. 5 1
      src/main/java/com/winhc/service/impl/LegalEntityRelationV1ServiceImpl.java
  15. 5 1
      src/main/java/com/winhc/service/impl/LegalEntityRelationV2ServiceImpl.java
  16. 5 1
      src/main/java/com/winhc/service/impl/PersonCompanysImpl.java
  17. 5 1
      src/main/java/com/winhc/service/impl/PersonMergeImpl.java
  18. 5 1
      src/main/java/com/winhc/service/impl/PersonNodeLabelServiceImpl.java
  19. 5 1
      src/main/java/com/winhc/service/impl/StaffRelationServiceImpl.java
  20. 16 1
      src/main/java/com/winhc/utils/CompanyUtils.java
  21. 15 9
      src/main/resources/application-dev.properties
  22. 9 9
      src/main/resources/application-prd.properties
  23. 4 4
      src/test/java/com/winhc/test/TestCaseNode.java

+ 4 - 2
src/main/java/com/winhc/common/enums/CompanyEnum.java

@@ -25,8 +25,10 @@ public class CompanyEnum {
         NODE_RELATION_SUCCESS_STATUS("100", "nodeRelationSuccessStatusServiceImpl"),
         PERSON_COMPANYS("200", "personCompanysImpl"),
         PERSON_MERGE("300", "personMergeImpl"),
-        CASE_RELATION("400", "caseRelationImpl"),
-        CASE_NODE("500", "caseNodeImpl")
+        CASE_RELATION_INCR("400", "caseRelationIncrImpl"),
+        CASE_NODE_INCR("500", "caseNodeIncrImpl"),
+        CASE_RELATION_UPDATE("600", "caseRelationUpdateImpl"),
+        CASE_NODE_UPDATE("700", "caseNodeUpdateImpl")
         ;
 
         public final String CODE;

+ 24 - 0
src/main/java/com/winhc/config/ConfigConstant.java

@@ -0,0 +1,24 @@
+package com.winhc.config;
+
+import lombok.AllArgsConstructor;
+import org.neo4j.driver.AuthTokens;
+import org.neo4j.driver.Config;
+import org.neo4j.driver.Driver;
+import org.neo4j.driver.GraphDatabase;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
+
+@Configuration
+public class ConfigConstant {
+
+    @Value("${spring.kafka.topic_case}")
+    public String topic_case;
+
+
+
+}

+ 4 - 4
src/main/java/com/winhc/config/KafkaConfig.java

@@ -102,11 +102,11 @@ public class KafkaConfig {
         // 设置是否自动提交
         props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, autoCommit);
         // 一次拉取消息数量
-        props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, 2000);
-        props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, 120000);
-        props.put(ConsumerConfig.REQUEST_TIMEOUT_MS_CONFIG, 180000);
+        props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, 500);
+        props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, 5*60*1000);
+        props.put(ConsumerConfig.REQUEST_TIMEOUT_MS_CONFIG, 5*60*1000);
         // 最大处理时间
-        props.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, 120000);
+        props.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, 5*60*1000);
         // 序列化
         props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
         props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);

+ 10 - 7
src/main/java/com/winhc/config/Neo4jDriver.java

@@ -6,23 +6,26 @@ import org.neo4j.driver.Driver;
 import org.neo4j.driver.GraphDatabase;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Component;
 
 import java.util.concurrent.TimeUnit;
 
 @Component
-public class Neo4jDriver {
+public class Neo4jDriverV1 {
 
-    @Value("${spring.data.neo4j.uri}")
+    @Value("${spring.data.neo4j.uri.v1}")
     private String uri;
-    @Value("${spring.data.neo4j.username}")
+    @Value("${spring.data.neo4j.username.v1}")
     private String username;
-    @Value("${spring.data.neo4j.password}")
+    @Value("${spring.data.neo4j.password.v1}")
     private String password;
 
-    @Bean
-    public Driver init() {
-        Config config = Config.builder().withConnectionTimeout(100, TimeUnit.SECONDS).withMaxTransactionRetryTime(10, TimeUnit.SECONDS).build();
+    @Bean("DriverV1")
+    @Primary
+    public Driver init1() {
+        Config config = Config.builder().withConnectionTimeout(100, TimeUnit.SECONDS).withMaxTransactionRetryTime(30, TimeUnit.SECONDS).build();
         return GraphDatabase.driver(uri, AuthTokens.basic(username, password), config);
     }
+
 }

+ 29 - 0
src/main/java/com/winhc/config/Neo4jDriverV2.java

@@ -0,0 +1,29 @@
+package com.winhc.config;
+
+import org.neo4j.driver.AuthTokens;
+import org.neo4j.driver.Config;
+import org.neo4j.driver.Driver;
+import org.neo4j.driver.GraphDatabase;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
+
+@Component
+public class Neo4jDriverV2 {
+
+    @Value("${spring.data.neo4j.uri.v2}")
+    private String uri_v2;
+    @Value("${spring.data.neo4j.username.v2}")
+    private String username_v2;
+    @Value("${spring.data.neo4j.password.v2}")
+    private String password_v2;
+
+    @Bean("DriverV2")
+    public Driver init2() {
+        Config config = Config.builder().withConnectionTimeout(100, TimeUnit.SECONDS).withMaxTransactionRetryTime(30, TimeUnit.SECONDS).build();
+        return GraphDatabase.driver(uri_v2, AuthTokens.basic(username_v2, password_v2), config);
+    }
+}

+ 18 - 4
src/main/java/com/winhc/kafka/consumer/KafkaConsumerCaseMerge.java

@@ -1,11 +1,16 @@
 package com.winhc.kafka.consumer;
 
 import com.winhc.common.enums.CompanyEnum;
+import com.winhc.config.ConfigConstant;
+import com.winhc.db.mongodb.dataobject.NodeRelationError;
+import com.winhc.kafka.KafkaProduce;
 import com.winhc.service.RelationService;
 import com.winhc.utils.CompanyUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.kafka.annotation.KafkaListener;
 import org.springframework.kafka.listener.ConsumerAwareListenerErrorHandler;
@@ -25,14 +30,20 @@ import java.util.Map;
 public class KafkaConsumerCaseMerge {
 
     private final Map<String, RelationService> map;
+    @Autowired
+    KafkaProduce kafkaProduce;
+    @Autowired
+    ConfigConstant configConstant;
 
     @KafkaListener(id = "${spring.kafka.topic_case}"
             , topics = "${spring.kafka.topic_case}"
             , groupId = "${spring.kafka.consumer.group-id}", containerFactory = "containerFactory", errorHandler = "KafkaConsumerCaseMerge")
     public void consumerCompanyNode(List<ConsumerRecord<?, ?>> records) {
         List<Map<String, Object>> listMap = CompanyUtils.map(records);
-        this.map.get(CompanyEnum.TopicType.CASE_RELATION.VALUE).save(CompanyUtils.filterList(listMap, CompanyEnum.TopicType.CASE_RELATION.CODE));
-        this.map.get(CompanyEnum.TopicType.CASE_NODE.VALUE).save(CompanyUtils.filterList(listMap, CompanyEnum.TopicType.CASE_NODE.CODE));
+        this.map.get(CompanyEnum.TopicType.CASE_RELATION_INCR.VALUE).save(CompanyUtils.filterList(listMap, CompanyEnum.TopicType.CASE_RELATION_INCR.CODE));
+        this.map.get(CompanyEnum.TopicType.CASE_NODE_INCR.VALUE).save(CompanyUtils.filterList(listMap, CompanyEnum.TopicType.CASE_NODE_INCR.CODE));
+        this.map.get(CompanyEnum.TopicType.CASE_RELATION_UPDATE.VALUE).save(CompanyUtils.filterList(listMap, CompanyEnum.TopicType.CASE_RELATION_UPDATE.CODE));
+        this.map.get(CompanyEnum.TopicType.CASE_NODE_UPDATE.VALUE).save(CompanyUtils.filterList(listMap, CompanyEnum.TopicType.CASE_NODE_UPDATE.CODE));
     }
 
     /**
@@ -41,8 +52,11 @@ public class KafkaConsumerCaseMerge {
     @Bean("KafkaConsumerCaseMerge")
     public ConsumerAwareListenerErrorHandler dealError() {
         return (message, e, consumer) -> {
-            System.out.println(e.toString());
-            System.out.println(message);
+            List<String> list = CompanyUtils.toMessage((List<ConsumerRecord>) message.getPayload());
+            for (String msg : list) {
+                kafkaProduce.produce(configConstant.topic_case, msg);
+            }
+            log.error("KafkaConsumerCaseMerge error: {}", e.toString());
             return null;
         };
     }

+ 9 - 5
src/main/java/com/winhc/service/impl/CaseNodeImpl.java

@@ -6,6 +6,8 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -18,11 +20,13 @@ import java.util.Map;
  * @date 2021/5/17 10:03
  */
 @Slf4j
-@Service("caseNodeImpl")
+@Service("caseNodeIncrImpl")
 @AllArgsConstructor
-public class CaseNodeImpl implements RelationService {
+public class CaseNodeIncrImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV2")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {
@@ -37,13 +41,13 @@ public class CaseNodeImpl implements RelationService {
                 " CALL apoc.path.subgraphNodes(s, {maxLevel:-1}) YIELD node\n" +
                 " WITH node,s\n" +
                 " SET node.component_id = -id(s)\n" +
-                " SET node:" + CompanyUtils.getIncrPersonLabel("新增");
+                " SET node:" + CompanyUtils.getIncrPersonLabelV2("新增");
         log.info("consumer size: {}, cql:{}", batch_list.size(), cql);
         String data = CompanyUtils.writeNeo4j(session, cql, new HashMap<String, Object>() {{
             put("batch_list", batch_list);
         }});
         session.close();
-        log.info("class:{} | save size:{} | cost:{}", CaseNodeImpl.class.getSimpleName(), batch_list.size(), (System.currentTimeMillis() - start));
+        log.info("class:{} | save size:{} | cost:{}", CaseNodeIncrImpl.class.getSimpleName(), batch_list.size(), (System.currentTimeMillis() - start));
         return data;
     }
 }

+ 10 - 7
src/main/java/com/winhc/service/impl/CaseNodeImpl.java

@@ -6,6 +6,8 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -14,15 +16,17 @@ import java.util.Map;
 
 /**
  * @author π
- * @Description:案件-新节点
+ * @Description:案件-新节点
  * @date 2021/5/17 10:03
  */
 @Slf4j
-@Service("caseNodeImpl")
+@Service("caseNodeUpdateImpl")
 @AllArgsConstructor
-public class CaseNodeImpl implements RelationService {
+public class CaseNodeUpdateImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV2")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {
@@ -36,14 +40,13 @@ public class CaseNodeImpl implements RelationService {
                 " WITH s\n" +
                 " CALL apoc.path.subgraphNodes(s, {maxLevel:-1}) YIELD node\n" +
                 " WITH node,s\n" +
-                " SET node.component_id = -id(s)\n" +
-                " SET node:" + CompanyUtils.getIncrPersonLabel("新增");
+                " SET node:" + CompanyUtils.getIncrPersonLabelV2("新增");
         log.info("consumer size: {}, cql:{}", batch_list.size(), cql);
         String data = CompanyUtils.writeNeo4j(session, cql, new HashMap<String, Object>() {{
             put("batch_list", batch_list);
         }});
         session.close();
-        log.info("class:{} | save size:{} | cost:{}", CaseNodeImpl.class.getSimpleName(), batch_list.size(), (System.currentTimeMillis() - start));
+        log.info("class:{} | save size:{} | cost:{}", CaseNodeUpdateImpl.class.getSimpleName(), batch_list.size(), (System.currentTimeMillis() - start));
         return data;
     }
 }

+ 9 - 6
src/main/java/com/winhc/service/impl/CaseRelationImpl.java

@@ -1,12 +1,13 @@
 package com.winhc.service.impl;
 
-import com.winhc.common.enums.CompanyEnum;
 import com.winhc.service.RelationService;
 import com.winhc.utils.CompanyUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -19,11 +20,13 @@ import java.util.Map;
  * @date 2021/5/17 10:03
  */
 @Slf4j
-@Service("caseRelationImpl")
+@Service("caseRelationIncrImpl")
 @AllArgsConstructor
-public class CaseRelationImpl implements RelationService {
+public class CaseRelationIncrImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV2")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {
@@ -42,13 +45,13 @@ public class CaseRelationImpl implements RelationService {
                 " CALL apoc.path.subgraphNodes(s, {maxLevel:-1}) YIELD node\n" +
                 " WITH node,s\n" +
                 " SET node.component_id = -id(s)\n" +
-                " SET node:" + CompanyUtils.getIncrPersonLabel("新增");
+                " SET node:" + CompanyUtils.getIncrPersonLabelV2("新增");
         log.info("consumer size: {}, cql:{}", batch_list.size(), cql);
         String data = CompanyUtils.writeNeo4j(session, cql, new HashMap<String, Object>() {{
             put("batch_list", batch_list);
         }});
         session.close();
-        log.info("class:{} | save size:{} | cost:{}", CaseRelationImpl.class.getSimpleName(), batch_list.size(), (System.currentTimeMillis() - start));
+        log.info("class:{} | save size:{} | cost:{}", CaseRelationIncrImpl.class.getSimpleName(), batch_list.size(), (System.currentTimeMillis() - start));
         return data;
     }
 }

+ 10 - 8
src/main/java/com/winhc/service/impl/CaseRelationImpl.java

@@ -1,12 +1,13 @@
 package com.winhc.service.impl;
 
-import com.winhc.common.enums.CompanyEnum;
 import com.winhc.service.RelationService;
 import com.winhc.utils.CompanyUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -15,15 +16,17 @@ import java.util.Map;
 
 /**
  * @author π
- * @Description:案件-新关系
+ * @Description:案件-新关系
  * @date 2021/5/17 10:03
  */
 @Slf4j
-@Service("caseRelationImpl")
+@Service("caseRelationUpdateImpl")
 @AllArgsConstructor
-public class CaseRelationImpl implements RelationService {
+public class CaseRelationUpdateImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV2")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {
@@ -41,14 +44,13 @@ public class CaseRelationImpl implements RelationService {
                 " WITH s,m\n" +
                 " CALL apoc.path.subgraphNodes(s, {maxLevel:-1}) YIELD node\n" +
                 " WITH node,s\n" +
-                " SET node.component_id = -id(s)\n" +
-                " SET node:" + CompanyUtils.getIncrPersonLabel("新增");
+                " SET node:" + CompanyUtils.getIncrPersonLabelV2("新增");
         log.info("consumer size: {}, cql:{}", batch_list.size(), cql);
         String data = CompanyUtils.writeNeo4j(session, cql, new HashMap<String, Object>() {{
             put("batch_list", batch_list);
         }});
         session.close();
-        log.info("class:{} | save size:{} | cost:{}", CaseRelationImpl.class.getSimpleName(), batch_list.size(), (System.currentTimeMillis() - start));
+        log.info("class:{} | save size:{} | cost:{}", CaseRelationUpdateImpl.class.getSimpleName(), batch_list.size(), (System.currentTimeMillis() - start));
         return data;
     }
 }

+ 5 - 1
src/main/java/com/winhc/service/impl/CompanyNodeServiceImpl.java

@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 import java.util.HashMap;
 import java.util.List;
@@ -22,7 +24,9 @@ import java.util.Map;
 @AllArgsConstructor
 public class CompanyNodeServiceImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV1")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {

+ 5 - 1
src/main/java/com/winhc/service/impl/HolderRelationV1ServiceImpl.java

@@ -6,6 +6,8 @@ import com.winhc.utils.CompanyUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -22,7 +24,9 @@ import java.util.Map;
 @AllArgsConstructor
 public class HolderRelationV1ServiceImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV1")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {

+ 5 - 1
src/main/java/com/winhc/service/impl/HolderRelationV2ServiceImpl.java

@@ -6,6 +6,8 @@ import com.winhc.utils.CompanyUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 import java.util.HashMap;
 import java.util.List;
@@ -21,7 +23,9 @@ import java.util.Map;
 @AllArgsConstructor
 public class HolderRelationV2ServiceImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV1")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {

+ 5 - 1
src/main/java/com/winhc/service/impl/LegalEntityRelationV1ServiceImpl.java

@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 import java.util.HashMap;
 import java.util.List;
@@ -22,7 +24,9 @@ import java.util.Map;
 @AllArgsConstructor
 public class LegalEntityRelationV1ServiceImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV1")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {

+ 5 - 1
src/main/java/com/winhc/service/impl/LegalEntityRelationV2ServiceImpl.java

@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 import java.util.HashMap;
 import java.util.List;
@@ -22,7 +24,9 @@ import java.util.Map;
 @AllArgsConstructor
 public class LegalEntityRelationV2ServiceImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV1")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {

+ 5 - 1
src/main/java/com/winhc/service/impl/PersonCompanysImpl.java

@@ -8,6 +8,8 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -25,7 +27,9 @@ import java.util.Map;
 @AllArgsConstructor
 public class PersonCompanysImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV1")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {

+ 5 - 1
src/main/java/com/winhc/service/impl/PersonMergeImpl.java

@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -23,7 +25,9 @@ import java.util.Map;
 @AllArgsConstructor
 public class PersonMergeImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV1")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {

+ 5 - 1
src/main/java/com/winhc/service/impl/PersonNodeLabelServiceImpl.java

@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -23,7 +25,9 @@ import java.util.Map;
 @AllArgsConstructor
 public class PersonNodeLabelServiceImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV1")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {

+ 5 - 1
src/main/java/com/winhc/service/impl/StaffRelationServiceImpl.java

@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 import java.util.HashMap;
 import java.util.List;
@@ -22,7 +24,9 @@ import java.util.Map;
 @AllArgsConstructor
 public class StaffRelationServiceImpl implements RelationService {
 
-    private final Driver driver;
+    @Autowired
+    @Qualifier("DriverV1")
+    Driver driver;
 
     @Override
     public String save(List<Map<String, Object>> batch_list) {

+ 16 - 1
src/main/java/com/winhc/utils/CompanyUtils.java

@@ -89,6 +89,13 @@ public class CompanyUtils {
         }).collect(Collectors.toList());
     }
 
+    public static List<String> toMessage(List<ConsumerRecord> records) {
+        return records.stream()
+                .filter(r -> (r != null && r.value() != null))
+                .map(r -> r.value().toString())
+                .collect(Collectors.toList());
+    }
+
     public static String writeNeo4j(Session session, String cql, HashMap<String, Object> parameters) {
         String data = session.writeTransaction(tx -> {
             Result result = tx.run(cql, parameters);
@@ -105,7 +112,15 @@ public class CompanyUtils {
         return label + DateUtil.getDateBefore(-1).replace("-", "");
     }
 
+    public static String getIncrPersonLabelV2(String label) {
+        int split_hour = 12;
+        GregorianCalendar calendar = new GregorianCalendar();
+        int now_hour = calendar.get(Calendar.HOUR_OF_DAY);
+        int gap = now_hour > split_hour ? 0 : -1;
+        return label + DateUtil.getDateBefore(gap).replace("-", "");
+    }
+
     public static void main(String[] args) {
-        System.out.println(getIncrPersonLabel("新增"));
+        System.out.println(getIncrPersonLabelV2("新增"));
     }
 }

+ 15 - 9
src/main/resources/application-dev.properties

@@ -1,15 +1,21 @@
 #eureka.client.serviceUrl.defaultZone= http://106.14.81.247:8900/eureka/
 
-#Neo4j配置
-spring.data.neo4j.username=neo4j
-spring.data.neo4j.password=neo4j168
+#Neo4j配置(第一台机器)
+#spring.data.neo4j.username=neo4j
+#spring.data.neo4j.password=neo4j168
 #spring.data.neo4j.uri=bolt://127.0.0.1:7687
+#spring.data.neo4j.uri=bolt://139.196.165.100:7687
 
-#爬虫
-#spring.data.neo4j.uri=bolt://192.168.2.56:7687
-#测试
-spring.data.neo4j.uri=bolt://139.224.197.164:7687
-#spring.data.neo4j.uri=bolt://192.168.2.60:7687
+spring.data.neo4j.username.v1=neo4j
+spring.data.neo4j.password.v1=neo4j168
+#spring.data.neo4j.uri.v1=bolt://139.196.165.100:7687
+spring.data.neo4j.uri.v1=bolt://192.168.2.57:7687
+
+#Neo4j配置(第二台机器)
+spring.data.neo4j.username.v2=neo4j
+spring.data.neo4j.password.v2=neo4j168
+spring.data.neo4j.uri.v2=bolt://139.224.197.164:7687
+#spring.data.neo4j.uri.v2=bolt://192.168.2.60:7687
 
 #数据库uri地址
 #spring.data.neo4j.uri=http://10.29.26.76:7474
@@ -37,7 +43,7 @@ spring.kafka.bootstrap-servers=47.101.221.131:9092
 spring.kafka.topic_node_relation_union=inc_node_relation_union_dev
 spring.kafka.topic_person_companys=inc_person_companys_dev
 spring.kafka.topic_person_merge=inc_person_merge_dev
-spring.kafka.topic_case=inc_case_dev
+spring.kafka.topic_case=inc_judicial_case_union_dev
 
 #spring.kafka.bootstrap-servers=192.168.4.237:9092,192.168.4.235:9092,192.168.4.236:9092
 #spring.kafka.topic=xf_test

+ 9 - 9
src/main/resources/application-prd.properties

@@ -1,14 +1,14 @@
 #eureka.client.serviceUrl.defaultZone= http://192.168.1.1:8900/eureka/
 
-#Neo4j配置
-spring.data.neo4j.username=neo4j
-spring.data.neo4j.password=neo4j168
+#Neo4j配置(第一台机器)
+spring.data.neo4j.username.v1=neo4j
+spring.data.neo4j.password.v1=neo4j168
+spring.data.neo4j.uri.v1=bolt://192.168.2.57:7687
 
-#爬虫
-#spring.data.neo4j.uri=bolt://192.168.2.56:7687
-
-#neo4j_prd
-spring.data.neo4j.uri=bolt://192.168.2.57:7687
+#Neo4j配置(第二台机器)
+spring.data.neo4j.username.v2=neo4j
+spring.data.neo4j.password.v2=neo4j168
+spring.data.neo4j.uri.v2=bolt://192.168.2.60:7687
 
 
 #spring.datasource.url = jdbc:mysql://rm-uf61r3m23ba1p5z3dfo.mysql.rds.aliyuncs.com:3306/prism1?useUnicode=true&characterEncoding=utf-8
@@ -37,7 +37,7 @@ spring.kafka.bootstrap-servers=192.168.4.239:9092,192.168.4.241:9092,192.168.4.2
 spring.kafka.topic_node_relation_union=inc_node_relation_union
 spring.kafka.topic_person_companys=inc_person_companys
 spring.kafka.topic_person_merge=inc_person_merge
-spring.kafka.topic_case=inc_case_prod
+spring.kafka.topic_case=inc_judicial_case_union
 #=============== provider  =======================
 spring.kafka.producer.retries=3
 # 每次批量发送消息的数量

+ 4 - 4
src/test/java/com/winhc/test/TestCaseNode.java

@@ -2,7 +2,7 @@ package com.winhc.test;
 
 import com.alibaba.fastjson.JSON;
 import com.winhc.kafka.KafkaProduce;
-import com.winhc.service.impl.CaseRelationImpl;
+import com.winhc.service.impl.CaseRelationIncrImpl;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.junit.Test;
@@ -24,7 +24,7 @@ import java.util.HashMap;
 public class TestCaseNode {
     Log log = LogFactory.getLog(TestCaseNode.class);
     @Autowired
-    CaseRelationImpl caseRelationImpl;
+    CaseRelationIncrImpl caseRelationImpl;
 
     @Autowired
     Driver driver;
@@ -45,7 +45,7 @@ public class TestCaseNode {
         map.put("topic_type","400");
         String msg = JSON.toJSONString(map);
         System.out.println(msg);
-        kafkaProduce.produce(topic, msg);
+        //kafkaProduce.produce(topic, msg);
         System.out.println(System.currentTimeMillis() - start);
     }
 
@@ -61,7 +61,7 @@ public class TestCaseNode {
         map.put("topic_type","500");
         String msg = JSON.toJSONString(map);
         System.out.println(msg);
-        kafkaProduce.produce(topic, msg);
+        //kafkaProduce.produce(topic, msg);
         System.out.println(System.currentTimeMillis() - start);
     }