From a0ae2cb2fe95630bb13795b94dd5f2cfadea7a97 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Sat, 07 Oct 2023 14:28:47 +0800
Subject: [PATCH] 高德地图api接口请求

---
 src/main/java/com/dji/sample/amap/controller/AmapController.java             |   23 +++++++++++
 src/main/java/com/dji/sample/amap/service/impl/AmapServiceImpl.java          |   58 +++++++++++++++++++++++++++++
 src/main/java/com/dji/sample/wayline/service/IWaylineRedisService.java       |    2 +
 src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java |    8 +++
 src/main/java/com/dji/sample/CloudApiSampleApplication.java                  |    7 +++
 src/main/java/com/dji/sample/amap/service/IAmapService.java                  |    5 ++
 src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java         |    3 +
 7 files changed, 105 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/dji/sample/CloudApiSampleApplication.java b/src/main/java/com/dji/sample/CloudApiSampleApplication.java
index a3619ab..4c1963c 100644
--- a/src/main/java/com/dji/sample/CloudApiSampleApplication.java
+++ b/src/main/java/com/dji/sample/CloudApiSampleApplication.java
@@ -3,7 +3,10 @@
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.client.RestTemplateBuilder;
+import org.springframework.context.annotation.Bean;
 import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.web.client.RestTemplate;
 
 @MapperScan("com.dji.sample.*.dao")
 @SpringBootApplication
@@ -15,4 +18,8 @@
 		SpringApplication.run(CloudApiSampleApplication.class, args);
 	}
 
+	@Bean
+	public RestTemplate restTemplate(RestTemplateBuilder builder){
+		return builder.build();
+	}
 }
diff --git a/src/main/java/com/dji/sample/amap/controller/AmapController.java b/src/main/java/com/dji/sample/amap/controller/AmapController.java
new file mode 100644
index 0000000..a98c378
--- /dev/null
+++ b/src/main/java/com/dji/sample/amap/controller/AmapController.java
@@ -0,0 +1,23 @@
+package com.dji.sample.amap.controller;
+
+import com.dji.sample.amap.service.IAmapService;
+import com.dji.sample.common.model.ResponseResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("map/amap")
+public class AmapController {
+
+    @Autowired
+    private IAmapService amapService;
+
+
+    @GetMapping("/searchByKeyword")
+    public ResponseResult searchByKeyword(String keyword) {
+        return ResponseResult.success(amapService.searchByKeyword(keyword));
+    }
+
+}
diff --git a/src/main/java/com/dji/sample/amap/service/IAmapService.java b/src/main/java/com/dji/sample/amap/service/IAmapService.java
new file mode 100644
index 0000000..a04b959
--- /dev/null
+++ b/src/main/java/com/dji/sample/amap/service/IAmapService.java
@@ -0,0 +1,5 @@
+package com.dji.sample.amap.service;
+
+public interface IAmapService {
+    Object searchByKeyword(String keyword);
+}
diff --git a/src/main/java/com/dji/sample/amap/service/impl/AmapServiceImpl.java b/src/main/java/com/dji/sample/amap/service/impl/AmapServiceImpl.java
new file mode 100644
index 0000000..149e03d
--- /dev/null
+++ b/src/main/java/com/dji/sample/amap/service/impl/AmapServiceImpl.java
@@ -0,0 +1,58 @@
+package com.dji.sample.amap.service.impl;
+
+import com.alibaba.druid.support.json.JSONUtils;
+import com.dji.sample.amap.service.IAmapService;
+import org.codehaus.jettison.json.JSONArray;
+import org.codehaus.jettison.json.JSONObject;
+import org.codehaus.jettison.json.JSONString;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+@Service
+public class AmapServiceImpl implements IAmapService {
+
+    private  final String AMAP_KEY = "6c3ea75b215f0c0efcbcfdf13273991b";
+    private  final String searchByKeywordUrl = "https://restapi.amap.com/v3/assistant/inputtips?&datatype=poi&key=" + AMAP_KEY + "&keywords=";
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    public Object searchByKeyword(String keyword) {
+
+        Object result = apiRequestResult(searchByKeywordUrl+keyword);
+
+
+        return result;
+    }
+
+    private Object apiRequestResult(String url) {
+        //设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        //封装请求头
+        HttpEntity<MultiValueMap<String, Object>> formEntity = new HttpEntity<MultiValueMap<String, Object>>(headers);
+        try {
+            //有请求头,有参数请求
+            ResponseEntity<String> responseEntity =
+                    restTemplate.exchange(url,
+                            HttpMethod.GET,
+                            formEntity,
+                            String.class);
+            String body = responseEntity.getBody();
+
+            Object parse = JSONUtils.parse(body);
+
+            // 返回
+            return parse;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}
diff --git a/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java b/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
index ec04134..ee4f8a6 100644
--- a/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
+++ b/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
@@ -44,6 +44,7 @@
 
     /**
      * Issue wayline mission to the dock.
+     * 向机场发出航线任务
      * @param param
      * @param customClaim   user info
      * @return
@@ -52,6 +53,7 @@
 
     /**
      * Issue wayline mission to the dock.
+     * 向机场添加航线任务指令
      * @param waylineJob
      * @return
      * @throws SQLException
@@ -60,6 +62,7 @@
 
     /**
      * Execute the task immediately.
+     * 执行立即任务
      * @param jobId
      * @throws SQLException
      * @return
diff --git a/src/main/java/com/dji/sample/wayline/service/IWaylineRedisService.java b/src/main/java/com/dji/sample/wayline/service/IWaylineRedisService.java
index 0f8408c..27c95ca 100644
--- a/src/main/java/com/dji/sample/wayline/service/IWaylineRedisService.java
+++ b/src/main/java/com/dji/sample/wayline/service/IWaylineRedisService.java
@@ -79,6 +79,7 @@
 
     /**
      * Save the conditional wayline job by the dock to redis.
+     * 将条件航线任务保存到redis中
      * @param waylineJob
      */
     void setConditionalWaylineJob(WaylineJobDTO waylineJob);
@@ -99,6 +100,7 @@
 
     /**
      * Add the wayline job that needs to be issued.
+     * 添加需要发布的航路线作业
      * @param waylineJob
      * @return
      */
diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
index a1ae787..6270787 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -179,6 +179,7 @@
                 }
                 WaylineJobDTO waylineJob = waylineJobOpt.get();
                 // If it is a conditional task type, add conditions to the job parameters.
+                //如果是条件任务类型,需要在任务参数中添加条件。
                 addPreparedJob(waylineJob, param, beginTime, endTime);
 
                 ResponseResult response = this.publishOneFlightTask(waylineJob);
@@ -208,7 +209,7 @@
         // value: {workspace_id}:{dock_sn}:{job_id}
         boolean isAdd = waylineRedisService.addPreparedWaylineJob(waylineJob);
         if (!isAdd) {
-            throw new RuntimeException("创建准备任务失败。");
+            throw new RuntimeException("创建任务失败。");
         }
     }
 
