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 | 270 +++++++++++------------------------------------------ 1 files changed, 56 insertions(+), 214 deletions(-) diff --git a/src/main/java/com/yb/controller/XzController.java b/src/main/java/com/yb/controller/XzController.java index 2730ab9..ea07b17 100644 --- a/src/main/java/com/yb/controller/XzController.java +++ b/src/main/java/com/yb/controller/XzController.java @@ -1,31 +1,18 @@ 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.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; +import java.util.*; @Tag(name = "鏂版櫤鎺ュ彛") @@ -35,37 +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(@Parameter String place, @Parameter String mid) throws Exception { - 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(); - 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 message:" + reqEntity); + reqEntity.setPlace(obj.getString(filed)); hash.put("poi", reqEntity); String message = JSON.toJSONString(hash); webSocketController.sendAllMessage(message); @@ -74,18 +51,28 @@ @PostMapping("/aroundPoi") @Operation(summary = "鍛ㄨ竟灞炴�ф煡璇�") - public R aroundPoi(@Parameter String place, @Parameter String mid, @Parameter String type, @Parameter int radius) throws Exception { - System.out.println("rec message:" + place + " mid:" + mid + " type:" + type + " radius:" + radius); - HashMap<String, Object> hash = new HashMap<>(); - hash.put("func", "aroundPoi"); - hash.put("mid", mid); - String item = getQueryFiled(place); + 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 = 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++) { @@ -95,11 +82,11 @@ 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); } } - System.out.println("rec message:" + arrayList); + System.out.println("rec aroundPoi:" + arrayList); hash.put("poi", arrayList); String message = JSON.toJSONString(hash); webSocketController.sendAllMessage(message); @@ -108,191 +95,46 @@ @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); + 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); // 缁熻鏌ヨ鎺ュ彛鎷兼帴 - 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 = new HashMap<>(); - formData.put("token", token); - formData.put("containCount", "true"); - formData.put("layerid", layerId); - formData.put("dbid", dbid); - formData.put("statistics", jsonArray.toString()); - formData.put("groupby", filed); - String filedString = entityHttpUtil.getPostMessage(queryEntity, formData); - System.out.println("rec message:" + filedString); + 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(); + 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 message:" + dataObj); + System.out.println("rec queryMeta:" + dataObj); String[] filedValue = new String[2]; for (String key : dataObj.keySet()) { if (key == filed) { - filedValue[0]= dataObj.getString(key); + filedValue[0] = dataObj.getString(key); } else { - filedValue[1]= dataObj.getString(key); + filedValue[1] = dataObj.getString(key); } } - markDown+="| "+ filedValue[0]+" | "+filedValue[1]+" |\n"; + markDown += "| " + filedValue[0] + " | " + filedValue[1] + " |\n"; } - markMap.put("markdown",markDown); + markMap.put("markdown", markDown); markArray.add(markMap); - hash.put("markdown",markArray); - hash.put("content","鍦扮悊瀹炰綋鏁版嵁搴�"); - System.out.println("rec message:" + hash); + 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 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杞崲涓篧KT鏍煎紡 -// WKTWriter wktWriter = new WKTWriter(); - // 灏嗙紦鍐插尯Geometry杞崲涓篧KT鏍煎紡 -// 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 = new HashMap<>(); - formData.put("token", token); - formData.put("start", "1"); - formData.put("count", "0"); - formData.put("containCount", "true"); - formData.put("layerid", layerId); - formData.put("dbid", dbid); - 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 = new HashMap<>(); - formData.put("token", token); - formData.put("start", "1"); - formData.put("count", "0"); - formData.put("containCount", "true"); - formData.put("layerid", layerId); - formData.put("dbid", dbid); - 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); - } } -- Gitblit v1.9.3