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 e18cfb9..4e1f318 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 @@ -24,4 +24,8 @@ public class AmapConfigConstant { * 创建终端 */ public static final String TERMINAL_MAP_ADD_URL = "https://tsapi.amap.com/v1/track/terminal/add"; + /** + * 创建轨迹 + */ + public static final String TRACK_MAP_ADD_URL = "https://tsapi.amap.com/v1/track/trace/add"; } diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/dto/TrackResponse.java b/online-taxi-public/internal-common/src/main/java/com/internal/dto/TrackResponse.java new file mode 100644 index 0000000..4d6f580 --- /dev/null +++ b/online-taxi-public/internal-common/src/main/java/com/internal/dto/TrackResponse.java @@ -0,0 +1,18 @@ +package com.internal.dto; + +import lombok.Data; +/** + * { + * "code": 1, + * "message": "success", + * "data": { + * "trid": "20", + * "trname": null + * } + * } + */ +@Data +public class TrackResponse { + private String trid; + private String trname; +} diff --git a/online-taxi-public/service-driver-user/src/main/java/com/taxi/servicedriveruser/service/CarService.java b/online-taxi-public/service-driver-user/src/main/java/com/taxi/servicedriveruser/service/CarService.java index 029a65f..233c27f 100644 --- a/online-taxi-public/service-driver-user/src/main/java/com/taxi/servicedriveruser/service/CarService.java +++ b/online-taxi-public/service-driver-user/src/main/java/com/taxi/servicedriveruser/service/CarService.java @@ -23,11 +23,15 @@ public class CarService { car.setGmtCreate(localDateTime); car.setGmtModified(localDateTime); - //获取此车辆对应的tid + //获取此车辆终端的tid ResponseResult responseResult = serviceMapClient.addTerminal(car.getVehicleNo()); String tid = responseResult.getData().getTid(); car.setTid(tid); + //获得此车辆的轨迹id,trid + + + carMapper.insert(car); diff --git a/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/controller/TrackController.java b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/controller/TrackController.java new file mode 100644 index 0000000..e505293 --- /dev/null +++ b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/controller/TrackController.java @@ -0,0 +1,21 @@ +package com.taxi.servicemap.controller; + +import com.internal.dto.ResponseResult; +import com.taxi.servicemap.service.TrackService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/track") +public class TrackController { + + @Autowired + private TrackService trackService; + + @PostMapping("/addTrack") + public ResponseResult addTrack(String tid){ + return trackService.addTrack(tid); + } +} diff --git a/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/remote/TrackClient.java b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/remote/TrackClient.java new file mode 100644 index 0000000..62e676c --- /dev/null +++ b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/remote/TrackClient.java @@ -0,0 +1,66 @@ +package com.taxi.servicemap.remote; + +import com.internal.contant.AmapConfigConstant; +import com.internal.dto.ResponseResult; +import com.internal.dto.TrackResponse; +import net.sf.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +@Service +public class TrackClient { + @Value("${amap.key}") + private String amapKey; + + @Value("${amap.sid}") + private String sid; + + @Autowired + private RestTemplate restTemplate; + + + public ResponseResult addTrack(String tid){ + //拼接请求的URL + StringBuilder url = new StringBuilder(); + url.append(AmapConfigConstant.TRACK_MAP_ADD_URL); + url.append("?"); + url.append("key="+amapKey); + url.append("&"); + url.append("sid="+sid); + url.append("&"); + url.append("tid="+tid); + /** + * { + * "data": { + * "trname": "测试轨迹", + * "trid": 80 + * }, + * "errcode": 10000, + * "errdetail": null, + * "errmsg": "OK" + * } + */ + + ResponseEntity forEntity = + restTemplate.postForEntity(url.toString(),null,String.class); + String bodyStr = forEntity.getBody(); + TrackResponse terminalResponse = new TrackResponse(); + JSONObject result = JSONObject.fromObject(bodyStr); + if(result.has("data")){ + JSONObject data = result.getJSONObject("data"); + if(!data.isNullObject() && data.has("trid")){ + String trid = data.getString("trid"); + terminalResponse.setTrid(trid); + } + if(!data.isNullObject() && data.has("trname")){ + String trname = data.getString("trname"); + terminalResponse.setTrname(trname); + } + } + return ResponseResult.success(terminalResponse); + } + +} diff --git a/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/service/TrackService.java b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/service/TrackService.java new file mode 100644 index 0000000..33890ca --- /dev/null +++ b/online-taxi-public/service-map/src/main/java/com/taxi/servicemap/service/TrackService.java @@ -0,0 +1,16 @@ +package com.taxi.servicemap.service; + +import com.internal.dto.ResponseResult; +import com.taxi.servicemap.remote.TrackClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class TrackService { + @Autowired + private TrackClient trackClient; + + public ResponseResult addTrack(String tid){ + return trackClient.addTrack(tid); + } +}