From 4842fb12fcb26c714768dab0e47d7e9012ffa87e Mon Sep 17 00:00:00 2001
From: suerprisePlus <15810472099@163.com>
Date: 星期五, 27 九月 2024 09:56:45 +0800
Subject: [PATCH] 当问到库中不存在的数据时,直接卡死,如问题:查看台湾花莲机场之间的关系、战场环境总结报告

---
 src/main/java/com/yb/service/XzService.java |   70 ++++++++++++++++------------------
 1 files changed, 33 insertions(+), 37 deletions(-)

diff --git a/src/main/java/com/yb/service/XzService.java b/src/main/java/com/yb/service/XzService.java
index d2b0313..6b8b6a2 100644
--- a/src/main/java/com/yb/service/XzService.java
+++ b/src/main/java/com/yb/service/XzService.java
@@ -24,6 +24,7 @@
 import org.locationtech.proj4j.CoordinateTransform;
 import org.locationtech.proj4j.CoordinateTransformFactory;
 import org.locationtech.proj4j.ProjCoordinate;
+
 import java.util.HashMap;
 
 @Service
@@ -37,25 +38,10 @@
 
     // 鍏抽敭瀛楁煡璇�
     public String getQueryFiled(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception {
-        String query = "";
+
         String valSql = " like '%" + place + "%'";
-        String key = getPublickey();
-        if (filed.indexOf(",") > -1) {
-            String[] fileds = filed.split(",");
-            for (int i = 0; i < fileds.length; i++) {
-                String name = fileds[i];
-                if (i > 0) {
-                    query += " or ";
-                }
-                query += name + valSql;
-            }
-        } else {
-            query += filed + valSql;
-        }
-        query += "";
-        System.out.println("rec getQueryFiled:" + query);
-        String encrypt = RsaHelper.encrypt(key, query);
-        HashMap formData = getHashMap(layerId, dbId, "1", "0", encrypt, null);
+        String querySQL = getQuerySql(valSql, filed);
+        HashMap formData = getHashMap(layerId, dbId, "1", "0", querySQL, null);
         String jsonString = entityHttpUtil.getPostMessage(queryEntity, formData);
         System.out.println("rec getQueryFiled:" + jsonString);
         JSONObject jsonObject = JSON.parseObject(jsonString);
@@ -67,26 +53,33 @@
         return "";
     }
 
-    // 鍏抽敭瀛楁煡璇�
-    public String getQueryEntity(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception {
-        String query = "";
-        String valSql = " like '%" + place + "%'";
+    private String getQuerySql(String valSql, String filed) throws Exception {
         String key = getPublickey();
+        String querySQL = "";
         if (filed.indexOf(",") > -1) {
             String[] fileds = filed.split(",");
             for (int i = 0; i < fileds.length; i++) {
                 String name = fileds[i];
                 if (i > 0) {
-                    query += " or ";
+                    querySQL += ";";
                 }
-                query += name + valSql;
+                String Sql = name + valSql + "";
+                querySQL += RsaHelper.encrypt(key, Sql);
             }
         } else {
-            query += filed + valSql;
+            String Sql = filed + valSql + "";
+            querySQL = RsaHelper.encrypt(key, Sql);
         }
-        query += "";
-        String encrypt = RsaHelper.encrypt(key, query);
-        HashMap formData = getHashMap(layerId, dbId, "1", "100", encrypt, null);
+        return querySQL;
+
+    }
+
+
+    // 鍏抽敭瀛楁煡璇�
+    public String getQueryEntity(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception {
+        String valSql = " like '%" + place + "%'";
+        String querySQL = getQuerySql(valSql, filed);
+        HashMap formData = getHashMap(layerId, dbId, "1", "100", querySQL, null);
         formData.put("querytype", "entity");
         String jsonString1 = entityHttpUtil.getPostMessage(queryEntity, formData);
         System.out.println("rec getQueryFiled:" + jsonString1);
@@ -104,9 +97,12 @@
     //  鑼冨洿鏌ヨ
     public String getQueryAround(String type, String wkt, String filed, String layerId, String dbid, String entity) throws Exception {
         String query = filed + " like '%" + type + "%'" + "";
+        if (type.contains("鍏ㄩ儴鐩爣")) {
+            query = filed + " like '%鐩爣%'" + "";
+        }
         String encrypt = RsaHelper.encrypt(getPublickey(), query);
         HashMap formData = getHashMap(layerId, dbid, "1", "0", encrypt, wkt);
-        formData.put("querytype","entity");
+        formData.put("querytype", "entity");
         String jsonString = entityHttpUtil.getPostMessage(entity, formData);
         JSONObject jsonObject = JSON.parseObject(jsonString);
         JSONObject dataObj = jsonObject.getJSONObject("data");
@@ -170,7 +166,6 @@
     }
 
 
-
     //鐢熸垚WKT
     public String getWKt(double lon, double lat, int radius) throws Exception {
         // 鍒涘缓涓�涓潗鏍囩偣
@@ -182,9 +177,9 @@
         // 鍒涘缓BufferOp瀹炰緥锛岀敤浜庣敓鎴愮紦鍐插尯
         BufferOp bufferOp = new BufferOp(point);
         int dis = 500;
-//        if (radius != 0) {
-//            dis = radius;
-//        }
+        if (radius != 0) {
+            dis = radius;
+        }
         // 璁剧疆缂撳啿鍖鸿窛绂讳负500绫�
         Geometry bufferedGeometry = bufferOp.getResultGeometry(dis / 111319.9);
         // 鍒涘缓WKTWriter瀹炰緥锛岀敤浜庡皢Geometry杞崲涓篧KT鏍煎紡
@@ -226,15 +221,16 @@
         CoordinateTransform transform = ctFactory.createTransform(src, dest);
 
         // 瀹氫箟涓�涓簮鍧愭爣鐐癸紙缁忓害锛岀含搴︼級
-        ProjCoordinate srcgetMin = new ProjCoordinate( envelope.getMinX(),  envelope.getMinY()); // 渚嬪锛氬寳浜殑缁忕含搴�
-        ProjCoordinate srcgetMax = new ProjCoordinate( envelope.getMaxX(),  envelope.getMaxY()); // 渚嬪锛氬寳浜殑缁忕含搴�
+        ProjCoordinate srcgetMin = new ProjCoordinate(envelope.getMinX(), envelope.getMinY(), 0); // 渚嬪锛氬寳浜殑缁忕含搴�
+        ProjCoordinate srcgetMax = new ProjCoordinate(envelope.getMaxX(), envelope.getMaxY(), 0); // 渚嬪锛氬寳浜殑缁忕含搴�
         // 鎵ц杞崲
         ProjCoordinate destgetMin = new ProjCoordinate();
         ProjCoordinate destgetMax = new ProjCoordinate();
+        System.out.println("杞崲鍚庣殑鍧愭爣锛歑 = " + srcgetMin);
         transform.transform(srcgetMin, destgetMin);
         transform.transform(srcgetMax, destgetMax);
-        String wkt =destgetMin.x+","+destgetMin.y+","+destgetMax.x+","+destgetMax.y;
-        System.out.println("杞崲鍚庣殑鍧愭爣锛歑 = " +wkt);
+        String wkt = destgetMin.x + "," + destgetMin.y + "," + destgetMax.x + "," + destgetMax.y;
+        System.out.println("杞崲鍚庣殑鍧愭爣锛歑 = " + wkt);
         return wkt;
 
     }

--
Gitblit v1.9.3