From 3f50254c68361dfc54f0f6e07df7a0b44ef203c8 Mon Sep 17 00:00:00 2001
From: 张洋洋 <10611411+yang-yang-z@user.noreply.gitee.com>
Date: 星期三, 12 二月 2025 13:55:41 +0800
Subject: [PATCH] [add]根据坐标提取管线管点

---
 src/main/java/com/se/simu/utils/EntityLibraryUtils.java |   79 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 77 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/se/simu/utils/EntityLibraryUtils.java b/src/main/java/com/se/simu/utils/EntityLibraryUtils.java
index 2b73b52..0bbeb30 100644
--- a/src/main/java/com/se/simu/utils/EntityLibraryUtils.java
+++ b/src/main/java/com/se/simu/utils/EntityLibraryUtils.java
@@ -45,6 +45,50 @@
         return null;
     }
 
+    public static String getLoginPublicKey() {
+        JSONObject jsonObject = new JSONObject();
+        String json = jsonObject.toJSONString();
+        // 鍙戦�丣SON鏍煎紡鐨凱OST璇锋眰
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        HttpEntity<String> request = new HttpEntity<>(json, headers);
+        RestTemplate restTemplate = new RestTemplate();
+        ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://106.120.22.26:8024/account-service/security/publickey", request, String.class);
+        if (responseEntity.getStatusCode().is2xxSuccessful()) {
+            String body = responseEntity.getBody();
+            return JSONObject.parseObject(body).getString("data");
+        }
+        return null;
+    }
+
+    /**
+     * 鐧诲綍瀹炰綋搴�
+     *
+     * @return 鍙傛暟鍐呰鎯�
+     */
+    public static String login() throws Exception {
+        String publicKey = getLoginPublicKey();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("userid", "admin");
+        jsonObject.put("password", encrypt("admin", publicKey));
+        RestTemplate restTemplate = new RestTemplate();
+        // 鍙戦�丣SON鏍煎紡鐨凱OST璇锋眰
+        StringHttpMessageConverter converter = new StringHttpMessageConverter(StandardCharsets.UTF_8);
+        converter.setSupportedMediaTypes(MediaType.parseMediaTypes("text/plain;charset=UTF-8"));
+        restTemplate.getMessageConverters().add(0, converter);
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        headers.add("Access-Control-Allow-Origin", "*");
+        String json = jsonObject.toJSONString();
+        HttpEntity<String> request = new HttpEntity<>(json, headers);
+        ResponseEntity<String> responseEntity = restTemplate.exchange("http://106.120.22.26:8024/account-service/security/login", HttpMethod.POST, request, String.class);
+        if (responseEntity.getStatusCode().is2xxSuccessful()) {
+            String body = responseEntity.getBody();
+            return JSONObject.parseObject(body).getJSONObject("data").getString("token");
+        }
+        return null;
+    }
+
     public static String encrypt(String str, String publicKey) throws Exception {
         //Base64缂栫爜鐨勫叕閽�
         byte[] decoded = Base64.decodeBase64(publicKey);
@@ -90,7 +134,36 @@
      * @param dtos 鍥涗釜鍧愭爣鐐�
      * @return 妗嗛�夊唴閮ㄧ绾�
      */
-    public static JSONArray getPointInfo(List<GridDto> dtos) {
+    public static JSONArray getPointInfo(List<GridDto> dtos, String token) {
+        JSONArray paramArray = new JSONArray();
+        for (GridDto dto : dtos
+        ) {
+            paramArray.add(ProjectionToGeographicUtil.get4548Point(dto.getLon(), dto.getLat()));
+        }
+        paramArray.add(ProjectionToGeographicUtil.get4548Point(dtos.get(0).getLon(), dtos.get(0).getLat()));
+        JSONObject jsonObject = getModule("layerQueryPointParams.json");
+        jsonObject.getJSONObject("geometry").getJSONArray("coordinates").add(paramArray);
+        jsonObject.put("token", token);
+        RestTemplate restTemplate = new RestTemplate();
+        // 鍙戦�丣SON鏍煎紡鐨凱OST璇锋眰
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        String json = jsonObject.toJSONString();
+        HttpEntity<String> request = new HttpEntity<>(json, headers);
+        ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://106.120.22.26:8024/geo-service/entitydbdata/layer/query", request, String.class);
+        if (responseEntity.getStatusCode().is2xxSuccessful()) {
+            String body = responseEntity.getBody();
+            return JSONObject.parseObject(body).getJSONObject("data").getJSONArray("items");
+        }
+        return null;
+    }
+    /**
+     * 绠$嚎鍒楄〃
+     *
+     * @param dtos 鍥涗釜鍧愭爣鐐�
+     * @return 妗嗛�夊唴閮ㄧ绾�
+     */
+    public static JSONArray getLineInfo(List<GridDto> dtos, String token) {
         JSONArray paramArray = new JSONArray();
         for (GridDto dto : dtos
         ) {
@@ -99,6 +172,7 @@
         paramArray.add(ProjectionToGeographicUtil.get4548Point(dtos.get(0).getLon(), dtos.get(0).getLat()));
         JSONObject jsonObject = getModule("layerQueryParams.json");
         jsonObject.getJSONObject("geometry").getJSONArray("coordinates").add(paramArray);
+        jsonObject.put("token", token);
         RestTemplate restTemplate = new RestTemplate();
         // 鍙戦�丣SON鏍煎紡鐨凱OST璇锋眰
         HttpHeaders headers = new HttpHeaders();
@@ -119,9 +193,10 @@
      * @param param 鏌ヨ鍙傛暟
      * @return 鍙傛暟鍐呰鎯�
      */
-    public static JSONArray getPointDetail(String param) {
+    public static JSONArray getLineDetail(String param,String token) {
         JSONObject jsonObject = getModule("layerQueryDetailParams.json");
         jsonObject.put("where", param);
+        jsonObject.put("token",token);
         RestTemplate restTemplate = new RestTemplate();
         // 鍙戦�丣SON鏍煎紡鐨凱OST璇锋眰
         StringHttpMessageConverter converter = new StringHttpMessageConverter(StandardCharsets.UTF_8);

--
Gitblit v1.9.3