suerprisePlus
2024-09-03 2e9e03c7971f1da71cc9e9bd7d2f159c244839f3
代码优化
已添加5个文件
已修改7个文件
703 ■■■■ 文件已修改
src/main/java/com/yb/config/XzConfig.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yb/controller/XzController.java 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yb/controller/XzController2.java 309 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yb/helper/RsaHelper.java 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yb/service/XzService.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
target/classes/com/yb/config/XzConfig.class 补丁 | 查看 | 原始文档 | blame | 历史
target/classes/com/yb/controller/XzController.class 补丁 | 查看 | 原始文档 | blame | 历史
target/classes/com/yb/service/XzService.class 补丁 | 查看 | 原始文档 | blame | 历史
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
target/ollama-ai-0.0.1-SNAPSHOT.jar 补丁 | 查看 | 原始文档 | blame | 历史
target/ollama-ai-0.0.1-SNAPSHOT.jar.original 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yb/config/XzConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.yb.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class XzConfig {
    @Value("${spring.geographical.canview}")
   public String canview;
    @Value("${spring.geographical.entityName}")
    public String entityName;
    @Value("${spring.geographical.dbid}")
    public String dbid;
    @Value("${spring.geographical.layerId}")
    public String layerId;
    @Value("${spring.geographical.queryEntity}")
    public String queryEntity;
    @Value("${spring.geographical.publickey}")
    public String publickey;
    @Value("${spring.geographical.token}")
    public String token;
}
src/main/java/com/yb/controller/XzController.java
@@ -1,26 +1,16 @@
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.helper.RsaHelper;
import com.yb.util.EntityHttpUtil;
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.locationtech.jts.geom.*;
import org.locationtech.jts.io.WKTWriter;
import org.locationtech.jts.operation.buffer.BufferOp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.stringtemplate.v4.ST;
import java.util.*;
@@ -32,42 +22,27 @@
    @Autowired
    WebSocketController webSocketController;
    @Autowired
    private EntityHttpUtil entityHttpUtil;
    @Value("${spring.geographical.canview}")
    String canview;
    @Value("${spring.geographical.entityName}")
    String entityName;
    @Value("${spring.geographical.dbid}")
    String dbid;
    @Value("${spring.geographical.layerId}")
    String layerId;
    @Value("${spring.geographical.queryEntity}")
    String queryEntity;
    @Value("${spring.geographical.publickey}")
    String publickey;
    @Value("${spring.geographical.token}")
    String token;
    private XzService xzService;
    @Autowired
    private XzConfig xzConfig;
    @PostMapping("/poiMap")
    @Operation(summary = "显示地点")
    public R poiMap(@RequestParam Map<String, String> allParams) throws Exception {
        String place = allParams.get("place");
        String mid = allParams.get("mid");
        System.out.println("rec poiMap:" + place + "  mid:" + mid);
        if (place == null || mid == null) {
            return R.error("数据传递错误");
        }
        HashMap<String, Object> hash = new HashMap<>();
        hash.put("func", "poiMap");
        hash.put("mid", mid);
        HashMap<String, Object> hash = xzService.getFuncMap("poiMap", mid);
        ReqEntity reqEntity = new ReqEntity();
        String item = getQueryFiled(place);
        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("enti_name"));
        System.out.println("rec poiMap:" + reqEntity);
        reqEntity.setPlace(obj.getString(filed));
        hash.put("poi", reqEntity);
        String message = JSON.toJSONString(hash);
        webSocketController.sendAllMessage(message);
@@ -77,7 +52,6 @@
    @PostMapping("/aroundPoi")
    @Operation(summary = "周边属性查询")
    public R aroundPoi(@RequestParam Map<String, String> allParams) throws Exception {
        System.out.println("rec aroundPoi:" + allParams);
        String place = allParams.get("place");
        String mid = allParams.get("mid");
        String type = allParams.get("type");
@@ -86,22 +60,19 @@
        if(dis != null){
            radius= Integer.parseInt(dis);
        }
//        int radius = Integer.parseInt();
        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 = new HashMap<>();
        hash.put("func", "aroundPoi");
        hash.put("mid", mid);
        System.out.println("rec aroundPoi:" + place + "  mid:" + mid + "  type:" + type + "  radius:" + radius);
        String item = getQueryFiled(place);
        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 = getWKt(lon, lat, radius);
        String itemList = getQueryAround(type, wkt);
//        System.out.print("ces: "+itemList);
        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++) {
@@ -111,7 +82,7 @@
                ReqEntity reqEntity = new ReqEntity();
                reqEntity.setX(jsonObject.getString("lon"));
                reqEntity.setY(jsonObject.getString("lat"));
                reqEntity.setPlace(jsonObject.getString("enti_name"));
                reqEntity.setPlace(jsonObject.getString(filed));
                arrayList.add(reqEntity);
            }
        }
