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