From d4e4ea6405756d495806a609e24ae85ebd7345ef Mon Sep 17 00:00:00 2001 From: suerprisePlus <15810472099@163.com> Date: 星期二, 17 十二月 2024 09:30:12 +0800 Subject: [PATCH] 代码更新 --- src/main/java/com/yb/service/AgentService.java | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 115 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/yb/service/AgentService.java b/src/main/java/com/yb/service/AgentService.java index eb93be4..a1b1943 100644 --- a/src/main/java/com/yb/service/AgentService.java +++ b/src/main/java/com/yb/service/AgentService.java @@ -1,11 +1,15 @@ package com.yb.service; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.yb.config.XzConfig; -import com.yb.entity.ReqEntity; +import com.yb.entity.RelaEntity; import com.yb.util.EntityHttpUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; @Service public class AgentService { @@ -25,8 +29,8 @@ return obj; } - public String getAgentIntention(String url, String api, String msg) throws Exception { - String http = url + api + "?message=" + msg; + public String getAgentIntention(String url, String api, String msg, String sessionid, String libid) throws Exception { + String http = url + api + "?session_id=" + sessionid + "&lib_id=" + libid + "&message=" + msg; System.out.println("rec getMessage:" + http); String obj = entityHttpUtil.getAgentMessage(http); System.out.println("rec getMessage:" + obj); @@ -35,7 +39,7 @@ // public String getAgentPoiMap(String func, String filed) throws Exception { - String poiObj= xzService.getQueryFiled(func, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); + String poiObj = xzService.getQueryFiled(func, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); System.out.println("rec poiMap:" + poiObj); return poiObj; } @@ -44,10 +48,116 @@ public String getAgentAroundPoi(String place, String type, int dis, String filed, String typeFiled) throws Exception { String item = xzService.getQueryFiled(place, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); JSONObject obj = JSONObject.parseObject(item); + if (obj == null) { + return ""; + } Double lon = Double.parseDouble(obj.getString("lon")); Double lat = Double.parseDouble(obj.getString("lat")); String wkt = xzService.getWKt(lon, lat, dis); - return xzService.getQueryAround(type, wkt, typeFiled, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); + return xzService.getQueryAround(type, wkt, typeFiled, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); + + } + + public HashMap<String, Object> getQueryRelationship(String place, String filed) throws Exception { + String poiObj = xzService.getQueryEntity(place, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.layerQuery); + + if (poiObj == null) { + HashMap<String, Object> hashMap = new HashMap<>(); + hashMap.put("msg", "鏈煡璇㈠埌" + place + "鐩稿叧鏁版嵁"); + return hashMap; + } + HashMap<String, String> hashMap = new HashMap<String, String>(); + hashMap.put("token", xzConfig.token); + hashMap.put("dbid", xzConfig.dbid); + hashMap.put("groupid", ""); + String relationList = entityHttpUtil.getPostMessage(xzConfig.relationList, hashMap); + JSONObject relattionObj = JSONObject.parseObject(relationList); + String data = relattionObj.getString("data"); + JSONArray relationArry = JSONArray.parseArray(data); + JSONObject itemObj = new JSONObject(); + for (int i = 0; i < relationArry.size(); i++) { + JSONObject relationtem = relationArry.getJSONObject(i); + String name = relationtem.getString("name"); +// if (name.equals("鍖呭惈")) { +// itemObj = relationtem; +// } + if (name.contains(String.valueOf("鍖呭惈"))) { + itemObj = relationtem; + } + } +// String distanceUrl = xzConfig.relationDistinct + "?dbid=" + xzConfig.dbid + "&token=" + xzConfig.token + "&relationid=" + itemObj.getString("code"); +// String relationDistance = entityHttpUtil.getMessage(distanceUrl); +// JSONObject distanceObj = JSONObject.parseObject(relationList); +// String distanceData = relattionObj.getString("data"); +// System.out.println("rec getQueryRelationship:" + distanceData); + + String relateddataeUrl = xzConfig.relationRelateddata + "?start=1&count=1000000&&a_like=&b_like=&dbid=" + xzConfig.dbid + "&token=" + xzConfig.token + "&relationid=" + itemObj.getString("code"); + String relationRelateddata = entityHttpUtil.getMessage(relateddataeUrl); + JSONObject relateddataeObj = JSONObject.parseObject(relationRelateddata); + String relateddataeData = relateddataeObj.getString("data"); + JSONArray relateddataeArray = JSONArray.parseArray(JSONObject.parseObject(relateddataeData).getString("items")); + System.out.println("rec getQueryRelationship:" + relateddataeArray); + ArrayList<String> list = new ArrayList<>(); + for (int k = 0; k < relateddataeArray.size(); k++) { + JSONObject reitem = relateddataeArray.getJSONObject(k); + list.add(reitem.getString("a_objectid")); + list.add(reitem.getString("b_objectid")); + } + HashMap<String, String> reMap = new HashMap<String, String>(); + reMap.put("token", xzConfig.token); + reMap.put("dbid", xzConfig.dbid); + reMap.put("ids", list.toString()); + reMap.put("layerid", xzConfig.layerId); + reMap.put("querylatest", "true"); + String reMapList = entityHttpUtil.getPostMessage(xzConfig.layerQuery, reMap); + JSONArray reArray = JSONArray.parseArray(JSONObject.parseObject(reMapList).getString("data")); + System.out.println("rec getQueryRelationship:" + reArray); + HashMap<String, Object> traiMap = new HashMap<>(); + traiMap.put("center", JSONObject.parseObject(poiObj)); + traiMap.put("positions", reArray); + if (reArray.size() > 0) { + ArrayList<RelaEntity> arrayList = new ArrayList<>(); + for (int i = 0; i < reArray.size(); i++) { + + String name = JSONObject.parseObject(reArray.getString(i)).getString(xzConfig.typeFiled); +// System.out.println("rec getQueryRelationship:" + name); + if (name == null || name.isEmpty()) { + continue; + } else { + + if (name.equals(place)) { + continue; + } + boolean contains = false; + for (int j = 0; j < arrayList.size(); j++) { + RelaEntity firstElement = arrayList.get(j); + if (firstElement.getName().equals(name)) { + int flag = firstElement.getCount(); + flag++; + firstElement.setCount(flag); + contains = true; + } + } + if (contains == false) { + RelaEntity relaEntity = new RelaEntity(); + relaEntity.setName(name); + relaEntity.setCount(1); + arrayList.add(relaEntity); + } + } + } + String markDown = "| 鏁版嵁绫诲瀷 | 鏁版嵁閲� |\n|------|------|\n"; + for (int i = 0; i < arrayList.size(); i++) { + String name = arrayList.get(i).getName(); + int count = arrayList.get(i).getCount(); + markDown += "| " + name + " | " + count + " |\n"; + + } + traiMap.put("msg", markDown); + } + +// System.out.println("rec traiMap:" + traiMap); + return traiMap; } } -- Gitblit v1.9.3