|
|
@@ -27,7 +27,7 @@ public class AddressQueryEngine {
|
|
|
@Value("${app.net-type}")
|
|
|
private String netType=null;
|
|
|
@Value("${app.yysz-address-service}")
|
|
|
- private String yyszAddressService=null;
|
|
|
+ private String yyszAddressService="http://121.43.55.7:10013/address";
|
|
|
@Resource
|
|
|
private DataCallBackService dataCallBack;
|
|
|
@PostConstruct
|
|
|
@@ -67,20 +67,24 @@ public class AddressQueryEngine {
|
|
|
if (addrs == null || addrs.size() < 1) {
|
|
|
return null;
|
|
|
}
|
|
|
- //先走yysz_address
|
|
|
- AddressResult yyszAddressResult =null;
|
|
|
- yyszAddressResult = yyszMultiSearch(addrs, level );
|
|
|
- if (yyszAddressResult != null){
|
|
|
- return yyszAddressResult;
|
|
|
- }else {
|
|
|
- System.out.println("yysz_address地址" + addrs + "未查询到数据!");
|
|
|
- }
|
|
|
+ // TODO 互联网版本,先走自己搜索,政务网版本,先走武大和四中心
|
|
|
+// //先走yysz_address
|
|
|
+// AddressResult yyszAddressResult =null;
|
|
|
+// yyszAddressResult = yyszMultiSearch(addrs, level );
|
|
|
+// if (yyszAddressResult != null && yyszAddressResult.getData() != null){
|
|
|
+// return yyszAddressResult;
|
|
|
+// }else {
|
|
|
+// System.out.println("yysz_address地址" + addrs + "未查询到数据!");
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
if (!Objects.equals(netType, "internet")) {
|
|
|
//武大
|
|
|
if (Objects.equals(netType, "qingpu")) {
|
|
|
AddressResult wdAddressResult = wdMultiSearch(addrs, level);
|
|
|
if (wdAddressResult != null) {
|
|
|
dataCallBack.successDataCallBack(wdAddressResult);
|
|
|
+ System.out.println("武大吉奥地址::" + addrs + "查询到数据!");
|
|
|
return wdAddressResult;
|
|
|
}
|
|
|
}
|
|
|
@@ -88,19 +92,20 @@ public class AddressQueryEngine {
|
|
|
AddressResult szxAddressResult = szxMultiSearch(addrs, level);
|
|
|
if (szxAddressResult != null) {
|
|
|
dataCallBack.successDataCallBack(szxAddressResult);
|
|
|
+ System.out.println("四中心地址::" + addrs + "查询到数据!");
|
|
|
return szxAddressResult;
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
|
|
|
//高德
|
|
|
AddressResult gdAddressResult = gdMultiSearch(addrs, level);
|
|
|
- if (gdAddressResult != null) {
|
|
|
+ if (gdAddressResult != null && gdAddressResult.getData() != null) {
|
|
|
dataCallBack.successDataCallBack(gdAddressResult);
|
|
|
return gdAddressResult;
|
|
|
}
|
|
|
//高德高级
|
|
|
AddressResult gdV3AddressResult = gdV3MultiSearch(addrs, level);
|
|
|
- if (gdV3AddressResult != null) {
|
|
|
+ if (gdV3AddressResult != null && gdAddressResult.getData() != null) {
|
|
|
dataCallBack.successDataCallBack(gdV3AddressResult);
|
|
|
return gdV3AddressResult;
|
|
|
}
|
|
|
@@ -156,25 +161,18 @@ public class AddressQueryEngine {
|
|
|
private AddressResult yyszMultiSearch(List<String> addrs, AddressLevel level) {
|
|
|
try{
|
|
|
|
|
|
- if(addrs != null && addrs.size() == 1){
|
|
|
- AddressResult addressResult = yyszSearchByName(addrs.get(0));
|
|
|
- addressResult.setCode(AddressResultEnum.YYSZ_SUCCESS);
|
|
|
- addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
- } else {
|
|
|
- for (String addr : addrs) {
|
|
|
- AddressResult.ContentBean contentBean = verificaData(yyszSearchByName(addr), level, addr);
|
|
|
- if (contentBean != null) {
|
|
|
- contentBean.setSearchAddress(addr);
|
|
|
-
|
|
|
- List<com.skyversation.poiaddr.bean.AddressResult.ContentBean> contentBeans = new ArrayList<>();
|
|
|
- contentBeans.add(contentBean);
|
|
|
- AddressResult addressResult = new AddressResult();
|
|
|
- addressResult.setData(contentBeans);
|
|
|
- addressResult.setCode(AddressResultEnum.YYSZ_SUCCESS);
|
|
|
- addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
- }
|
|
|
+ for (String addr : addrs) {
|
|
|
+ AddressResult.ContentBean contentBean = verificaData(yyszSearchByName(addr), level, addr);
|
|
|
+ if (contentBean != null) {
|
|
|
+ contentBean.setSearchAddress(addr);
|
|
|
+
|
|
|
+ List<com.skyversation.poiaddr.bean.AddressResult.ContentBean> contentBeans = new ArrayList<>();
|
|
|
+ contentBeans.add(contentBean);
|
|
|
+ AddressResult addressResult = new AddressResult();
|
|
|
+ addressResult.setData(contentBeans);
|
|
|
+ addressResult.setCode(AddressResultEnum.YYSZ_SUCCESS);
|
|
|
+ addressResult.setMessage("成功");
|
|
|
+ return addressResult;
|
|
|
}
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
@@ -187,24 +185,17 @@ public class AddressQueryEngine {
|
|
|
*/
|
|
|
private AddressResult wdMultiSearch(List<String> addrs, AddressLevel level) {
|
|
|
try {
|
|
|
- if(addrs != null && addrs.size() == 1){
|
|
|
- AddressResult addressResult = yyszSearchByName(addrs.get(0));
|
|
|
- addressResult.setCode(AddressResultEnum.WDJA_SUCCESS);
|
|
|
- addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
- } else {
|
|
|
- for (String addr : addrs) {
|
|
|
- AddressResult.ContentBean contentBean = verificaData(wdjaSearchByName(addr), level, addr);
|
|
|
- if (contentBean != null) {
|
|
|
- contentBean.setSearchAddress(addr);
|
|
|
- List<com.skyversation.poiaddr.bean.AddressResult.ContentBean> contentBeans = new ArrayList<>();
|
|
|
- contentBeans.add(contentBean);
|
|
|
- AddressResult addressResult = new AddressResult();
|
|
|
- addressResult.setData(contentBeans);
|
|
|
- addressResult.setCode(AddressResultEnum.WDJA_SUCCESS);
|
|
|
- addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
- }
|
|
|
+ for (String addr : addrs) {
|
|
|
+ AddressResult.ContentBean contentBean = verificaData(wdjaSearchByName(addr), level, addr);
|
|
|
+ if (contentBean != null) {
|
|
|
+ contentBean.setSearchAddress(addr);
|
|
|
+ List<com.skyversation.poiaddr.bean.AddressResult.ContentBean> contentBeans = new ArrayList<>();
|
|
|
+ contentBeans.add(contentBean);
|
|
|
+ AddressResult addressResult = new AddressResult();
|
|
|
+ addressResult.setData(contentBeans);
|
|
|
+ addressResult.setCode(AddressResultEnum.WDJA_SUCCESS);
|
|
|
+ addressResult.setMessage("成功");
|
|
|
+ return addressResult;
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
@@ -217,24 +208,17 @@ public class AddressQueryEngine {
|
|
|
*/
|
|
|
private AddressResult szxMultiSearch(List<String> addrs, AddressLevel level) {
|
|
|
try {
|
|
|
- if(addrs != null && addrs.size() == 1){
|
|
|
- AddressResult addressResult = yyszSearchByName(addrs.get(0));
|
|
|
- addressResult.setCode(AddressResultEnum.SZX_SUCCESS);
|
|
|
- addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
- } else {
|
|
|
- for (String addr : addrs) {
|
|
|
- AddressResult.ContentBean contentBean = verificaData(szxSearchByName(addr), level, addr);
|
|
|
- if (contentBean != null) {
|
|
|
- contentBean.setSearchAddress(addr);
|
|
|
- List<com.skyversation.poiaddr.bean.AddressResult.ContentBean> contentBeans = new ArrayList<>();
|
|
|
- contentBeans.add(contentBean);
|
|
|
- AddressResult addressResult = new AddressResult();
|
|
|
- addressResult.setData(contentBeans);
|
|
|
- addressResult.setCode(AddressResultEnum.SZX_SUCCESS);
|
|
|
- addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
- }
|
|
|
+ for (String addr : addrs) {
|
|
|
+ AddressResult.ContentBean contentBean = verificaData(szxSearchByName(addr), level, addr);
|
|
|
+ if (contentBean != null) {
|
|
|
+ contentBean.setSearchAddress(addr);
|
|
|
+ List<com.skyversation.poiaddr.bean.AddressResult.ContentBean> contentBeans = new ArrayList<>();
|
|
|
+ contentBeans.add(contentBean);
|
|
|
+ AddressResult addressResult = new AddressResult();
|
|
|
+ addressResult.setData(contentBeans);
|
|
|
+ addressResult.setCode(AddressResultEnum.SZX_SUCCESS);
|
|
|
+ addressResult.setMessage("成功");
|
|
|
+ return addressResult;
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
@@ -247,24 +231,17 @@ public class AddressQueryEngine {
|
|
|
*/
|
|
|
private AddressResult gdMultiSearch(List<String> addrs, AddressLevel level) {
|
|
|
try {
|
|
|
- if(addrs != null && addrs.size() == 1){
|
|
|
- AddressResult addressResult = yyszSearchByName(addrs.get(0));
|
|
|
- addressResult.setCode(AddressResultEnum.GD_SUCCESS);
|
|
|
- addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
- } else {
|
|
|
- for (String addr : addrs) {
|
|
|
- AddressResult.ContentBean contentBean = verificaData(gdSearchByName(addr), level, addr);
|
|
|
- if (contentBean != null) {
|
|
|
- contentBean.setSearchAddress(addr);
|
|
|
- List<com.skyversation.poiaddr.bean.AddressResult.ContentBean> contentBeans = new ArrayList<>();
|
|
|
- contentBeans.add(contentBean);
|
|
|
- AddressResult addressResult = new AddressResult();
|
|
|
- addressResult.setData(contentBeans);
|
|
|
- addressResult.setCode(AddressResultEnum.GD_SUCCESS);
|
|
|
- addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
- }
|
|
|
+ for (String addr : addrs) {
|
|
|
+ AddressResult.ContentBean contentBean = verificaData(gdSearchByName(addr), level, addr);
|
|
|
+ if (contentBean != null) {
|
|
|
+ contentBean.setSearchAddress(addr);
|
|
|
+ List<com.skyversation.poiaddr.bean.AddressResult.ContentBean> contentBeans = new ArrayList<>();
|
|
|
+ contentBeans.add(contentBean);
|
|
|
+ AddressResult addressResult = new AddressResult();
|
|
|
+ addressResult.setData(contentBeans);
|
|
|
+ addressResult.setCode(AddressResultEnum.GD_SUCCESS);
|
|
|
+ addressResult.setMessage("成功");
|
|
|
+ return addressResult;
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
@@ -276,24 +253,17 @@ public class AddressQueryEngine {
|
|
|
*/
|
|
|
public AddressResult gdV3MultiSearch(List<String> addrs, AddressLevel level) {
|
|
|
try {
|
|
|
- if(addrs != null && addrs.size() == 1){
|
|
|
- AddressResult addressResult = yyszSearchByName(addrs.get(0));
|
|
|
- addressResult.setCode(AddressResultEnum.GDV3_SUCCESS);
|
|
|
- addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
- } else {
|
|
|
- for (String addr : addrs) {
|
|
|
- AddressResult.ContentBean contentBean = verificaData(gdV3SearchByName(addr), level, addr);
|
|
|
- if (contentBean != null) {
|
|
|
- contentBean.setSearchAddress(addr);
|
|
|
- List<com.skyversation.poiaddr.bean.AddressResult.ContentBean> contentBeans = new ArrayList<>();
|
|
|
- contentBeans.add(contentBean);
|
|
|
- AddressResult addressResult = new AddressResult();
|
|
|
- addressResult.setData(contentBeans);
|
|
|
- addressResult.setCode(AddressResultEnum.GDV3_SUCCESS);
|
|
|
- addressResult.setMessage("成功");
|
|
|
- return addressResult;
|
|
|
- }
|
|
|
+ for (String addr : addrs) {
|
|
|
+ AddressResult.ContentBean contentBean = verificaData(gdV3SearchByName(addr), level, addr);
|
|
|
+ if (contentBean != null) {
|
|
|
+ contentBean.setSearchAddress(addr);
|
|
|
+ List<com.skyversation.poiaddr.bean.AddressResult.ContentBean> contentBeans = new ArrayList<>();
|
|
|
+ contentBeans.add(contentBean);
|
|
|
+ AddressResult addressResult = new AddressResult();
|
|
|
+ addressResult.setData(contentBeans);
|
|
|
+ addressResult.setCode(AddressResultEnum.GDV3_SUCCESS);
|
|
|
+ addressResult.setMessage("成功");
|
|
|
+ return addressResult;
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
@@ -302,6 +272,27 @@ public class AddressQueryEngine {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ public AddressResult reverseGeocoding(double lon, double lat){
|
|
|
+ ResponseEntity response = AddressNetTools.getInstance().requestGet(yyszAddressService+"/search/reverseGeocoding?lon="+lon+"&lat="+lat, null, null, 10);
|
|
|
+// ResponseEntity response = AddressNetTools.getInstance().requestGet("http://127.0.0.1:10012/poi/search/reverseGeocoding?lon="+lon+"&lat="+lat, null, null, 10);
|
|
|
+
|
|
|
+ if (response != null) {
|
|
|
+ String body = response.getBody() + "";
|
|
|
+ if (!StringUtils.hasText(body))
|
|
|
+ return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果");
|
|
|
+ try {
|
|
|
+ AddressResult addressResult = yyszResultToResult(JSONObject.parseObject(body));
|
|
|
+ if(addressResult.getCode() == AddressResultEnum.DB_RECOMMEND_SUCCESS) return null;
|
|
|
+ return addressResult;
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.err.println(e);
|
|
|
+ return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//单搜索
|
|
|
/**
|
|
|
* yysz_address地名搜索
|
|
|
@@ -324,6 +315,9 @@ public class AddressQueryEngine {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 武大吉奥单条地名搜索
|
|
|
* @param address
|