From c0e453b6a5e1d914e1550132b8cdc30b7c95e9a8 Mon Sep 17 00:00:00 2001 From: yh <1844516659@qq.com> Date: Mon, 18 Jul 2022 14:29:31 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=9E=E6=BB=B4=E5=87=BA=E8=A1=8C=E7=BD=91?= =?UTF-8?q?=E7=BA=A6=E8=BD=A62022-service-price=E4=BD=BF=E7=94=A8feign?= =?UTF-8?q?=E8=B0=83=E7=94=A8service-map=EF=BC=8C=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=9B=A0=E5=8F=82=E6=95=B0=E6=B3=A8=E8=A7=A3?= =?UTF-8?q?RequestBody=E4=BC=A0=E5=80=BC=E6=97=B6GET=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=BD=ACPOST?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service-map/pom.xml | 6 ++++++ .../servicemap/ServiceMapApplication.java | 2 ++ .../servicemap/remote/MapDirectionClient.java | 3 +-- .../src/main/resources/application.yml | 4 ++++ service-price/pom.xml | 20 ++++++++++++++++++ .../serviceprice/ServicePriceApplication.java | 4 ++++ .../serviceprice/remote/ServiceMapClient.java | 20 ++++++++++++++++++ .../service/ForecastPriceService.java | 21 +++++++++++++++++-- .../src/main/resources/application.yml | 6 +++++- 9 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 service-price/src/main/java/com/mashibing/serviceprice/remote/ServiceMapClient.java diff --git a/service-map/pom.xml b/service-map/pom.xml index e4a3fe5..34c015e 100644 --- a/service-map/pom.xml +++ b/service-map/pom.xml @@ -16,6 +16,12 @@ org.springframework.boot spring-boot-starter-web + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + \ No newline at end of file diff --git a/service-map/src/main/java/com/mashibing/servicemap/ServiceMapApplication.java b/service-map/src/main/java/com/mashibing/servicemap/ServiceMapApplication.java index 2cedd75..baf0c4f 100644 --- a/service-map/src/main/java/com/mashibing/servicemap/ServiceMapApplication.java +++ b/service-map/src/main/java/com/mashibing/servicemap/ServiceMapApplication.java @@ -2,10 +2,12 @@ package com.mashibing.servicemap; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; @SpringBootApplication +@EnableDiscoveryClient public class ServiceMapApplication { public static void main(String[] args) { diff --git a/service-map/src/main/java/com/mashibing/servicemap/remote/MapDirectionClient.java b/service-map/src/main/java/com/mashibing/servicemap/remote/MapDirectionClient.java index d5832ff..c9bf131 100644 --- a/service-map/src/main/java/com/mashibing/servicemap/remote/MapDirectionClient.java +++ b/service-map/src/main/java/com/mashibing/servicemap/remote/MapDirectionClient.java @@ -23,7 +23,6 @@ public class MapDirectionClient { public DirectionResponse direction(String depLongitude, String depLatitude, String destLongitude, String destLatitude){ // 组装 url - // https://restapi.amap.com/v3/direction/driving?origin=116.481028,39.989643&destination=116.465302,40.004717&extensions=all&output=json&key=c5a197858bd6d73cf94cf49430fbe9d2 StringBuilder urLBuild = new StringBuilder(); urLBuild.append(AmapConfigConstants.DIRECTION_URL); urLBuild.append("?"); @@ -47,7 +46,7 @@ public class MapDirectionClient { return directionResponse; } - public DirectionResponse parseDirectionInfo(String directionStr){ + private DirectionResponse parseDirectionInfo(String directionStr){ DirectionResponse directionResponse = null; diff --git a/service-map/src/main/resources/application.yml b/service-map/src/main/resources/application.yml index de965eb..c965e15 100644 --- a/service-map/src/main/resources/application.yml +++ b/service-map/src/main/resources/application.yml @@ -3,5 +3,9 @@ server: spring: application: name: service-map + cloud: + nacos: + discovery: + server-addr: localhost:8848 amap: key: c5a197858bd6d73cf94cf49430fbe9d2 \ No newline at end of file diff --git a/service-price/pom.xml b/service-price/pom.xml index e2aa025..771c80f 100644 --- a/service-price/pom.xml +++ b/service-price/pom.xml @@ -16,6 +16,26 @@ org.springframework.boot spring-boot-starter-web + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + + + io.github.openfeign + feign-httpclient + + diff --git a/service-price/src/main/java/com/mashibing/serviceprice/ServicePriceApplication.java b/service-price/src/main/java/com/mashibing/serviceprice/ServicePriceApplication.java index 91991d7..cd5a119 100644 --- a/service-price/src/main/java/com/mashibing/serviceprice/ServicePriceApplication.java +++ b/service-price/src/main/java/com/mashibing/serviceprice/ServicePriceApplication.java @@ -2,8 +2,12 @@ package com.mashibing.serviceprice; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients public class ServicePriceApplication { public static void main(String[] args) { diff --git a/service-price/src/main/java/com/mashibing/serviceprice/remote/ServiceMapClient.java b/service-price/src/main/java/com/mashibing/serviceprice/remote/ServiceMapClient.java new file mode 100644 index 0000000..27a1314 --- /dev/null +++ b/service-price/src/main/java/com/mashibing/serviceprice/remote/ServiceMapClient.java @@ -0,0 +1,20 @@ +package com.mashibing.serviceprice.remote; + +import com.mashibing.internalcommon.dto.ResponseResult; +import com.mashibing.internalcommon.request.ForecastPriceDTO; +import com.mashibing.internalcommon.response.DirectionResponse; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +@Service +@FeignClient("service-map") +public interface ServiceMapClient { + + @RequestMapping(method = RequestMethod.GET,value = "/direction/driving") + public ResponseResult driving(@RequestBody ForecastPriceDTO forecastPriceDTO); + +} diff --git a/service-price/src/main/java/com/mashibing/serviceprice/service/ForecastPriceService.java b/service-price/src/main/java/com/mashibing/serviceprice/service/ForecastPriceService.java index 8f565d3..d65f33d 100644 --- a/service-price/src/main/java/com/mashibing/serviceprice/service/ForecastPriceService.java +++ b/service-price/src/main/java/com/mashibing/serviceprice/service/ForecastPriceService.java @@ -1,14 +1,21 @@ package com.mashibing.serviceprice.service; import com.mashibing.internalcommon.dto.ResponseResult; +import com.mashibing.internalcommon.request.ForecastPriceDTO; +import com.mashibing.internalcommon.response.DirectionResponse; import com.mashibing.internalcommon.response.ForecastPriceResponse; +import com.mashibing.serviceprice.remote.ServiceMapClient; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Slf4j @Service public class ForecastPriceService { + @Autowired + private ServiceMapClient serviceMapClient; + /** * 根据 出发地和目地的 地经纬度 计算预估价格 * @param depLongitude @@ -24,13 +31,23 @@ public class ForecastPriceService { log.info("目的地经度:"+destLongitude); log.info("目的地纬度:"+destLatitude); + ForecastPriceDTO priceDTO = new ForecastPriceDTO(); + priceDTO.setDepLatitude(depLatitude); + priceDTO.setDepLongitude(depLongitude); + priceDTO.setDestLatitude(destLatitude); + priceDTO.setDestLongitude(destLongitude); // 调用 地图服务,查询距离时长 + ResponseResult driving = serviceMapClient.driving(priceDTO); + Integer distance = driving.getData().getDistance(); + Integer duration = driving.getData().getDuration(); - // 读取计价规则 + System.out.println("distance = " + distance); + System.out.println("duration = " + duration); - // 根据 距离时长 进行价格预估 + // 读取计价规则 + // 根据 距离时长 进行价格预估 ForecastPriceResponse priceResponse = new ForecastPriceResponse(); priceResponse.setPrice(12.34); diff --git a/service-price/src/main/resources/application.yml b/service-price/src/main/resources/application.yml index 9c0047e..9c9bad6 100644 --- a/service-price/src/main/resources/application.yml +++ b/service-price/src/main/resources/application.yml @@ -2,4 +2,8 @@ server: port: 8084 spring: application: - name: service-price \ No newline at end of file + name: service-price + cloud: + nacos: + discovery: + server-addr: localhost:8848 \ No newline at end of file