From 51dbb0826a63eb15f46cdd06a70d470ac7937ce4 Mon Sep 17 00:00:00 2001 From: topsun Date: Thu, 11 May 2023 10:51:24 +0800 Subject: [PATCH] =?UTF-8?q?service-map=E8=BD=A8=E8=BF=B9=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internal/contant/AmapConfigConstant.java | 4 ++ .../java/com/internal/request/PointDTO.java | 12 ++++ .../com/internal/request/PointRequest.java | 11 +++ .../controller/PointController.java | 24 +++++++ .../taxi/servicemap/remote/PointClient.java | 71 +++++++++++++++++++ .../taxi/servicemap/service/PointService.java | 18 +++++ 6 files changed, 140 insertions(+) create mode 100644 online-taxi-public/internal-common/src/main/java/com/internal/request/PointDTO.java create mode 100644 online-taxi-public/internal-common/src/main/java/com/internal/request/PointRequest.java create mode 100644 online-taxi-public/service-map/src/main/java/com/taxi/servicemap/controller/PointController.java create mode 100644 online-taxi-public/service-map/src/main/java/com/taxi/servicemap/remote/PointClient.java create mode 100644 online-taxi-public/service-map/src/main/java/com/taxi/servicemap/service/PointService.java diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/contant/AmapConfigConstant.java b/online-taxi-public/internal-common/src/main/java/com/internal/contant/AmapConfigConstant.java index 4e1f318..47ce5df 100644 --- a/online-taxi-public/internal-common/src/main/java/com/internal/contant/AmapConfigConstant.java +++ b/online-taxi-public/internal-common/src/main/java/com/internal/contant/AmapConfigConstant.java @@ -28,4 +28,8 @@ public class AmapConfigConstant { * 创建轨迹 */ public static final String TRACK_MAP_ADD_URL = "https://tsapi.amap.com/v1/track/trace/add"; + /** + * 轨迹点上传 + */ + public static final String POINT_UPLOAD_MAP_ADD_URL = "https://tsapi.amap.com/v1/track/point/upload"; } diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/request/PointDTO.java b/online-taxi-public/internal-common/src/main/java/com/internal/request/PointDTO.java new file mode 100644 index 0000000..65febc7 --- /dev/null +++ b/online-taxi-public/internal-common/src/main/java/com/internal/request/PointDTO.java @@ -0,0 +1,12 @@ +package com.internal.request; + +import lombok.Data; + +import java.time.LocalDateTime; + + +@Data +public class PointDTO { + private String location; + private String locatetime; +} diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/request/PointRequest.java b/online-taxi-public/internal-common/src/main/java/com/internal/request/PointRequest.java new file mode 100644 index 0000000..c5dbb81 --- /dev/null +++ b/online-taxi-public/internal-common/src/main/java/com/internal/request/PointRequest.java @@ -0,0 +1,11 @@ +package com.internal.request; + +import lombok.Data; + +@Data +public class PointRequest { + + private String tid; + private String trid; + private PointDTO[] points; +} diff --git a/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/controller/PointController.java b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/controller/PointController.java new file mode 100644 index 0000000..66214c8 --- /dev/null +++ b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/controller/PointController.java @@ -0,0 +1,24 @@ +package com.taxi.servicemap.controller; + +import com.internal.dto.ResponseResult; +import com.internal.request.PointRequest; +import com.taxi.servicemap.service.PointService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/point") +public class PointController { + + @Autowired + private PointService pointService; + + @PostMapping("/upload") + public ResponseResult pointUpload(@RequestBody PointRequest pointRequest){ + + return pointService.pointUpload(pointRequest); + } +} diff --git a/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/remote/PointClient.java b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/remote/PointClient.java new file mode 100644 index 0000000..9ebb8c2 --- /dev/null +++ b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/remote/PointClient.java @@ -0,0 +1,71 @@ +package com.taxi.servicemap.remote; + +import com.internal.contant.AmapConfigConstant; +import com.internal.dto.ResponseResult; +import com.internal.dto.TrackResponse; +import com.internal.request.PointDTO; +import com.internal.request.PointRequest; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.client.RestTemplate; + +import java.net.URI; +import java.util.HashMap; + +@Service +public class PointClient { + @Value("${amap.key}") + private String amapKey; + + @Value("${amap.sid}") + private String sid; + + @Autowired + private RestTemplate restTemplate; + + public ResponseResult pointUpload(@RequestBody PointRequest pointRequest){ + + //拼接请求的URL + StringBuilder url = new StringBuilder(); + url.append(AmapConfigConstant.POINT_UPLOAD_MAP_ADD_URL); + url.append("?"); + url.append("key="+amapKey); + url.append("&"); + url.append("sid="+sid); + url.append("&"); + url.append("tid="+pointRequest.getTid()); + url.append("&"); + url.append("trid="+pointRequest.getTrid()); + PointDTO[] arryPoint = pointRequest.getPoints(); + String arryPointJSON = JSONArray.fromObject(arryPoint).toString(); + System.out.println(arryPointJSON); + /** + * { + * "data": { + * "errorpoints": [] + * }, + * "errcode": 10000, + * "errdetail": null, + * "errmsg": "OK" + * } + */ + HashMap params = new HashMap<>(); + params.put("points",arryPoint); + HttpHeaders headers = new HttpHeaders(); + //设置访问的Entity + HttpEntity requestEntity = new HttpEntity<>(params, headers);//params 请求体内容, headers请求头内容 + System.out.println("高德地图请求:"+url.toString()); + JSONObject jsonObject = + restTemplate.postForObject(url.toString(),requestEntity,JSONObject.class); + System.out.println("高德地图相应:"+jsonObject); + return ResponseResult.success(); + } + +} diff --git a/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/service/PointService.java b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/service/PointService.java new file mode 100644 index 0000000..cda93ae --- /dev/null +++ b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/service/PointService.java @@ -0,0 +1,18 @@ +package com.taxi.servicemap.service; + +import com.internal.dto.ResponseResult; +import com.internal.request.PointRequest; +import com.taxi.servicemap.remote.PointClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestBody; + +@Service +public class PointService { + @Autowired + private PointClient pointClient; + + public ResponseResult pointUpload(@RequestBody PointRequest pointRequest){ + return pointClient.pointUpload(pointRequest); + } +}