@@ -220,6 +221,7 @@
         }
 
         // Issue an immediate task execution command.
+        //发出立即任务执行命令
         if (WaylineTaskTypeEnum.IMMEDIATE == waylineJob.getTaskType()) {
             boolean isExecuted = executeFlightTask(waylineJob.getWorkspaceId(), waylineJob.getJobId());
             if (!isExecuted) {
@@ -244,6 +246,7 @@
         }
 
         // get file url
+        //获取航线文件地址
         URL url = waylineFileService.getObjectUrl(waylineJob.getWorkspaceId(), waylineFile.get().getWaylineId());
 
         WaylineTaskCreateDTO flightTask = WaylineTaskCreateDTO.builder()
@@ -259,6 +262,7 @@
                         .build())
                 .build();
 
+        //当任务类型为条件时
         if (WaylineTaskTypeEnum.CONDITION == waylineJob.getTaskType()) {
             if (Objects.isNull(waylineJob.getConditions())) {
                 throw new IllegalArgumentException();
@@ -267,10 +271,12 @@
             flightTask.setExecutableConditions(waylineJob.getConditions().getExecutableConditions());
         }
 
+        //发布飞行指令
         ServiceReply serviceReply = messageSender.publishServicesTopic(
                 waylineJob.getDockSn(), WaylineMethodEnum.FLIGHT_TASK_PREPARE.getMethod(), flightTask, waylineJob.getJobId());
         if (ResponseResult.CODE_SUCCESS != serviceReply.getResult()) {
             log.info("Prepare task ====> Error code: {}", serviceReply.getResult());
+            //飞行失败,更新数据库信息
             this.updateJob(WaylineJobDTO.builder()
                     .workspaceId(waylineJob.getWorkspaceId())
                     .jobId(waylineJob.getJobId())

--
Gitblit v1.9.3