瀏覽代碼

添加数据库表名配置和is_delete != 1逻辑删除的判断

DESKTOP-6LTVLN7\Liumouren 4 周之前
父節點
當前提交
7823a49cdb

+ 8 - 0
src/main/java/com/skyversation/poiaddr/addquery/Constant.java

@@ -23,6 +23,8 @@ public class Constant {
 
     private String[] towns = new String[]{};
 
+    private String searchTableName;
+
     @Value("${app.search_server_id}")
     private String searchServerId;
 
@@ -45,6 +47,12 @@ public class Constant {
         return getInstance().area;
     }
 
+    public static void setSearchTableName(String searchTableName){
+        getInstance().searchTableName = searchTableName;
+    }
+
+    public static String getSearchTableName(){ return getInstance().searchTableName; }
+
     public static String getAMAP_CITY_CODE() {
         return "青浦".equals(getArea()) ? "310118" : "松江".equals(getArea()) ? "310117" : "310000";
     }

+ 25 - 23
src/main/java/com/skyversation/poiaddr/controller/CorporateLibraryController.java

@@ -89,6 +89,31 @@ public class CorporateLibraryController {
         }
     }
 
+
+
+    //    高级地址查询
+    @RequestMapping(value = "/searchByNameV3")
+    public String searchByNameV3(HttpServletRequest request) {
+        String address = request.getParameter("address");
+
+        if (!StringUtils.hasText(address)) {
+            return MessageManage.getInstance().getResultContent(Constant.PARAM_ERROR, "参数错误", "参数错误");
+        }
+
+        AddressResult addressResult = AddressQueryEngine.getInstance().commonSearchByName_nw(address);
+        if (addressResult == null || addressResult.getCode() == null || !addressResult.getCode().equals(AddressResultEnum.DB_SUCCESS)) {
+            AreaService.getInstance().callBackErrorAddr(address);
+        }
+        if (addressResult == null) {
+            return MessageManage.getInstance().getResultContent(Constant.NO_DATA, "无数据", "无数据");
+        } else if (addressResult.getMessage().equals("失败")) {
+            addressResult.setMessage("标准化成功");
+            return MessageManage.getInstance().getResultContent(Constant.STANDARDIZE, addressResult, "标准化成功");
+        } else {
+            return MessageManage.getInstance().getResultContent(Constant.SUCCESS, addressResult, "成功");
+        }
+    }
+
     @RequestMapping(value = "/sd")
     public String sd() {
         List<Map<String, Object>> uniScDatas = AreaService.getInstance().getUniScDatas();
@@ -238,29 +263,6 @@ public class CorporateLibraryController {
     }
 
 
-    //    高级地址查询
-    @RequestMapping(value = "/searchByNameV3")
-    public String searchByNameV3(HttpServletRequest request) {
-        String address = request.getParameter("address");
-
-        if (!StringUtils.hasText(address)) {
-            return MessageManage.getInstance().getResultContent(Constant.PARAM_ERROR, "参数错误", "参数错误");
-        }
-
-        AddressResult addressResult = AddressQueryEngine.getInstance().commonSearchByName_nw(address);
-        if (addressResult == null || addressResult.getCode() == null || !addressResult.getCode().equals(AddressResultEnum.DB_SUCCESS)) {
-            AreaService.getInstance().callBackErrorAddr(address);
-        }
-        if (addressResult == null) {
-            return MessageManage.getInstance().getResultContent(Constant.NO_DATA, "无数据", "无数据");
-        } else if (addressResult.getMessage().equals("失败")) {
-            addressResult.setMessage("标准化成功");
-            return MessageManage.getInstance().getResultContent(Constant.STANDARDIZE, addressResult, "标准化成功");
-        } else {
-            return MessageManage.getInstance().getResultContent(Constant.SUCCESS, addressResult, "成功");
-        }
-    }
-
     /**
      * (开发中)
      * 定时器:每天都全量更新法人库的地名地址数据

+ 9 - 5
src/main/java/com/skyversation/poiaddr/service/AreaService.java

@@ -44,6 +44,9 @@ public class AreaService {
     @Value("${app.town}")
     private String town;
 
+    @Value("${app.db.search_table_name}")
+    private String searchTableName;
+
     WKTReader reader = new WKTReader(JTSFactoryFinder.getGeometryFactory());
     public List<GeoJsonBean> shAllAdministrativeDivisionPolygonList = new ArrayList<>();
     public List<GeoJsonBean> shAllToensPolygonList = new ArrayList<>();
@@ -67,6 +70,7 @@ public class AreaService {
 //      TODO 初始化配置文件变量
         Constant.setTowns(town.split(","));
         Constant.setArea(area);
+        Constant.setSearchTableName(searchTableName);
         System.out.println("<<<<<<<<------根据配置文件为AREA赋值:" + Constant.getArea());
         System.out.println("<<<<<<<<------当前AMAP_CITY_CODE:" + Constant.getAMAP_CITY_CODE());
 //      TODO 网络连通性测试,可以请求一下测试的市中心地址
@@ -85,7 +89,7 @@ public class AreaService {
 //      TODO 数据库连通性测试
         try {
             System.out.println("<<<<<<<<------开始数据库连通性测试");
-            System.out.println("------数据库连通性测试结果:" + DbConnection.getInstance().runSqlStr("select count(*) from ods.ods_sjqdsjzypt_k_yysk_dmdz_address_standardization"));
+            System.out.println("------数据库连通性测试结果:" + DbConnection.getInstance().runSqlStr("select count(*) from " + searchTableName));
         } catch (Exception e) {
             System.err.println(">>>>>>>>------数据库连通性测试结果:" + e);
         }
@@ -218,7 +222,7 @@ public class AreaService {
         if (splitAddress.getCommunity() == null) {
             splitAddress.setCommunity("");
         }
-        String sql = "select * from ods.ods_sjqdsjzypt_k_yysk_dmdz_address_standardization WHERE city like '%" + splitAddress.getCity() + "%' " +
+        String sql = "select * from " + Constant.getSearchTableName() + " WHERE city like '%" + splitAddress.getCity() + "%' " +
                 "and county like '%" + splitAddress.getDistrict() + "%' and town like '%" + splitAddress.getStreet() + "%' " +
                 "and community like '%" + splitAddress.getCommunity() + "%' order by updatetime desc LIMIT 20";
         try {
@@ -243,7 +247,7 @@ public class AreaService {
 
         List<Address> list = null;
         if (StringUtils.hasText(splitAddress.getDistrict())) {
-            String sql = "select * from ods.ods_sjqdsjzypt_k_yysk_dmdz_address_standardization WHERE county like '%" + splitAddress.getDistrict() + "%' " +
+            String sql = "select * from " + Constant.getSearchTableName() + " WHERE is_delete != 1 and county like '%" + splitAddress.getDistrict() + "%' " +
                     "and (sourceaddress like '%" + splitAddress.getSearchAddr() + "%' or address like '%" + splitAddress.getSearchAddr() + "%') order by updatetime desc LIMIT 20";
             try {
                 list = odsToAddr(DbConnection.getInstance().runSqlStr(sql));
@@ -252,7 +256,7 @@ public class AreaService {
             }
         }
         if (list == null) {
-            String sql = "select * from ods.ods_sjqdsjzypt_k_yysk_dmdz_address_standardization WHERE sourceaddress like '%" + splitAddress.getSearchAddr() + "%' or address like '%" + splitAddress.getSearchAddr() + "%' order by updatetime desc LIMIT 20";
+            String sql = "select * from " + Constant.getSearchTableName() + " WHERE is_delete != 1 and (sourceaddress like '%" + splitAddress.getSearchAddr() + "%' or address like '%" + splitAddress.getSearchAddr() + "%') order by updatetime desc LIMIT 20";
             try {
                 list = odsToAddr(DbConnection.getInstance().runSqlStr(sql));
             } catch (Exception e) {
@@ -271,7 +275,7 @@ public class AreaService {
      */
     public List<Address> getAddressPoiOnlyDB(String addr) {
         try {
-            return odsToAddr(DbConnection.getInstance().runSqlStr("select * from ods.ods_sjqdsjzypt_k_yysk_dmdz_address_standardization WHERE sourceaddress LIKE '%" + addr + "%' or address LIKE  '%" + addr + "%' order by updatetime desc LIMIT 20"));
+            return odsToAddr(DbConnection.getInstance().runSqlStr("select * from " + Constant.getSearchTableName() + " WHERE is_delete != 1 and sourceaddress LIKE '%" + addr + "%' or address LIKE  '%" + addr + "%' order by updatetime desc LIMIT 20"));
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 1 - 1
src/main/java/com/skyversation/poiaddr/service/impl/YyskAddressStandardizationServiceImpl.java

@@ -80,7 +80,7 @@ public class YyskAddressStandardizationServiceImpl {
                 if(matcher.find()){
                     likeStr = hjdz.substring(0,matcher.start());
                 }
-                String sql = "select sourceaddress,city,county,town,community from ods.ods_sjqdsjzypt_k_yysk_dmdz_address_standardization\n" +
+                String sql = "select sourceaddress,city,county,town,community from \n" + Constant.getSearchTableName() +
                         "   where county = '松江区' and town is not null and sourceaddress like '%"+likeStr+"%' limit 1";
 
                 List<Map<String, Object>> dbData = DbConnection.getInstance().runSqlStr(sql);

+ 1 - 0
src/main/resources/application.properties

@@ -12,3 +12,4 @@ app.db.username=dev_sjbdc_kjyy
 app.db.password=30DFBEABYi#5
 app.db.driver=io.transwarp.jdbc.QuarkDriver
 app.db.jdbc_url=jdbc:transwarp2://172.30.75.126:32265/kjyy_dev
+app.db.search_table_name=dwd.dwd_sjqdsjzypt_k_yysk_dmdz_address_standardization