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.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @Tag(name = "新智接口") @RestController @RequestMapping("/api/v1") public class XzController { @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 JSONObject jsonObject; @PostMapping("/poiMap") @Operation(summary = "显示地点") public R poiMap(@Parameter String place, @Parameter String mid) throws Exception { System.out.println("rec message:" + place + " mid:" + mid); HashMap hash = new HashMap<>(); hash.put("func", "poiMap"); hash.put("mid", mid); ReqEntity reqEntity = new ReqEntity(); 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"); JSONObject item = dataArray.getJSONObject(0); reqEntity.setX(item.getString("lon")); reqEntity.setY(item.getString("lat")); System.out.print(item); reqEntity.setPlace(item.getString("enti_name")); hash.put("poi", reqEntity); return R.ok(hash); } //获取秘钥接口 public String getPublickey() { HashMap map = new HashMap<>(); map.put("token", token); String jsonString = entityHttpUtil.getPostMessage(publickey, map); JSONObject jsonObject = JSON.parseObject(jsonString); return jsonObject.getString("data"); } @PostMapping("/aroundPoi") @Operation(summary = "周边查询") public R aroundPoi(@RequestBody ReqEntity reqEntity) { System.out.println("rec message:" + reqEntity); HashMap hash = new HashMap<>(); hash.put("func", "aroundPoi"); hash.put("mid", "mid"); List 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 hash = new HashMap<>(); hash.put("func","searchPath"); List 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 hash = new HashMap<>(); hash.put("func", "queryMeta"); hash.put("mid", mid); List list = new ArrayList<>(); hash.put("meta", list); String message = JSON.toJSONString(hash); webSocketController.sendAllMessage(message); return R.ok(hash); } }