From 2e9e03c7971f1da71cc9e9bd7d2f159c244839f3 Mon Sep 17 00:00:00 2001
From: suerprisePlus <15810472099@163.com>
Date: 星期二, 03 九月 2024 19:39:48 +0800
Subject: [PATCH] 代码优化

---
 src/main/java/com/yb/controller/XzController.java |  155 +++++++++++++++++++++++++++++++++------------------
 1 files changed, 100 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/yb/controller/XzController.java b/src/main/java/com/yb/controller/XzController.java
index 1dea396..ea07b17 100644
--- a/src/main/java/com/yb/controller/XzController.java
+++ b/src/main/java/com/yb/controller/XzController.java
@@ -1,95 +1,140 @@
 package com.yb.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.yb.config.R;
+import com.yb.config.XzConfig;
 import com.yb.entity.ReqEntity;
+import com.yb.service.XzService;
 import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 
-@Tag(name="鏂版櫤鎺ュ彛")
+
+@Tag(name = "鏂版櫤鎺ュ彛")
 @RestController
 @RequestMapping("/api/v1")
 public class XzController {
     @Autowired
     WebSocketController webSocketController;
+    @Autowired
+    private XzService xzService;
+    @Autowired
+    private XzConfig xzConfig;
 
     @PostMapping("/poiMap")
     @Operation(summary = "鏄剧ず鍦扮偣")
-    public R poiMap(@Parameter String place,@Parameter String mid){
-        System.out.println("rec message:"+place+"  mid:"+mid);
-        HashMap<String,Object> hash = new HashMap<>();
-        hash.put("func","poiMap");
-        hash.put("mid","mid");
+    public R poiMap(@RequestParam Map<String, String> allParams) throws Exception {
+        String place = allParams.get("place");
+        String mid = allParams.get("mid");
+        if (place == null || mid == null) {
+            return R.error("鏁版嵁浼犻�掗敊璇�");
+        }
+        HashMap<String, Object> hash = xzService.getFuncMap("poiMap", mid);
         ReqEntity reqEntity = new ReqEntity();
-        reqEntity.setPlace(place);
-        reqEntity.setX("120.9671");
-        reqEntity.setY("13.5748");
-        hash.put("poi",reqEntity);
-
+        String filed = "enti_name";
+        String item = xzService.getQueryFiled(place, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity);
+        System.out.println("rec poiMap:" + reqEntity);
+        JSONObject obj = JSONObject.parseObject(item);
+        reqEntity.setX(obj.getString("lon"));
+        reqEntity.setY(obj.getString("lat"));
+        reqEntity.setPlace(obj.getString(filed));
+        hash.put("poi", reqEntity);
         String message = JSON.toJSONString(hash);
         webSocketController.sendAllMessage(message);
-
         return R.ok(hash);
     }
 
     @PostMapping("/aroundPoi")
-    @Operation(summary = "鍛ㄨ竟鏌ヨ")
-    public R aroundPoi(@RequestBody ReqEntity reqEntity){
-        System.out.println("rec message:"+reqEntity);
-        HashMap<String,Object> hash = new HashMap<>();
-        hash.put("func","aroundPoi");
-        hash.put("mid","mid");
-        List<ReqEntity> list = new ArrayList<>();
-        reqEntity.setX("120.9671");
-        reqEntity.setY("13.5748");
-        list.add(reqEntity);
-        list.add(reqEntity);
-        hash.put("poi",list);
-
+    @Operation(summary = "鍛ㄨ竟灞炴�ф煡璇�")
+    public R aroundPoi(@RequestParam Map<String, String> allParams) throws Exception {
+        String place = allParams.get("place");
+        String mid = allParams.get("mid");
+        String type = allParams.get("type");
+        String dis = allParams.get("radius");
+        int radius = 0;
+        if (dis != null) {
+            radius = Integer.parseInt(dis);
+        }
+        System.out.println("rec aroundPoi:" + place + "  mid:" + mid + "  type:" + type + "  radius:" + radius);
+        if (type == null || place == null || mid == null) {
+            return R.error("鏁版嵁浼犻�掗敊璇�");
+        }
+        HashMap<String, Object> hash = xzService.getFuncMap("aroundPoi", mid);
+        String filed = "enti_name";
+        String typeFiled = "sjnr";
+        String item = xzService.getQueryFiled(place, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity);
+        JSONObject obj = JSONObject.parseObject(item);
+        Double lon = Double.parseDouble(obj.getString("lon"));
+        Double lat = Double.parseDouble(obj.getString("lat"));
+        String wkt = xzService.getWKt(lon, lat, radius);
+        String itemList = xzService.getQueryAround(type, wkt, typeFiled, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity);
+        JSONArray dataArray = JSONArray.parseArray(itemList);
+        ArrayList<ReqEntity> arrayList = new ArrayList<>();
+        for (int i = 0; i < dataArray.size(); i++) {
+            Object element = dataArray.get(i);
+            if (element instanceof JSONObject) {
+                JSONObject jsonObject = (JSONObject) element;
+                ReqEntity reqEntity = new ReqEntity();
+                reqEntity.setX(jsonObject.getString("lon"));
+                reqEntity.setY(jsonObject.getString("lat"));
+                reqEntity.setPlace(jsonObject.getString(filed));
+                arrayList.add(reqEntity);
+            }
+        }
+        System.out.println("rec aroundPoi:" + arrayList);
+        hash.put("poi", arrayList);
         String message = JSON.toJSONString(hash);
         webSocketController.sendAllMessage(message);
-
         return R.ok(hash);
     }
 
-    /*@GetMapping("/queryPath/{start_point}/{end_point}")
-    @Operation(summary = "璺嚎鏌ヨ")
-    public R queryPath(@PathVariable("start_point")String start_point,@PathVariable("end_point")String end_point){
-        System.out.println("rec start_point: "+start_point+"  end_point: "+end_point);
-        HashMap<String,Object> hash = new HashMap<>();
-
-        hash.put("func","searchPath");
-        List<ReqEntity> list = new ArrayList<>();
-
-        hash.put("path",list);
-
-        String message = JSON.toJSONString(hash);
-        webSocketController.sendAllMessage(message);
-
-        return R.ok(hash);
-    }
-*/
     @PostMapping("/queryMeta")
     @Operation(summary = "鍏冧俊鎭煡璇�")
-    public R queryMeta(@Parameter String mid){
-        System.out.println("queryMeta ");
-        HashMap<String,Object> hash = new HashMap<>();
-        hash.put("func","queryMeta");
-        hash.put("mid",mid);
-        List<ReqEntity> list = new ArrayList<>();
+    public R queryMeta(@RequestParam Map<String, String> allParams) {
+        String mid = allParams.get("mid");
+        System.out.println("rec queryMeta:" + "  mid:" + mid);
+        if (mid == null) {
+            return R.error("鏁版嵁浼犻�掗敊璇�");
+        }
+        HashMap<String, Object> hash = xzService.getFuncMap("queryMeta", mid);
+//        缁熻鏌ヨ鎺ュ彛鎷兼帴
+        String filed = "sjnr";
+        String filedString= xzService.getQueryMeta(xzConfig.layerId, xzConfig.dbid,filed,xzConfig.queryEntity);
+        System.out.println("rec queryMeta:" + filedString);
+        JSONObject jsonObject = JSON.parseObject(filedString);
+        JSONArray dataArray = jsonObject.getJSONArray("data");
+        HashMap<String, Object> markMap = new HashMap<>();
+        JSONArray markArray = new JSONArray();
+        String markDown = "| 鏁版嵁绫诲瀷 | 鏁版嵁閲� |\\n|------|------|\\n";
+        for (int i = 0; i < dataArray.size(); i++) {
+            JSONObject dataObj = dataArray.getJSONObject(i);
+            System.out.println("rec queryMeta:" + dataObj);
+            String[] filedValue = new String[2];
 
-        hash.put("meta",list);
+            for (String key : dataObj.keySet()) {
+                if (key == filed) {
+                    filedValue[0] = dataObj.getString(key);
+                } else {
+                    filedValue[1] = dataObj.getString(key);
+                }
+            }
+            markDown += "| " + filedValue[0] + " | " + filedValue[1] + " |\n";
+        }
 
+        markMap.put("markdown", markDown);
+        markArray.add(markMap);
+        hash.put("markdown", markArray);
+        hash.put("content", "鍦扮悊瀹炰綋鏁版嵁搴�");
+        System.out.println("rec queryMeta:" + hash);
         String message = JSON.toJSONString(hash);
         webSocketController.sendAllMessage(message);
-
         return R.ok(hash);
     }
+
+
 }

--
Gitblit v1.9.3