diff --git a/api-passenger/src/main/java/com/mashibing/apipassenger/remote/ServicePriceClient.java b/api-passenger/src/main/java/com/mashibing/apipassenger/remote/ServicePriceClient.java new file mode 100644 index 0000000..edb4388 --- /dev/null +++ b/api-passenger/src/main/java/com/mashibing/apipassenger/remote/ServicePriceClient.java @@ -0,0 +1,18 @@ +package com.mashibing.apipassenger.remote; + +import com.mashibing.internalcommon.dto.ResponseResult; +import com.mashibing.internalcommon.request.ForecastPriceDTO; +import com.mashibing.internalcommon.response.ForecastPriceResponse; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@Service +@FeignClient("service-price") +public interface ServicePriceClient { + + @PostMapping("/forecast-price") + public ResponseResult forecastPrice(@RequestBody ForecastPriceDTO forecastPriceDTO); + +} diff --git a/api-passenger/src/main/java/com/mashibing/apipassenger/service/ForecastPriceService.java b/api-passenger/src/main/java/com/mashibing/apipassenger/service/ForecastPriceService.java index 79cfefa..7ae3bbd 100644 --- a/api-passenger/src/main/java/com/mashibing/apipassenger/service/ForecastPriceService.java +++ b/api-passenger/src/main/java/com/mashibing/apipassenger/service/ForecastPriceService.java @@ -1,9 +1,11 @@ package com.mashibing.apipassenger.service; +import com.mashibing.apipassenger.remote.ServicePriceClient; import com.mashibing.internalcommon.dto.ResponseResult; import com.mashibing.internalcommon.request.ForecastPriceDTO; import com.mashibing.internalcommon.response.ForecastPriceResponse; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -11,6 +13,9 @@ import org.springframework.stereotype.Service; @Service public class ForecastPriceService { + @Autowired + private ServicePriceClient servicePriceClient; + /** * 根据 出发地和目地的 地经纬度 计算预估价格 * @param depLongitude @@ -21,16 +26,23 @@ public class ForecastPriceService { */ public ResponseResult forecastPrice(String depLongitude, String depLatitude, String destLongitude,String destLatitude){ - log.info("出发地经度:"+depLongitude); - log.info("出发地纬度:"+depLatitude); - log.info("目的地经度:"+destLongitude); - log.info("目的地纬度:"+destLatitude); +// log.info("出发地经度:"+depLongitude); +// log.info("出发地纬度:"+depLatitude); +// log.info("目的地经度:"+destLongitude); +// log.info("目的地纬度:"+destLatitude); // 调用 计价服务,进行价格预估 - - + ForecastPriceDTO priceDTO = new ForecastPriceDTO(); + priceDTO.setDepLatitude(depLatitude); + priceDTO.setDepLongitude(depLongitude); + priceDTO.setDestLatitude(destLatitude); + priceDTO.setDestLongitude(destLongitude); + ResponseResult forecastPriceResponseResult = servicePriceClient.forecastPrice(priceDTO); + double price = forecastPriceResponseResult.getData().getPrice(); + + // 返回 封装结果对象 ForecastPriceResponse priceResponse = new ForecastPriceResponse(); - priceResponse.setPrice(12.34); + priceResponse.setPrice(price); return ResponseResult.success(priceResponse); } diff --git a/service-price/src/main/java/com/mashibing/serviceprice/controller/ForecastPriceController.java b/service-price/src/main/java/com/mashibing/serviceprice/controller/ForecastPriceController.java index b8a5e5c..7627a10 100644 --- a/service-price/src/main/java/com/mashibing/serviceprice/controller/ForecastPriceController.java +++ b/service-price/src/main/java/com/mashibing/serviceprice/controller/ForecastPriceController.java @@ -2,6 +2,7 @@ package com.mashibing.serviceprice.controller; import com.mashibing.internalcommon.dto.ResponseResult; import com.mashibing.internalcommon.request.ForecastPriceDTO; +import com.mashibing.internalcommon.response.ForecastPriceResponse; import com.mashibing.serviceprice.service.ForecastPriceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -15,7 +16,7 @@ public class ForecastPriceController { private ForecastPriceService priceService; @PostMapping("/forecast-price") - public ResponseResult forecastPrice(@RequestBody ForecastPriceDTO forecastPriceDTO){ + public ResponseResult forecastPrice(@RequestBody ForecastPriceDTO forecastPriceDTO){ String depLongitude = forecastPriceDTO. getDepLongitude(); String depLatitude = forecastPriceDTO.getDepLatitude(); 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 c205150..4c1550b 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 @@ -35,12 +35,12 @@ public class ForecastPriceService { * @param destLatitude * @return */ - public ResponseResult forecastPrice(String depLongitude, String depLatitude, String destLongitude, String destLatitude){ + public ResponseResult forecastPrice(String depLongitude, String depLatitude, String destLongitude, String destLatitude){ - log.info("出发地经度:"+depLongitude); - log.info("出发地纬度:"+depLatitude); - log.info("目的地经度:"+destLongitude); - log.info("目的地纬度:"+destLatitude); +// log.info("出发地经度:"+depLongitude); +// log.info("出发地纬度:"+depLatitude); +// log.info("目的地经度:"+destLongitude); +// log.info("目的地纬度:"+destLatitude); ForecastPriceDTO priceDTO = new ForecastPriceDTO(); priceDTO.setDepLatitude(depLatitude); @@ -52,8 +52,8 @@ public class ForecastPriceService { Integer distance = driving.getData().getDistance(); Integer duration = driving.getData().getDuration(); - System.out.println("distance = " + distance); - System.out.println("duration = " + duration); +// System.out.println("distance = " + distance); +// System.out.println("duration = " + duration); // 读取计价规则 Map queryMap = new HashMap<>();