|
@@ -78,7 +78,7 @@ public class AddressQueryEngine {
|
|
|
addressResult.setData(contentBeans);
|
|
|
addressResult.setCode(AddressResultEnum.SZX_SUCCESS);
|
|
|
addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
+ return getCjWgWgwByLoc(addressResult);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -90,7 +90,7 @@ public class AddressQueryEngine {
|
|
|
addressResult.setData(contentBeans);
|
|
|
addressResult.setCode(AddressResultEnum.GD_SUCCESS);
|
|
|
addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
+ return getCjWgWgwByLoc(addressResult);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -102,7 +102,7 @@ public class AddressQueryEngine {
|
|
|
addressResult.setData(contentBeans);
|
|
|
addressResult.setCode(AddressResultEnum.GDV3_SUCCESS);
|
|
|
addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
+ return getCjWgWgwByLoc(addressResult);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -151,14 +151,13 @@ public class AddressQueryEngine {
|
|
|
* @return
|
|
|
*/
|
|
|
public AddressResult szxSearchByName(String address) {
|
|
|
- ResponseEntity response = AddressNetTools.getInstance().requestGet(Constant.SZX_URL + address, null, null);
|
|
|
+ ResponseEntity response = AddressNetTools.getInstance().requestGet(Constant.SZX_URL + "®ion=" + Constant.getAMAP_CITY_CODE() + "&query=" + address, null, null);
|
|
|
if (response != null) {
|
|
|
String body = response.getBody() + "";
|
|
|
if (!StringUtils.hasText(body))
|
|
|
return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果");
|
|
|
try {
|
|
|
- JSONObject json = JSONObject.parseObject(body);
|
|
|
- return getCjWgWgwByLoc(TransfromDataTool.szxResultToResult(json));
|
|
|
+ return TransfromDataTool.szxResultToResult(JSONObject.parseObject(body));
|
|
|
} catch (Exception e) {
|
|
|
System.err.println(e);
|
|
|
return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败");
|
|
@@ -169,7 +168,7 @@ public class AddressQueryEngine {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public AddressResult v4SearchByName(String address) {
|
|
|
+ /*public AddressResult v4SearchByName(String address) {
|
|
|
ResponseEntity response = AddressNetTools.getInstance().requestGet(Constant.V4_URL + address, null, null);
|
|
|
if (response != null) {
|
|
|
String body = response.getBody() + "";
|
|
@@ -186,7 +185,7 @@ public class AddressQueryEngine {
|
|
|
System.out.println("地址" + address + "未查询到数据!");
|
|
|
return null;
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
/***
|
|
|
* 高德普通地名搜索
|
|
@@ -194,14 +193,14 @@ public class AddressQueryEngine {
|
|
|
* @return
|
|
|
*/
|
|
|
public AddressResult gdSearchByName(String address) {
|
|
|
- String geoUrl = Constant.AMAP_GEO_URL + "?key=" + Constant.AMAP_KEY + "&address=" + address + "&city=" + Constant.AMAP_CITY_CODE + "&output=JSON";
|
|
|
+ String geoUrl = Constant.AMAP_GEO_URL + "?key=" + Constant.AMAP_KEY + "&address=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&output=JSON";
|
|
|
ResponseEntity response = AddressNetTools.getInstance().requestGet(geoUrl, null, null);
|
|
|
String body = response.getBody() + "";
|
|
|
if (!StringUtils.hasText(body))
|
|
|
return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果");
|
|
|
try {
|
|
|
JSONObject json = JSONObject.parseObject(body);
|
|
|
- return getCjWgWgwByLoc(TransfromDataTool.gdResultToResult(json));
|
|
|
+ return TransfromDataTool.gdResultToResult(json);
|
|
|
} catch (Exception e) {
|
|
|
System.err.println(e);
|
|
|
return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败");
|
|
@@ -217,7 +216,7 @@ public class AddressQueryEngine {
|
|
|
String geoUrl =
|
|
|
// + Constant.AMAP_SEARCH_TYPES 070500
|
|
|
Constant.AMAP_SEARCH_NAME_V3 + "?key=" + Constant.AMAP_KEY + "&types=" + Constant.AMAP_SEARCH_TYPES +
|
|
|
- "&keywords=" + address + "&city=" + Constant.AMAP_CITY_CODE + "&offset=20";
|
|
|
+ "&keywords=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&offset=20";
|
|
|
System.out.println("geoUrl:" + geoUrl);
|
|
|
String body = null;
|
|
|
body = AddressNetTools.getInstance().requestGet(geoUrl, null, null).getBody() + "";
|
|
@@ -233,7 +232,7 @@ public class AddressQueryEngine {
|
|
|
for (int i = 2; i < (count % 20 + 1); i++) {
|
|
|
geoUrl =
|
|
|
Constant.AMAP_SEARCH_NAME_V3 + "?key=" + Constant.AMAP_KEY + "&types=" + Constant.AMAP_SEARCH_TYPES +
|
|
|
- "&keywords=" + address + "&city=" + Constant.AMAP_CITY_CODE + "&offset=20&page=" + i;
|
|
|
+ "&keywords=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&offset=20&page=" + i;
|
|
|
body = AddressNetTools.getInstance().requestGet(geoUrl, null, null).getBody() + "";
|
|
|
if (!StringUtils.hasText(body)) {
|
|
|
return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_AGAIN_NULL, "多次搜索无结果");
|
|
@@ -242,7 +241,7 @@ public class AddressQueryEngine {
|
|
|
}
|
|
|
}
|
|
|
try {
|
|
|
- return getCjWgWgwByLoc(TransfromDataTool.gdV3ResultToResult(pois));
|
|
|
+ return TransfromDataTool.gdV3ResultToResult(pois);
|
|
|
} catch (Exception e) {
|
|
|
System.err.println(e);
|
|
|
return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败");
|
|
@@ -272,6 +271,11 @@ public class AddressQueryEngine {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //
|
|
|
+ public static boolean isNotEmptyOrBlank(String str) {
|
|
|
+ return str != null && !str.trim().isEmpty();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 1. 搜索到结果就返回第一个;
|
|
|
* 2. 搜索到结果去除行政区划后,存在包含关系,则使用;
|
|
@@ -299,7 +303,7 @@ public class AddressQueryEngine {
|
|
|
for (AddressResult.ContentBean contentBean1 : contentBean) {
|
|
|
String address = addressReplaceAll(contentBean1.getAddress());
|
|
|
String address2 = addressReplaceAll(addr);
|
|
|
- if (address.contains(address2) || address2.contains(address)) {
|
|
|
+ if (isNotEmptyOrBlank(address) && (address.contains(address2) || address2.contains(address))) {
|
|
|
return contentBean1;
|
|
|
}
|
|
|
}
|
|
@@ -314,7 +318,7 @@ public class AddressQueryEngine {
|
|
|
for (AddressResult.ContentBean contentBean1 : contentBean) {
|
|
|
String address = extractNumbers(contentBean1.getAddress(), false);
|
|
|
String address2 = extractNumbers(addr, false);
|
|
|
- if (address.contains(address2) || address2.contains(address)) {
|
|
|
+ if (isNotEmptyOrBlank(address) && address.contains(address2) || address2.contains(address)) {
|
|
|
return contentBean1;
|
|
|
}
|
|
|
}
|
|
@@ -331,7 +335,7 @@ public class AddressQueryEngine {
|
|
|
String address2 = extractNumbers(addressReplaceAll(addr), true);
|
|
|
String addressNumber = extractNumbers(contentBean1.getAddress(), false);
|
|
|
String addressNumber2 = extractNumbers(addr, false);
|
|
|
- if ((address.contains(address2) || address2.contains(address)) && (addressNumber.contains(addressNumber2) || addressNumber2.contains(addressNumber))) {
|
|
|
+ if (isNotEmptyOrBlank(address) && (address.contains(address2) || address2.contains(address)) && (addressNumber.contains(addressNumber2) || addressNumber2.contains(addressNumber))) {
|
|
|
return contentBean1;
|
|
|
}
|
|
|
}
|
|
@@ -346,7 +350,7 @@ public class AddressQueryEngine {
|
|
|
for (AddressResult.ContentBean contentBean1 : contentBean) {
|
|
|
String address = addressReplaceAll(contentBean1.getAddress());
|
|
|
String address2 = addressReplaceAll(addr);
|
|
|
- if (address.equals(address2)) {
|
|
|
+ if (isNotEmptyOrBlank(address) && address.equals(address2)) {
|
|
|
return contentBean1;
|
|
|
}
|
|
|
}
|
|
@@ -361,7 +365,7 @@ public class AddressQueryEngine {
|
|
|
}
|
|
|
|
|
|
public static String addressReplaceAll(String address) {
|
|
|
- return address.replaceAll("上海市", "").replaceAll("松江", "").replaceAll("区", "").replaceAll("-", "").replaceAll("_", "").replaceAll("号", "").replaceAll("/", "").replaceAll(" ", "").replaceAll(",", "").replaceAll("\\.", "").replaceAll(",", "").replaceAll("。", "").replaceAll("\\+", "").replaceAll("\\*", "").replaceAll("弄", "").replaceAll("栋", "").replaceAll("幢", "");
|
|
|
+ return address.replaceAll("上海市", "").replaceAll(Constant.getArea(), "").replaceAll("区", "").replaceAll("-", "").replaceAll("_", "").replaceAll("/", "").replaceAll(" ", "").replaceAll(",", "").replaceAll("\\.", "").replaceAll(",", "").replaceAll("。", "").replaceAll("\\+", "").replaceAll("\\*", "");
|
|
|
}
|
|
|
|
|
|
/**
|