@@ -130,21 +101,10 @@
        if (mid == null) {
            return R.error("数据传递错误");
        }
        HashMap<String, Object> hash = new HashMap<>();
        hash.put("func", "queryMeta");
        hash.put("mid", mid);
        HashMap<String, Object> hash = xzService.getFuncMap("queryMeta", mid);
//        ç»Ÿè®¡æŸ¥è¯¢æŽ¥å£æ‹¼æŽ¥
        JSONArray jsonArray = new JSONArray();
        HashMap<String, Object> staticField = new HashMap<>();
        String filed = "sjnr";
        staticField.put("type", "count");
        staticField.put("field", "sjnr");
        staticField.put("outfield", "count_" + filed);
        jsonArray.add(staticField);
        HashMap<String, String> formData = getHashMap();
        formData.put("statistics", jsonArray.toString());
        formData.put("groupby", filed);
        String filedString = entityHttpUtil.getPostMessage(queryEntity, formData);
        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");
@@ -176,140 +136,5 @@
        return R.ok(hash);
    }
    public HashMap getHashMap() {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("token", token);
        hashMap.put("containCount", "true");
        hashMap.put("layerid", layerId);
        hashMap.put("dbid", dbid);
        return hashMap;
    }
    public String getWKt(double lon, double lat, int radius) {
        // åˆ›å»ºä¸€ä¸ªåæ ‡ç‚¹
        Coordinate coord = new Coordinate(lon, lat);
        // åˆ›å»ºGeometryFactory实例,并指定坐标参考系统为WGS84
        GeometryFactory geometryFactory = new GeometryFactory(new PrecisionModel(), 4326);
        // ä½¿ç”¨åæ ‡åˆ›å»ºä¸€ä¸ªç‚¹
        Point point = geometryFactory.createPoint(coord);
        // åˆ›å»ºBufferOp实例,用于生成缓冲区
        BufferOp bufferOp = new BufferOp(point);
        int dis = 500;
        if (radius != 0) {
            dis = radius;
        }
        // è®¾ç½®ç¼“冲区距离为500ç±³
        Geometry bufferedGeometry = bufferOp.getResultGeometry(dis);
        // åˆ›å»ºWKTWriter实例,用于将Geometry转换为WKT格式
//        WKTWriter wktWriter = new WKTWriter();
        // å°†ç¼“冲区Geometry转换为WKT格式
//        String wkt = wktWriter.write(bufferedGeometry);
        // è¾“出WKT
//        System.out.println("WKT: " + wkt);
        Envelope envelope = bufferedGeometry.getEnvelopeInternal();
        double[] wkt = new double[4];
        wkt[0] = envelope.getMinX();
        wkt[1] = envelope.getMinY();
        wkt[2] = envelope.getMaxX();
        wkt[3] = envelope.getMaxY();
        String arrayAsString = Arrays.toString(wkt);
        System.out.println("arrayAsString: " + arrayAsString);
        return arrayAsString;
    }
    public String getQueryAround(String type, String wkt) throws Exception {
        String query = "sjnr  like '%" + type + "%'" + "";
        String key = getPublickey();
        String encrypt = RsaHelper.encrypt(key, query);
        HashMap formData = getHashMap();
        formData.put("start", "1");
        formData.put("count", "0");
        formData.put("where", encrypt);
        formData.put("box", wkt);
        String jsonString = entityHttpUtil.getPostMessage(queryEntity, formData);
        JSONObject jsonObject = JSON.parseObject(jsonString);
        JSONObject dataObjject = jsonObject.getJSONObject("data");
        JSONArray dataArray = dataObjject.getJSONArray("items");
        return dataArray.toString();
    }
    //关键字查询
    public String getQueryFiled(String place) throws Exception {
        String query = "enti_name like '%" + place + "%'" + "";
        String key = getPublickey();
        String encrypt = RsaHelper.encrypt(key, query);
        HashMap formData = getHashMap();
        formData.put("start", "1");
        formData.put("count", "0");
        formData.put("where", encrypt);
        String jsonString = entityHttpUtil.getPostMessage(queryEntity, formData);
        JSONObject jsonObject = JSON.parseObject(jsonString);
        JSONObject dataObjject = jsonObject.getJSONObject("data");
        JSONArray dataArray = dataObjject.getJSONArray("items");
        return dataArray.getJSONObject(0).toString();
    }
    //获取秘钥接口
    public String getPublickey() {
        HashMap<String, String> map = new HashMap<>();
        map.put("token", token);
        String jsonString = entityHttpUtil.getPostMessage(publickey, map);
        JSONObject jsonObject = JSON.parseObject(jsonString);
        return jsonObject.getString("data");
    }
    @PostMapping("/aroundPoi2")
    @Operation(summary = "周边查询")
    public R aroundPoi2(@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);
        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("/queryMeta2")
    @Operation(summary = "元信息查询")
    public R queryMeta2(@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<>();
        hash.put("meta", list);
        String message = JSON.toJSONString(hash);
        webSocketController.sendAllMessage(message);
        return R.ok(hash);
    }
}
src/main/java/com/yb/controller/XzController2.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,309 @@
//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.entity.ReqEntity;
//import com.yb.helper.RsaHelper;
//import com.yb.util.EntityHttpUtil;
//import io.swagger.v3.oas.annotations.Operation;
//import io.swagger.v3.oas.annotations.Parameter;
//import io.swagger.v3.oas.annotations.tags.Tag;
//import org.locationtech.jts.geom.*;
//import org.locationtech.jts.operation.buffer.BufferOp;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.*;
//
//
//@Tag(name = "新智接口")
//@RestController
//@RequestMapping("/api/v1")
//public class XzController2 {
//    @Autowired
//    WebSocketController webSocketController;
//    @Autowired
//    private EntityHttpUtil entityHttpUtil;
//    @Value("${spring.geographical.canview}")
//    String canview;
//    @Value("${spring.geographical.entityName}")
//    String entityName;
//    @Value("${spring.geographical.dbid}")
//    String dbid;
//    @Value("${spring.geographical.layerId}")
//    String layerId;
//    @Value("${spring.geographical.queryEntity}")
//    String queryEntity;
//    @Value("${spring.geographical.publickey}")
//    String publickey;
//    @Value("${spring.geographical.token}")
//    String token;
//
//
//    @PostMapping("/poiMap")
//    @Operation(summary = "显示地点")
//    public R poiMap(@RequestParam Map<String, String> allParams) throws Exception {
//        String place = allParams.get("place");
//        String mid = allParams.get("mid");
//        System.out.println("rec poiMap:" + place + "  mid:" + mid);
//        if (place == null || mid == null) {
//            return R.error("数据传递错误");
//        }
//        HashMap<String, Object> hash = new HashMap<>();
//        hash.put("func", "poiMap");
//        hash.put("mid", mid);
//        ReqEntity reqEntity = new ReqEntity();
//        String item = getQueryFiled(place);
//        JSONObject obj = JSONObject.parseObject(item);
//        reqEntity.setX(obj.getString("lon"));
//        reqEntity.setY(obj.getString("lat"));
//        reqEntity.setPlace(obj.getString("enti_name"));
//        System.out.println("rec poiMap:" + reqEntity);
//        hash.put("poi", reqEntity);
//        String message = JSON.toJSONString(hash);
//        webSocketController.sendAllMessage(message);
//        return R.ok(hash);
//    }
//
//    @PostMapping("/aroundPoi")
//    @Operation(summary = "周边属性查询")
//    public R aroundPoi(@RequestParam Map<String, String> allParams) throws Exception {
//        System.out.println("rec aroundPoi:" + allParams);
//        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);
//        }
////        int radius = Integer.parseInt();
//        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 = new HashMap<>();
//        hash.put("func", "aroundPoi");
//        hash.put("mid", mid);
//        System.out.println("rec aroundPoi:" + place + "  mid:" + mid + "  type:" + type + "  radius:" + radius);
//        String item = getQueryFiled(place);
//        JSONObject obj = JSONObject.parseObject(item);
//        Double lon = Double.parseDouble(obj.getString("lon"));
//        Double lat = Double.parseDouble(obj.getString("lat"));
//        String wkt = getWKt(lon, lat, radius);
//        String itemList = getQueryAround(type, wkt);
////        System.out.print("ces: "+itemList);
//        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("enti_name"));
//                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);
//    }
//
//    @PostMapping("/queryMeta")
//    @Operation(summary = "元信息查询")
//    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 = new HashMap<>();
//        hash.put("func", "queryMeta");
//        hash.put("mid", mid);
////        ç»Ÿè®¡æŸ¥è¯¢æŽ¥å£æ‹¼æŽ¥
//        JSONArray jsonArray = new JSONArray();
//        HashMap<String, Object> staticField = new HashMap<>();
//        String filed = "sjnr";
//        staticField.put("type", "count");
//        staticField.put("field", "sjnr");
//        staticField.put("outfield", "count_" + filed);
//        jsonArray.add(staticField);
//        HashMap<String, String> formData = getHashMap();
//        formData.put("statistics", jsonArray.toString());
//        formData.put("groupby", filed);
//        String filedString = entityHttpUtil.getPostMessage(queryEntity, formData);
//        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];
//
//            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);
//    }
//
//    public HashMap getHashMap() {
//        HashMap<String, String> hashMap = new HashMap<>();
//        hashMap.put("token", token);
//        hashMap.put("containCount", "true");
//        hashMap.put("layerid", layerId);
//        hashMap.put("dbid", dbid);
//        return hashMap;
//    }
//
//    public String getWKt(double lon, double lat, int radius) {
//        // åˆ›å»ºä¸€ä¸ªåæ ‡ç‚¹
//        Coordinate coord = new Coordinate(lon, lat);
//        // åˆ›å»ºGeometryFactory实例,并指定坐标参考系统为WGS84
//        GeometryFactory geometryFactory = new GeometryFactory(new PrecisionModel(), 4326);
//        // ä½¿ç”¨åæ ‡åˆ›å»ºä¸€ä¸ªç‚¹
//        Point point = geometryFactory.createPoint(coord);
//        // åˆ›å»ºBufferOp实例,用于生成缓冲区
//        BufferOp bufferOp = new BufferOp(point);
//        int dis = 500;
//        if (radius != 0) {
//            dis = radius;
//        }
//        // è®¾ç½®ç¼“冲区距离为500ç±³
//        Geometry bufferedGeometry = bufferOp.getResultGeometry(dis);
//        // åˆ›å»ºWKTWriter实例,用于将Geometry转换为WKT格式
////        WKTWriter wktWriter = new WKTWriter();
//
//        // å°†ç¼“冲区Geometry转换为WKT格式
////        String wkt = wktWriter.write(bufferedGeometry);
//        // è¾“出WKT
////        System.out.println("WKT: " + wkt);
//        Envelope envelope = bufferedGeometry.getEnvelopeInternal();
//        double[] wkt = new double[4];
//        wkt[0] = envelope.getMinX();
//        wkt[1] = envelope.getMinY();
//        wkt[2] = envelope.getMaxX();
//        wkt[3] = envelope.getMaxY();
//        String arrayAsString = Arrays.toString(wkt);
//        System.out.println("arrayAsString: " + arrayAsString);
//        return arrayAsString;
//    }
//
//    public String getQueryAround(String type, String wkt) throws Exception {
//        String query = "sjnr  like '%" + type + "%'" + "";
//        String key = getPublickey();
//        String encrypt = RsaHelper.encrypt(key, query);
//        HashMap formData = getHashMap();
//        formData.put("start", "1");
//        formData.put("count", "0");
//        formData.put("where", encrypt);
//        formData.put("box", wkt);
//        String jsonString = entityHttpUtil.getPostMessage(queryEntity, formData);
//        JSONObject jsonObject = JSON.parseObject(jsonString);
//        JSONObject dataObjject = jsonObject.getJSONObject("data");
//        JSONArray dataArray = dataObjject.getJSONArray("items");
//        return dataArray.toString();
//    }
//
//    //关键字查询
//    public String getQueryFiled(String place) throws Exception {
//        String query = "enti_name like '%" + place + "%'" + "";
//        String key = getPublickey();
//        String encrypt = RsaHelper.encrypt(key, query);
//        HashMap formData = getHashMap();
//        formData.put("start", "1");
//        formData.put("count", "0");
//        formData.put("where", encrypt);
//        String jsonString = entityHttpUtil.getPostMessage(queryEntity, formData);
//        JSONObject jsonObject = JSON.parseObject(jsonString);
//        JSONObject dataObjject = jsonObject.getJSONObject("data");
//        JSONArray dataArray = dataObjject.getJSONArray("items");
//        return dataArray.getJSONObject(0).toString();
//    }
//
//    //获取秘钥接口
//    public String getPublickey() {
//        HashMap<String, String> map = new HashMap<>();
//        map.put("token", token);
//        String jsonString = entityHttpUtil.getPostMessage(publickey, map);
//        JSONObject jsonObject = JSON.parseObject(jsonString);
//        return jsonObject.getString("data");
//    }
//
//
//    @PostMapping("/aroundPoi2")
//    @Operation(summary = "周边查询")
//    public R aroundPoi2(@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);
//
//        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("/queryMeta2")
//    @Operation(summary = "元信息查询")
//    public R queryMeta2(@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<>();
//        hash.put("meta", list);
//        String message = JSON.toJSONString(hash);
//        webSocketController.sendAllMessage(message);
//
//        return R.ok(hash);
//    }
//}
src/main/java/com/yb/helper/RsaHelper.java
src/main/java/com/yb/service/XzService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,143 @@
package com.yb.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yb.config.XzConfig;
import com.yb.helper.RsaHelper;
import com.yb.util.EntityHttpUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.locationtech.jts.geom.*;
import org.locationtech.jts.operation.buffer.BufferOp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.HashMap;
@Service
public class XzService {
    @Autowired
    private XzConfig xzConfig;
    @Autowired
    private EntityHttpUtil entityHttpUtil;
    // å…³é”®å­—查询
    public String getQueryFiled(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception {
        String query = filed + " like '%" + place + "%'" + "";
        String key = getPublickey();
        String encrypt = RsaHelper.encrypt(key, query);
        HashMap formData = getHashMap(layerId, dbId, "1", "0", encrypt, null);
        String jsonString = entityHttpUtil.getPostMessage(queryEntity, formData);
        JSONObject jsonObject = JSON.parseObject(jsonString);
        JSONObject dataObjject = jsonObject.getJSONObject("data");
        JSONArray dataArray = dataObjject.getJSONArray("items");
        return dataArray.getJSONObject(0).toString();
    }
    //  èŒƒå›´æŸ¥è¯¢
    public String getQueryAround(String type, String wkt, String filed, String layerId, String dbid, String entity) throws Exception {
        String query = filed + " like '%" + type + "%'" + "";
        String encrypt = RsaHelper.encrypt(getPublickey(), query);
        HashMap formData = getHashMap(layerId, dbid, "1", "0", encrypt, wkt);
        String jsonString = entityHttpUtil.getPostMessage(entity, formData);
        JSONObject jsonObject = JSON.parseObject(jsonString);
        JSONObject dataObj = jsonObject.getJSONObject("data");
        JSONArray dataArray = dataObj.getJSONArray("items");
        return dataArray.toString();
    }
    //元信息查询
    public String getQueryMeta(String layerId, String dbid, String filed, String entity) {
        HashMap<String, Object> staticField = new HashMap<>();
        JSONArray jsonArray = new JSONArray();
        staticField.put("type", "count");
        staticField.put("field", filed);
        staticField.put("outfield", "count_" + filed);
        jsonArray.add(staticField);
        HashMap<String, String> formData = getHashMap(layerId,dbid,null,null,null,null);
        formData.put("statistics", jsonArray.toString());
        formData.put("groupby", filed);
       return  entityHttpUtil.getPostMessage(entity, formData);
    }
    // èŽ·å–è¿”å›žä¿¡æ¯Map
    public HashMap<String, Object> getFuncMap(String func, String mid) {
        HashMap<String, Object> hash = new HashMap<String, Object>();
        hash.put("func", func);
        hash.put("mid", mid);
        return hash;
    }
    //获取秘钥接口
    public String getPublickey() {
        HashMap<String, String> map = new HashMap<>();
        map.put("token", xzConfig.token);
        String jsonString = entityHttpUtil.getPostMessage(xzConfig.publickey, map);
        JSONObject jsonObject = JSON.parseObject(jsonString);
        return jsonObject.getString("data");
    }
    // ä¼ å‚
    public HashMap<String, String> getHashMap(String layerId, String dbid, String start, String count, String where, String box) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("token", xzConfig.token);
        hashMap.put("containCount", "true");
        hashMap.put("layerid", layerId);
        hashMap.put("dbid", dbid);
        if (start != null && start != "") {
            hashMap.put("start", start);
        }
        if (count != null && count != "") {
            hashMap.put("count", count);
        }
        if (where != null && where != "") {
            hashMap.put("where", where);
        }
        if (box != null && box != "") {
            hashMap.put("box", box);
        }
        return hashMap;
    }
    //生成WKT
    public String getWKt(double lon, double lat, int radius) {
        // åˆ›å»ºä¸€ä¸ªåæ ‡ç‚¹
        Coordinate coord = new Coordinate(lon, lat);
        // åˆ›å»ºGeometryFactory实例,并指定坐标参考系统为WGS84
        GeometryFactory geometryFactory = new GeometryFactory(new PrecisionModel(), 4326);
        // ä½¿ç”¨åæ ‡åˆ›å»ºä¸€ä¸ªç‚¹
        Point point = geometryFactory.createPoint(coord);
        // åˆ›å»ºBufferOp实例,用于生成缓冲区
        BufferOp bufferOp = new BufferOp(point);
        int dis = 500;
        if (radius != 0) {
            dis = radius;
        }
        // è®¾ç½®ç¼“冲区距离为500ç±³
        Geometry bufferedGeometry = bufferOp.getResultGeometry(dis / 111319.9);
        // åˆ›å»ºWKTWriter实例,用于将Geometry转换为WKT格式
//        WKTWriter wktWriter = new WKTWriter();
        // å°†ç¼“冲区Geometry转换为WKT格式
//        String wkt = wktWriter.write(bufferedGeometry);
        // è¾“出WKT
//        System.out.println("WKT: " + wkt);
        Envelope envelope = bufferedGeometry.getEnvelopeInternal();
        double[] wkt = new double[4];
        wkt[0] = envelope.getMinX();
        wkt[1] = envelope.getMinY();
        wkt[2] = envelope.getMaxX();
        wkt[3] = envelope.getMaxY();
        String arrayAsString = Arrays.toString(wkt);
        System.out.println("arrayAsString: " + arrayAsString);
        return arrayAsString;
    }
}
target/classes/com/yb/config/XzConfig.class
Binary files differ
target/classes/com/yb/controller/XzController.class
Binary files differ
target/classes/com/yb/service/XzService.class
Binary files differ
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -1,8 +1,10 @@
com\yb\controller\WebSocketController.class
com\yb\message\WebsocketConfiguration.class
com\yb\config\XzConfig.class
com\yb\util\EntityHttpUtil.class
com\yb\OllamaAiApplication.class
com\yb\entity\ResponseEntity.class
com\yb\service\XzService.class
com\yb\entity\ReqEntity.class
com\yb\helper\RsaHelper.class
com\yb\util\OkHttpUtil.class
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,12 +1,15 @@
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\entity\ReqEntity.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\controller\WebSocketController.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\util\EntityHttpUtil.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\service\XzService.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\message\WebSocketStompConfig.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\OllamaAiApplication.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\config\XzConfig.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\util\OkHttpUtil.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\controller\XzController.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\helper\RsaHelper.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\message\WebSocketServer.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\config\R.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\entity\ResponseEntity.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\message\WebsocketConfiguration.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\entity\ReqEntity.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\util\EntityHttpUtil.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\controller\XzController2.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\OllamaAiApplication.java
E:\project\AI大模型\新智对接\ollama_ai\src\main\java\com\yb\controller\XzController.java
target/ollama-ai-0.0.1-SNAPSHOT.jar
Binary files differ
target/ollama-ai-0.0.1-SNAPSHOT.jar.original
Binary files differ