From 10ab050a1cb80a9709f66dc2b53ac4b2c86c2d54 Mon Sep 17 00:00:00 2001 From: "gayoun.park" Date: Fri, 30 Jan 2026 11:17:13 +0900 Subject: [PATCH] =?UTF-8?q?=EB=85=84=EB=8F=84=201=EA=B0=9C=EB=A7=8C=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=ED=95=98=EB=8A=94=20=ED=83=80=EC=9D=BC=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kamcoback/layer/LayerApiController.java | 9 ++++++- .../kamcoback/layer/service/LayerService.java | 5 ++++ .../postgres/core/MapLayerCoreService.java | 5 ++++ .../layer/MapLayerRepositoryCustom.java | 3 +++ .../layer/MapLayerRepositoryImpl.java | 27 +++++++++++++++++++ 5 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/layer/LayerApiController.java b/src/main/java/com/kamco/cd/kamcoback/layer/LayerApiController.java index 57cce6da..d7bc1313 100644 --- a/src/main/java/com/kamco/cd/kamcoback/layer/LayerApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/layer/LayerApiController.java @@ -226,11 +226,18 @@ public class LayerApiController { return ApiResponseDto.ok(layerService.findLayerMapList("labeling")); } - @Operation(summary = "년도별 tile Url", description = "년도별 tile Url") + @Operation(summary = "년도별 tile Url(before,after 모두 조회)", description = "년도별 tile Url") @GetMapping("/tile-url") public ApiResponseDto getChangeDetectionTileUrl( @Parameter(description = "이전 년도", example = "2023") @RequestParam Integer beforeYear, @Parameter(description = "이후 년도", example = "2024") @RequestParam Integer afterYear) { return ApiResponseDto.ok(layerService.getChangeDetectionTileUrl(beforeYear, afterYear)); } + + @Operation(summary = "년도별 tile Url(년도 1개만 조회)", description = "년도별 tile Url") + @GetMapping("/tile-url-year") + public ApiResponseDto getChangeDetectionTileOneYearUrl( + @Parameter(description = "년도", example = "2023") @RequestParam Integer year) { + return ApiResponseDto.ok(layerService.getChangeDetectionTileOneYearUrl(year)); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/layer/service/LayerService.java b/src/main/java/com/kamco/cd/kamcoback/layer/service/LayerService.java index 52cba7bf..b78dfa8b 100644 --- a/src/main/java/com/kamco/cd/kamcoback/layer/service/LayerService.java +++ b/src/main/java/com/kamco/cd/kamcoback/layer/service/LayerService.java @@ -6,6 +6,7 @@ import com.kamco.cd.kamcoback.layer.dto.LayerDto; import com.kamco.cd.kamcoback.layer.dto.LayerDto.Basic; import com.kamco.cd.kamcoback.layer.dto.LayerDto.LayerMapDto; import com.kamco.cd.kamcoback.layer.dto.LayerDto.OrderReq; +import com.kamco.cd.kamcoback.layer.dto.LayerDto.TileUrlDto; import com.kamco.cd.kamcoback.layer.dto.WmsDto.WmsAddDto; import com.kamco.cd.kamcoback.layer.dto.WmsDto.WmsAddReqDto; import com.kamco.cd.kamcoback.layer.dto.WmsLayerInfo; @@ -168,4 +169,8 @@ public class LayerService { public LayerDto.YearTileDto getChangeDetectionTileUrl(Integer beforeYear, Integer afterYear) { return mapLayerCoreService.getChangeDetectionTileUrl(beforeYear, afterYear); } + + public TileUrlDto getChangeDetectionTileOneYearUrl(Integer year) { + return mapLayerCoreService.getChangeDetectionTileOneYearUrl(year); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapLayerCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapLayerCoreService.java index d8d8f49b..e5053f3b 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapLayerCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapLayerCoreService.java @@ -8,6 +8,7 @@ import com.kamco.cd.kamcoback.common.utils.UserUtil; import com.kamco.cd.kamcoback.layer.dto.LayerDto; import com.kamco.cd.kamcoback.layer.dto.LayerDto.LayerMapDto; import com.kamco.cd.kamcoback.layer.dto.LayerDto.OrderReq; +import com.kamco.cd.kamcoback.layer.dto.LayerDto.TileUrlDto; import com.kamco.cd.kamcoback.layer.dto.WmsDto.WmsAddDto; import com.kamco.cd.kamcoback.layer.dto.WmtsDto.WmtsAddDto; import com.kamco.cd.kamcoback.postgres.entity.MapLayerEntity; @@ -301,4 +302,8 @@ public class MapLayerCoreService { public LayerDto.YearTileDto getChangeDetectionTileUrl(Integer beforeYear, Integer afterYear) { return mapLayerRepository.getChangeDetectionTileUrl(beforeYear, afterYear); } + + public TileUrlDto getChangeDetectionTileOneYearUrl(Integer year) { + return mapLayerRepository.getChangeDetectionTileOneYearUrl(year); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/layer/MapLayerRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/layer/MapLayerRepositoryCustom.java index 39ca2195..2a0e6087 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/layer/MapLayerRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/layer/MapLayerRepositoryCustom.java @@ -2,6 +2,7 @@ package com.kamco.cd.kamcoback.postgres.repository.layer; import com.kamco.cd.kamcoback.layer.dto.LayerDto; import com.kamco.cd.kamcoback.layer.dto.LayerDto.LayerMapDto; +import com.kamco.cd.kamcoback.layer.dto.LayerDto.TileUrlDto; import com.kamco.cd.kamcoback.postgres.entity.MapLayerEntity; import java.util.Collection; import java.util.List; @@ -21,4 +22,6 @@ public interface MapLayerRepositoryCustom { List findLayerMapList(String type); LayerDto.YearTileDto getChangeDetectionTileUrl(Integer beforeYear, Integer afterYear); + + TileUrlDto getChangeDetectionTileOneYearUrl(Integer year); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/layer/MapLayerRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/layer/MapLayerRepositoryImpl.java index 0ff76945..98145e04 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/layer/MapLayerRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/layer/MapLayerRepositoryImpl.java @@ -5,6 +5,7 @@ import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngTileEntity.mapS import com.kamco.cd.kamcoback.layer.dto.LayerDto; import com.kamco.cd.kamcoback.layer.dto.LayerDto.LayerMapDto; +import com.kamco.cd.kamcoback.layer.dto.LayerDto.TileUrlDto; import com.kamco.cd.kamcoback.postgres.entity.MapLayerEntity; import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.Projections; @@ -172,6 +173,32 @@ public class MapLayerRepositoryImpl implements MapLayerRepositoryCustom { return new LayerDto.YearTileDto(before, after); } + @Override + public TileUrlDto getChangeDetectionTileOneYearUrl(Integer year) { + return queryFactory + .select( + Projections.constructor( + LayerDto.TileUrlDto.class, + mapSheetMngTileEntity.mngYyyy, + mapSheetMngTileEntity.tag, + mapSheetMngTileEntity.url, + mapSheetMngTileEntity.minLon, + mapSheetMngTileEntity.minLat, + mapSheetMngTileEntity.maxLon, + mapSheetMngTileEntity.maxLat, + mapSheetMngTileEntity.minZoom, + mapSheetMngTileEntity.maxZoom, + Expressions.stringTemplate( + "ST_AsGeoJSON(ST_MakeEnvelope({0}, {1}, {2}, {3}, 4326))", + mapSheetMngTileEntity.minLon, + mapSheetMngTileEntity.minLat, + mapSheetMngTileEntity.maxLon, + mapSheetMngTileEntity.maxLat))) + .from(mapSheetMngTileEntity) + .where(mapSheetMngTileEntity.mngYyyy.eq(year)) + .fetchOne(); + } + private BooleanExpression layerTypeCondition(String type) { return type.equals("change-detection") ? mapLayerEntity.isChangeMap.isTrue()