2 Commits 8501634d4a ... bfd0b9f3a0

Tác giả SHA1 Thông báo Ngày
  ximinghao bfd0b9f3a0 优化数据库写入逻辑 1 tháng trước cách đây
  ximinghao af7f74d2b1 优化分词器 1 tháng trước cách đây

+ 9 - 1
src/main/java/com/skyversation/poiaddr/util/address_spliter/ShanghaiAddressSplitUtil.java

@@ -176,6 +176,12 @@ public class ShanghaiAddressSplitUtil {
                 if (key > 0 && name.equals("江镇") && targetString.charAt(key - 1) == '松') {
                     iterator.remove();
                 }
+                if (key > 0 && name.equals("镇江")) {
+                    String sub1 = targetString.substring(key+2);
+                    if (LEVEL_3_SUFFIX_PATTERN.matcher(sub1).matches()) {
+                        iterator.remove();
+                    }
+                }
             }
             communityMap.putAll(results);
             //仅有一个选择时当成一选
@@ -309,8 +315,10 @@ public class ShanghaiAddressSplitUtil {
         //检查是否在外省,未找到省市或者在省市中找到上海,或者找到上海的区都算作省内
         Map<Integer, String> districtContainResult = contain(beautyAddress, DISTRICT_TO_COMMUNITY_MAP.keySet(), 0);
         int  disIndex= washResult(beautyAddress, districtContainResult,LEVEL_1_SUFFIX_PATTERN);
+        Map<Integer, String> streetContainResult = contain(beautyAddress, STREET_TO_COMMUNITY_MAP.keySet(), 0);
+        int  streetIndex= washResult(beautyAddress, districtContainResult,LEVEL_2_SUFFIX_PATTERN);
         if (!((result[0].isEmpty()|| result[0].equals("上海市")) && (result[1].isEmpty()  || result[1].equals("上海市"))||
-                !districtContainResult.isEmpty())) {
+                !districtContainResult.isEmpty()||!streetContainResult.isEmpty())) {
             splitAddress.setStatus(2);
             splitAddress.setAddr(result[3]);
             return splitAddress;

+ 6 - 1
src/main/java/com/skyversation/poiaddr/util/jpa/entity/TAddressCallback.java

@@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
+import org.springframework.data.domain.Persistable;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -18,7 +19,7 @@ import java.time.LocalDate;
 @Table(name = "t_address_callback")
 @AllArgsConstructor
 @NoArgsConstructor
-public class TAddressCallback{
+public class TAddressCallback implements Persistable<Integer> {
     @Id
     @Column(name = "id", nullable = false)
     private Integer id;
@@ -47,4 +48,8 @@ public class TAddressCallback{
     @Column(name = "status")
     private Short status;
 
+    @Override
+    public boolean isNew() {
+        return true;
+    }
 }

+ 7 - 5
src/main/java/com/skyversation/poiaddr/util/jpa/entity/YyszAddressQp.java

@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
 import lombok.Setter;
 import org.hibernate.annotations.Formula;
 import org.hibernate.annotations.Type;
+import org.springframework.data.domain.Persistable;
 
 import javax.persistence.*;
 import java.sql.SQLException;
@@ -18,7 +19,12 @@ import java.time.Instant;
 @Table(name = "yysz_address_qp")
 @AllArgsConstructor
 @NoArgsConstructor
-public class YyszAddressQp {
+public class YyszAddressQp implements Persistable<Integer> {
+    @Override
+    public boolean isNew() {
+        return true;
+    }
+
     @Id
     @Column(name = "oid", nullable = false)
     private Integer id;
@@ -213,8 +219,4 @@ public class YyszAddressQp {
 
     @Column(name = "tydz_jc", length = 50)
     private String tydzJc;
-    @PostPersist
-    @PostUpdate
-    public void setGeomFromWkt() throws SQLException {
-    }
 }