diff --git a/src/main/java/com/mpnp/baechelin/store/controller/StoreController.java b/src/main/java/com/mpnp/baechelin/store/controller/StoreController.java index 941bf8f..4b830d5 100644 --- a/src/main/java/com/mpnp/baechelin/store/controller/StoreController.java +++ b/src/main/java/com/mpnp/baechelin/store/controller/StoreController.java @@ -19,6 +19,7 @@ import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.List; +import java.util.Map; @Api(tags = {"매장 리스트를 반환하는 Controller"}) @RestController @@ -90,9 +91,9 @@ public StoreCardResponseDto getStore( return storeService.getStore(storeId, socialId); } - @ApiOperation(value = "DB에 존재하는 시/군/구 정보를 조회하는 메소드") - @GetMapping("/location/{sido}/sigungu") - public void getSigungu(@PathVariable(required = false) String sido) { - + @ApiOperation(value = "시/도 정보를 이용해 DB에 존재하는 시/군/구 정보를 조회하는 메소드") + @GetMapping("/location/sigungu") + public Map> getSigungu(@RequestParam(required = false) String sido) { + return storeService.getSigungu(sido); } } \ No newline at end of file diff --git a/src/main/java/com/mpnp/baechelin/store/service/StoreService.java b/src/main/java/com/mpnp/baechelin/store/service/StoreService.java index 493098c..3ef399b 100644 --- a/src/main/java/com/mpnp/baechelin/store/service/StoreService.java +++ b/src/main/java/com/mpnp/baechelin/store/service/StoreService.java @@ -3,12 +3,9 @@ import com.mpnp.baechelin.bookmark.domain.Bookmark; import com.mpnp.baechelin.bookmark.repository.BookmarkRepository; import com.mpnp.baechelin.common.QuerydslLocation; -import com.mpnp.baechelin.review.domain.Review; import com.mpnp.baechelin.review.repository.ReviewRepository; import com.mpnp.baechelin.store.domain.Store; -import com.mpnp.baechelin.store.domain.StoreImage; import com.mpnp.baechelin.store.dto.StoreCardResponseDto; -import com.mpnp.baechelin.store.dto.StoreImgResponseDto; import com.mpnp.baechelin.store.dto.StorePagedResponseDto; import com.mpnp.baechelin.store.repository.StoreQueryRepository; import com.mpnp.baechelin.store.repository.StoreRepository; @@ -22,7 +19,9 @@ import javax.transaction.Transactional; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Service @@ -180,4 +179,29 @@ public StoreCardResponseDto getStore(int storeId, String socialId) { return new StoreCardResponseDto(store, isBookmark); } } + + /** + * 시/도 (ex. 서울시, 대전광역시)의 시/군/구 리스트를 반환하는 메소드 + * @param sido 시/도 + * @return 시/군/구 리스트 + */ + public Map> getSigungu(String sido) { + List storeList = storeRepository.findAll(); + + Map> result = new HashMap<>(); + List sigungu = new ArrayList<>(); + + for (Store store : storeList) { + String addressSido = store.getAddress().split(" ")[0]; + String addressSigungu = store.getAddress().split(" ")[1]; + + if (addressSido.equals(sido)) { + sigungu.add(addressSigungu); + } + } + + result.put("sigungu", sigungu); + + return result; + } } \ No newline at end of file