| src/main/java/com/dji/sample/CloudApiSampleApplication.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/amap/controller/AmapController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/amap/service/IAmapService.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/amap/service/impl/AmapServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/wayline/service/IWaylineRedisService.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java | ●●●●● patch | view | raw | blame | history |
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(); } } src/main/java/com/dji/sample/amap/controller/AmapController.java
New file @@ -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)); } } src/main/java/com/dji/sample/amap/service/IAmapService.java
New file @@ -0,0 +1,5 @@ package com.dji.sample.amap.service; public interface IAmapService { Object searchByKeyword(String keyword); } src/main/java/com/dji/sample/amap/service/impl/AmapServiceImpl.java
New file @@ -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; } } 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 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 */ 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())