Commit b5c05e5e by panaichi

修改地址poi接口

Signed-off-by: panaichi <1070374300@qq.com>
parent 400d40ed
package com.founder.commonutils.publicEntity;
public class AddressPoiResult {
private String dataType;
private String dz;
private String id;
private String layer;
private String location;
private Otherfields otherfields;
private String score;
private String x;
private String y;
public String getDataType() {
return dataType;
}
public void setDataType(String dataType) {
this.dataType = dataType;
}
public String getDz() {
return dz;
}
public void setDz(String dz) {
this.dz = dz;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLayer() {
return layer;
}
public void setLayer(String layer) {
this.layer = layer;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public Otherfields getOtherfields() {
return otherfields;
}
public void setOtherfields(Otherfields otherfields) {
this.otherfields = otherfields;
}
public String getScore() {
return score;
}
public void setScore(String score) {
this.score = score;
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
@Override
public String toString() {
return "AddressPoiResult{" +
"dataType='" + dataType + '\'' +
", dz='" + dz + '\'' +
", id='" + id + '\'' +
", layer='" + layer + '\'' +
", location='" + location + '\'' +
", otherfields=" + otherfields +
", score='" + score + '\'' +
", x='" + x + '\'' +
", y='" + y + '\'' +
'}';
}
}
package com.founder.commonutils.publicEntity;
public class Otherfields {
private String dzzymc_pinyin;
private String x;
private String y;
private String address;
private String updatetime;
private String azname;
private String sjly;
public String getDzzymc_pinyin() {
return dzzymc_pinyin;
}
public void setDzzymc_pinyin(String dzzymc_pinyin) {
this.dzzymc_pinyin = dzzymc_pinyin;
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getUpdatetime() {
return updatetime;
}
public void setUpdatetime(String updatetime) {
this.updatetime = updatetime;
}
public String getAzname() {
return azname;
}
public void setAzname(String azname) {
this.azname = azname;
}
public String getSjly() {
return sjly;
}
public void setSjly(String sjly) {
this.sjly = sjly;
}
@Override
public String toString() {
return "Otherfields{" +
"dzzymc_pinyin='" + dzzymc_pinyin + '\'' +
", x='" + x + '\'' +
", y='" + y + '\'' +
", address='" + address + '\'' +
", updatetime='" + updatetime + '\'' +
", azname='" + azname + '\'' +
", sjly='" + sjly + '\'' +
'}';
}
}
package com.founder.commonutils.util;
import cn.hutool.core.exceptions.ExceptionUtil;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.founder.commonutils.publicEntity.AddressPoiResult;
import com.founder.commonutils.publicEntity.Otherfields;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Service
public class AddressPoiUtil {
......@@ -22,8 +24,9 @@ public class AddressPoiUtil {
private static PoolingHttpClientConnectionManager cm =
new PoolingHttpClientConnectionManager();
public String getData(String keywords) {
String req = "keywords=" + keywords + "&page=1&pageSize=17&spatialRange=&queryType=FQ&dataType=PT&searchType=MH&layer=fz_jsq_sqjw_bzdzxx%2Cfz_poi_address_sw%2Cfz_poi_address_125%2Cfz_poi_name_sw&filter=&aggregation=&addregationtype=sum&_=1645437182389";
//获取数据
public String getData(String keywords, int page, int pageSize) {
String req = "keywords=" + keywords + "&page=" + page + "&pageSize=" + pageSize + "17&spatialRange=&queryType=FQ&dataType=PT&searchType=MH&layer=fz_jsq_sqjw_bzdzxx%2Cfz_poi_address_sw%2Cfz_poi_address_125%2Cfz_poi_name_sw&filter=&aggregation=&addregationtype=sum&_=1645437182389";
String resultString = "";
// 创建Http Get请求
......@@ -38,4 +41,93 @@ public class AddressPoiUtil {
return resultString;
}
public List handleListPage(String data, int page, int pageSize){
List<AddressPoiResult> result = new ArrayList<>();
List<AddressPoiResult> list = handleList(data);
int beginIndex = (page - 1) * pageSize;
int endIndex = beginIndex + 10;
if(endIndex < list.size()){
endIndex = list.size();
}
for (int i = beginIndex; i < endIndex; i++) {
result.add(list.get(i));
}
return result;
}
//处理数据
public List handleList(String data){
JSONObject jsonObject = JSON.parseObject(data);
JSONArray list = jsonObject.getJSONArray("list");
Object total = jsonObject.get("total");
if(list == null || list.size() == 0){
return new ArrayList();
}
List<AddressPoiResult> resultList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Object o = list.get(i);
Map<String, Object> map = JSONObject.parseObject(JSON.toJSONString(o));
AddressPoiResult addressPoiResult = new AddressPoiResult();
addressPoiResult.setScore(map.get("score").toString());
addressPoiResult.setDz(map.get("dz").toString());
addressPoiResult.setDataType(map.get("dataType").toString());
addressPoiResult.setX(map.get("x").toString());
addressPoiResult.setY(map.get("y").toString());
addressPoiResult.setLocation(map.get("location").toString());
addressPoiResult.setId(map.get("id").toString());
addressPoiResult.setLayer(map.get("layer").toString());
String otherfields = map.get("otherfields").toString();
Otherfields oth = changeObject(otherfields);
addressPoiResult.setOtherfields(oth);
resultList.add(addressPoiResult);
}
return resultList;
}
public Otherfields changeObject(String data){
Otherfields otherfields = new Otherfields();
data = data.substring(1,data.length()-1);
String[] arr = data.split(",");
for (int i = 0; i < arr.length; i++) {
JSONObject jsonObject = JSON.parseObject(arr[i]);
Set<Map.Entry<String, Object>> set = jsonObject.entrySet();
String dzzymc_pinyin = jsonObject.getString("dzzymc_pinyin");
if(dzzymc_pinyin != null){
otherfields.setDzzymc_pinyin(dzzymc_pinyin);
}
String x = jsonObject.getString("x");
if(x != null){
otherfields.setX(x);
}
String y = jsonObject.getString("y");
if(y != null){
otherfields.setY(y);
}
String address = jsonObject.getString("address");
if(address != null){
otherfields.setAddress(address);
}
String updatetime = jsonObject.getString("updatetime");
if(updatetime != null){
otherfields.setUpdatetime(updatetime);
}
String azname = jsonObject.getString("azname");
if(azname != null){
otherfields.setAzname(azname);
}
String sjly = jsonObject.getString("sjly");
if(sjly != null){
otherfields.setSjly(sjly);
}
}
return otherfields;
}
}
......@@ -2,6 +2,7 @@ package com.founder.publicapi.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.founder.commonutils.publicEntity.AddressPoiResult;
import com.founder.commonutils.publicEntity.MapRestResult;
import com.founder.commonutils.util.AddressPoiUtil;
import io.swagger.annotations.Api;
......@@ -11,7 +12,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
/**
* poi查询地址接口
......@@ -27,10 +28,17 @@ public class AddressController {
@RequestMapping("/getAddress")
@ResponseBody
public MapRestResult getAddress(@RequestParam String keywords){
String result = addressPoiUtil.getData(keywords);
public MapRestResult getAddress(@RequestParam String keywords, @RequestParam Integer page, @RequestParam Integer pageSize){
if (page == null || page.intValue() == 0){
return MapRestResult.error("page为空");
}else if(pageSize == null || pageSize.intValue() == 0){
return MapRestResult.error("pageSize为空");
}else{
String result = addressPoiUtil.getData(keywords, page.intValue(), pageSize.intValue());
JSONObject jsonObject = JSON.parseObject(result);
// List<AddressPoiResult> list = addressPoiUtil.handleListPage(result, page.intValue(), pageSize.intValue());
return MapRestResult.build(200,"成功获取地址信息",jsonObject);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment