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