From 19d96f2cb669c3eba9b7b95539ebf530defe62bc Mon Sep 17 00:00:00 2001 From: Kim-Dong-Jun99 Date: Wed, 17 Jan 2024 23:09:20 +0900 Subject: [PATCH] =?UTF-8?q?Refactor=20:=20=EC=97=AC=EC=A0=95=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=ED=85=9C=201=EA=B0=9C=20=EC=9D=BC=EB=95=8C=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EC=A0=95=EB=B3=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/component/PathComponent.java | 50 ++++++++++++------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/tenten/tentenstomp/global/component/PathComponent.java b/src/main/java/org/tenten/tentenstomp/global/component/PathComponent.java index 074c64d..fda023a 100644 --- a/src/main/java/org/tenten/tentenstomp/global/component/PathComponent.java +++ b/src/main/java/org/tenten/tentenstomp/global/component/PathComponent.java @@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.tenten.tentenstomp.domain.trip.dto.response.TripPathInfoMsg; +import org.tenten.tentenstomp.domain.trip.dto.response.TripPathInfoMsg.PathInfo; import org.tenten.tentenstomp.global.common.annotation.GetExecutionTime; import org.tenten.tentenstomp.global.common.enums.Transportation; import org.tenten.tentenstomp.global.component.dto.request.PathCalculateRequest; @@ -25,29 +26,40 @@ public class PathComponent { public TripPathCalculationResult getTripPath(List tripPlaceList, Transportation transportation) { List pathCalculateRequests = toPathCalculateRequest(tripPlaceList); - Integer priceSum = 0; - List pathInfoMsgs = new CopyOnWriteArrayList<>(); - for (PathCalculateRequest calculateRequest : pathCalculateRequests) { - asyncPathComponent.calculatePath(calculateRequest.from(), calculateRequest.to(), pathInfoMsgs, transportation); - } - while (true) { - if (pathInfoMsgs.size() == pathCalculateRequests.size()) { - break; + if (pathCalculateRequests.isEmpty()) { + List pathInfoMsgs = new ArrayList<>(); + TripPlace tripPlace = tripPlaceList.get(0); + pathInfoMsgs.add(new TripPathInfoMsg( + tripPlace.tripItemId(), tripPlace.tripItemId(), tripPlace.seqNum(), tripPlace.seqNum(), + tripPlace.longitude(), tripPlace.latitude(), tripPlace.longitude(), tripPlace.latitude(), new PathInfo(0, 0.0, 0L) + )); + return new TripPathCalculationResult(0, pathInfoMsgs); + } else { + Integer priceSum = 0; + List pathInfoMsgs = new CopyOnWriteArrayList<>(); + for (PathCalculateRequest calculateRequest : pathCalculateRequests) { + asyncPathComponent.calculatePath(calculateRequest.from(), calculateRequest.to(), pathInfoMsgs, transportation); } - } - for (TripPathInfoMsg tpm : pathInfoMsgs) { - if (tpm.pathInfo() != null) { - priceSum += tpm.pathInfo().price(); + while (true) { + if (pathInfoMsgs.size() == pathCalculateRequests.size()) { + break; + } + } + for (TripPathInfoMsg tpm : pathInfoMsgs) { + if (tpm.pathInfo() != null) { + priceSum += tpm.pathInfo().price(); + } } + pathInfoMsgs.sort((a, b) -> { + if (!a.fromSeqNum().equals(b.fromSeqNum())) { + + return Integer.parseInt(Long.toString(a.fromSeqNum() - b.fromSeqNum())); + } + return Integer.parseInt(Long.toString(a.fromTripItemId() - b.fromTripItemId())); + }); + return new TripPathCalculationResult(priceSum, pathInfoMsgs); } - pathInfoMsgs.sort((a, b) -> { - if (!a.fromSeqNum().equals(b.fromSeqNum())) { - return Integer.parseInt(Long.toString(a.fromSeqNum() - b.fromSeqNum())); - } - return Integer.parseInt(Long.toString(a.fromTripItemId() - b.fromTripItemId())); - }); - return new TripPathCalculationResult(priceSum, pathInfoMsgs); }