From 1073d2f445a616c7b2a5aefedafbac836b626b11 Mon Sep 17 00:00:00 2001 From: hyoin Date: Tue, 19 Aug 2025 01:36:42 +0900 Subject: [PATCH 1/6] =?UTF-8?q?[refactor]=20=EB=94=94=EB=A0=89=ED=86=A0?= =?UTF-8?q?=EB=A6=AC=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../direction/dto/response/TransportationResponseDto.java | 4 +++- .../wayble/server/direction/entity/transportation/Edge.java | 2 +- .../wayble/server/direction/entity/transportation/Node.java | 2 +- .../wayble/server/direction/entity/transportation/Route.java | 2 +- .../server/direction/entity/{ => type}/DirectionType.java | 2 +- .../server/direction/service/TransportationService.java | 4 ++-- 6 files changed, 9 insertions(+), 7 deletions(-) rename src/main/java/com/wayble/server/direction/entity/{ => type}/DirectionType.java (69%) diff --git a/src/main/java/com/wayble/server/direction/dto/response/TransportationResponseDto.java b/src/main/java/com/wayble/server/direction/dto/response/TransportationResponseDto.java index 9ade2ec5..a6cdb035 100644 --- a/src/main/java/com/wayble/server/direction/dto/response/TransportationResponseDto.java +++ b/src/main/java/com/wayble/server/direction/dto/response/TransportationResponseDto.java @@ -1,7 +1,9 @@ package com.wayble.server.direction.dto.response; -import com.wayble.server.direction.entity.DirectionType; import org.springframework.lang.Nullable; + +import com.wayble.server.direction.entity.type.DirectionType; + import io.swagger.v3.oas.annotations.media.Schema; import java.util.List; diff --git a/src/main/java/com/wayble/server/direction/entity/transportation/Edge.java b/src/main/java/com/wayble/server/direction/entity/transportation/Edge.java index 9fe6cb43..52acb799 100644 --- a/src/main/java/com/wayble/server/direction/entity/transportation/Edge.java +++ b/src/main/java/com/wayble/server/direction/entity/transportation/Edge.java @@ -1,6 +1,6 @@ package com.wayble.server.direction.entity.transportation; -import com.wayble.server.direction.entity.DirectionType; +import com.wayble.server.direction.entity.type.DirectionType; import jakarta.persistence.*; import lombok.*; diff --git a/src/main/java/com/wayble/server/direction/entity/transportation/Node.java b/src/main/java/com/wayble/server/direction/entity/transportation/Node.java index 7986fc54..a778e6ca 100644 --- a/src/main/java/com/wayble/server/direction/entity/transportation/Node.java +++ b/src/main/java/com/wayble/server/direction/entity/transportation/Node.java @@ -8,7 +8,7 @@ import org.hibernate.annotations.BatchSize; -import com.wayble.server.direction.entity.DirectionType; +import com.wayble.server.direction.entity.type.DirectionType; @Entity @Getter diff --git a/src/main/java/com/wayble/server/direction/entity/transportation/Route.java b/src/main/java/com/wayble/server/direction/entity/transportation/Route.java index d35c1714..42dfce43 100644 --- a/src/main/java/com/wayble/server/direction/entity/transportation/Route.java +++ b/src/main/java/com/wayble/server/direction/entity/transportation/Route.java @@ -1,7 +1,7 @@ package com.wayble.server.direction.entity.transportation; -import com.wayble.server.direction.entity.DirectionType; import com.wayble.server.direction.entity.transportation.*; +import com.wayble.server.direction.entity.type.DirectionType; import jakarta.persistence.*; import lombok.*; diff --git a/src/main/java/com/wayble/server/direction/entity/DirectionType.java b/src/main/java/com/wayble/server/direction/entity/type/DirectionType.java similarity index 69% rename from src/main/java/com/wayble/server/direction/entity/DirectionType.java rename to src/main/java/com/wayble/server/direction/entity/type/DirectionType.java index 313c17d8..d4b80153 100644 --- a/src/main/java/com/wayble/server/direction/entity/DirectionType.java +++ b/src/main/java/com/wayble/server/direction/entity/type/DirectionType.java @@ -1,4 +1,4 @@ -package com.wayble.server.direction.entity; +package com.wayble.server.direction.entity.type; public enum DirectionType { BUS, SUBWAY, WALK, diff --git a/src/main/java/com/wayble/server/direction/service/TransportationService.java b/src/main/java/com/wayble/server/direction/service/TransportationService.java index 70e45751..c0d9ac37 100644 --- a/src/main/java/com/wayble/server/direction/service/TransportationService.java +++ b/src/main/java/com/wayble/server/direction/service/TransportationService.java @@ -4,10 +4,10 @@ import com.wayble.server.direction.dto.TransportationGraphDto; import com.wayble.server.direction.dto.request.TransportationRequestDto; import com.wayble.server.direction.dto.response.TransportationResponseDto; -import com.wayble.server.direction.entity.DirectionType; import com.wayble.server.direction.entity.transportation.Edge; import com.wayble.server.direction.entity.transportation.Node; import com.wayble.server.direction.entity.transportation.Route; +import com.wayble.server.direction.entity.type.DirectionType; import com.wayble.server.direction.repository.EdgeRepository; import com.wayble.server.direction.repository.NodeRepository; import lombok.RequiredArgsConstructor; @@ -689,7 +689,7 @@ private List mergeConsecutiveRoutes(List p } else if (currentType == DirectionType.SUBWAY) { try { if (currentEdge.getStartNode() != null) { - TransportationResponseDto.NodeInfo nodeInfo = facilityService.getNodeInfo(currentEdge.getStartNode().getId(), currentEdge.getRoute().getRouteId()); + TransportationResponseDto.NodeInfo nodeInfo = facilityService.getNodeInfo(currentEdge.getStartNode().getId(), currentEdge.getRoute().getRouteId(), null); subwayInfo = new TransportationResponseDto.SubwayInfo( nodeInfo.wheelchair(), From 06d3484b74af2905a91fdab43e7be2f3b1d2adce Mon Sep 17 00:00:00 2001 From: hyoin Date: Tue, 19 Aug 2025 01:39:59 +0900 Subject: [PATCH 2/6] =?UTF-8?q?[feat]=20=EC=97=98=EB=A6=AC=EB=B2=A0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=A0=95=EB=B3=B4=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/transportation/Elevator.java | 7 ++-- .../repository/ElevatorRepository.java | 15 ++++++++ .../direction/service/FacilityService.java | 35 +++++++++++++++++-- 3 files changed, 49 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/wayble/server/direction/repository/ElevatorRepository.java diff --git a/src/main/java/com/wayble/server/direction/entity/transportation/Elevator.java b/src/main/java/com/wayble/server/direction/entity/transportation/Elevator.java index db0b6e18..ba6eca8b 100644 --- a/src/main/java/com/wayble/server/direction/entity/transportation/Elevator.java +++ b/src/main/java/com/wayble/server/direction/entity/transportation/Elevator.java @@ -14,11 +14,8 @@ public class Elevator { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @Column(name = "latitude", columnDefinition = "DECIMAL(10,7)", nullable = false) - private Double latitude; - - @Column(name = "longitude", columnDefinition = "DECIMAL(10,7)", nullable = false) - private Double longitude; + @Column(name = "location", nullable = false) + private String location; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "facility_id", nullable = false) diff --git a/src/main/java/com/wayble/server/direction/repository/ElevatorRepository.java b/src/main/java/com/wayble/server/direction/repository/ElevatorRepository.java new file mode 100644 index 00000000..c659d629 --- /dev/null +++ b/src/main/java/com/wayble/server/direction/repository/ElevatorRepository.java @@ -0,0 +1,15 @@ +package com.wayble.server.direction.repository; + +import com.wayble.server.direction.entity.transportation.Elevator; +import com.wayble.server.direction.entity.transportation.Facility; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.List; + +public interface ElevatorRepository extends JpaRepository { + @Query("SELECT e FROM Elevator e WHERE e.facility = :facility") + List findByFacility(@Param("facility") Facility facility); +} + diff --git a/src/main/java/com/wayble/server/direction/service/FacilityService.java b/src/main/java/com/wayble/server/direction/service/FacilityService.java index 25f9f000..7bb9eb53 100644 --- a/src/main/java/com/wayble/server/direction/service/FacilityService.java +++ b/src/main/java/com/wayble/server/direction/service/FacilityService.java @@ -4,10 +4,15 @@ import com.wayble.server.direction.entity.transportation.Facility; import com.wayble.server.direction.entity.transportation.Node; import com.wayble.server.direction.entity.transportation.Wheelchair; +import com.wayble.server.direction.entity.transportation.Elevator; + import com.wayble.server.direction.external.kric.dto.KricToiletRawItem; import com.wayble.server.direction.external.kric.dto.KricToiletRawResponse; + +import com.wayble.server.direction.repository.ElevatorRepository; import com.wayble.server.direction.repository.FacilityRepository; import com.wayble.server.direction.repository.NodeRepository; +import com.wayble.server.direction.repository.RouteRepository; import com.wayble.server.direction.repository.WheelchairInfoRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -28,6 +33,7 @@ @Slf4j @RequiredArgsConstructor public class FacilityService { + private final ElevatorRepository elevatorRepository; private final FacilityRepository facilityRepository; private final NodeRepository nodeRepository; private final WheelchairInfoRepository wheelchairInfoRepository; @@ -54,8 +60,6 @@ public TransportationResponseDto.NodeInfo getNodeInfo(Long nodeId, Long routeId) } } - elevator = new ArrayList<>(); - Facility facility = facilityRepository.findByNodeId(nodeId).orElse(null); if (facility != null) { String stinCd = facility.getStinCd(); @@ -65,6 +69,8 @@ public TransportationResponseDto.NodeInfo getNodeInfo(Long nodeId, Long routeId) if (stinCd != null && railOprLsttCd != null && lnCd != null) { Map toiletInfo = getToiletInfo(facility); accessibleRestroom = toiletInfo.getOrDefault(stinCd, false); + + elevator = getElevatorInfo(facility, routeId); } else { log.error("Facility 정보 누락 - nodeId: {}, stinCd: {}, railOprLsttCd: {}, lnCd: {}", nodeId, stinCd, railOprLsttCd, lnCd); @@ -132,4 +138,27 @@ private Map getToiletInfo(Facility facility) { return stationToiletMap; } -} + + private List getElevatorInfo(Facility facility, Long routeId) { + List elevatorLocations = new ArrayList<>(); + + try { + List elevators = elevatorRepository.findByFacility(facility); + + for (Elevator elevator : elevators) { + String location = elevator.getLocation(); + if (location != null && !location.trim().isEmpty()) { + elevatorLocations.add(location.trim()); + } + } + + } catch(Exception e) { + log.error("엘리베이터 정보 조회 실패 - facilityId: {}, error: {}", + facility.getId(), e.getMessage(), e); + } + + return elevatorLocations; + } + + +} \ No newline at end of file From a2a98e288bcb2cb79afb1eeccda0669fef0ce9a7 Mon Sep 17 00:00:00 2001 From: hyoin Date: Tue, 19 Aug 2025 01:47:26 +0900 Subject: [PATCH 3/6] =?UTF-8?q?[fix]=20=EC=B6=9C=EA=B5=AC=20=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EC=B6=9C=EB=A0=A5=EC=8B=9C=20=EC=A0=95=EB=A0=AC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/wayble/server/direction/service/FacilityService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/wayble/server/direction/service/FacilityService.java b/src/main/java/com/wayble/server/direction/service/FacilityService.java index 7bb9eb53..e00d665a 100644 --- a/src/main/java/com/wayble/server/direction/service/FacilityService.java +++ b/src/main/java/com/wayble/server/direction/service/FacilityService.java @@ -152,6 +152,8 @@ private List getElevatorInfo(Facility facility, Long routeId) { } } + elevatorLocations.sort(String::compareTo); + } catch(Exception e) { log.error("엘리베이터 정보 조회 실패 - facilityId: {}, error: {}", facility.getId(), e.getMessage(), e); From 0d51d0a2b5c93e82702d903f8bfc30dc79ee656e Mon Sep 17 00:00:00 2001 From: hyoin Date: Tue, 19 Aug 2025 01:47:36 +0900 Subject: [PATCH 4/6] =?UTF-8?q?[fix]=20=ED=95=A8=EC=88=98=20=ED=8C=8C?= =?UTF-8?q?=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=88=98=EC=A0=96=E3=85=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wayble/server/direction/service/TransportationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/wayble/server/direction/service/TransportationService.java b/src/main/java/com/wayble/server/direction/service/TransportationService.java index c0d9ac37..0314bb90 100644 --- a/src/main/java/com/wayble/server/direction/service/TransportationService.java +++ b/src/main/java/com/wayble/server/direction/service/TransportationService.java @@ -689,7 +689,7 @@ private List mergeConsecutiveRoutes(List p } else if (currentType == DirectionType.SUBWAY) { try { if (currentEdge.getStartNode() != null) { - TransportationResponseDto.NodeInfo nodeInfo = facilityService.getNodeInfo(currentEdge.getStartNode().getId(), currentEdge.getRoute().getRouteId(), null); + TransportationResponseDto.NodeInfo nodeInfo = facilityService.getNodeInfo(currentEdge.getStartNode().getId(), currentEdge.getRoute().getRouteId()); subwayInfo = new TransportationResponseDto.SubwayInfo( nodeInfo.wheelchair(), From d897d30d36a5bafbbf2c3a12233cb18b55e848aa Mon Sep 17 00:00:00 2001 From: hyoin Date: Tue, 19 Aug 2025 02:22:08 +0900 Subject: [PATCH 5/6] =?UTF-8?q?Revert=20"[fix]=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=88=98=EC=A0=96?= =?UTF-8?q?=E3=85=87"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 0d51d0a2b5c93e82702d903f8bfc30dc79ee656e. --- .../wayble/server/direction/service/TransportationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/wayble/server/direction/service/TransportationService.java b/src/main/java/com/wayble/server/direction/service/TransportationService.java index 0314bb90..c0d9ac37 100644 --- a/src/main/java/com/wayble/server/direction/service/TransportationService.java +++ b/src/main/java/com/wayble/server/direction/service/TransportationService.java @@ -689,7 +689,7 @@ private List mergeConsecutiveRoutes(List p } else if (currentType == DirectionType.SUBWAY) { try { if (currentEdge.getStartNode() != null) { - TransportationResponseDto.NodeInfo nodeInfo = facilityService.getNodeInfo(currentEdge.getStartNode().getId(), currentEdge.getRoute().getRouteId()); + TransportationResponseDto.NodeInfo nodeInfo = facilityService.getNodeInfo(currentEdge.getStartNode().getId(), currentEdge.getRoute().getRouteId(), null); subwayInfo = new TransportationResponseDto.SubwayInfo( nodeInfo.wheelchair(), From d8dc03cbc792aaf60d96bd60b76f54b8fda83821 Mon Sep 17 00:00:00 2001 From: hyoin Date: Tue, 19 Aug 2025 02:22:31 +0900 Subject: [PATCH 6/6] =?UTF-8?q?[fix]=20=ED=95=A8=EC=88=98=20=ED=8C=8C?= =?UTF-8?q?=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wayble/server/direction/service/TransportationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/wayble/server/direction/service/TransportationService.java b/src/main/java/com/wayble/server/direction/service/TransportationService.java index c0d9ac37..0314bb90 100644 --- a/src/main/java/com/wayble/server/direction/service/TransportationService.java +++ b/src/main/java/com/wayble/server/direction/service/TransportationService.java @@ -689,7 +689,7 @@ private List mergeConsecutiveRoutes(List p } else if (currentType == DirectionType.SUBWAY) { try { if (currentEdge.getStartNode() != null) { - TransportationResponseDto.NodeInfo nodeInfo = facilityService.getNodeInfo(currentEdge.getStartNode().getId(), currentEdge.getRoute().getRouteId(), null); + TransportationResponseDto.NodeInfo nodeInfo = facilityService.getNodeInfo(currentEdge.getStartNode().getId(), currentEdge.getRoute().getRouteId()); subwayInfo = new TransportationResponseDto.SubwayInfo( nodeInfo.wheelchair(),