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 d7bc1313..5e06afd7 100644 --- a/src/main/java/com/kamco/cd/kamcoback/layer/LayerApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/layer/LayerApiController.java @@ -2,6 +2,7 @@ package com.kamco.cd.kamcoback.layer; import com.kamco.cd.kamcoback.config.api.ApiResponseDto; import com.kamco.cd.kamcoback.layer.dto.LayerDto; +import com.kamco.cd.kamcoback.layer.dto.LayerDto.IsMapYn; 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.SearchReq; @@ -78,10 +79,24 @@ public class LayerApiController { }) @PostMapping("/save/{layerType}") public ApiResponseDto save( - @PathVariable String layerType, @RequestBody LayerDto.AddReq dto) { + @Schema(description = "TILE,GEOJSON,WMS,WMTS", example = "GEOJSON") @PathVariable + String layerType, + @RequestBody LayerDto.AddReq dto) { return ApiResponseDto.ok(layerService.saveLayers(layerType, dto)); } + @Operation(summary = "순서 변경", description = "순서 변경 api") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "201", + description = "등록 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = Void.class))), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) @PutMapping("/order") public ApiResponseDto updateOrder(@RequestBody List dto) { layerService.orderUpdate(dto); @@ -154,6 +169,24 @@ public class LayerApiController { return ApiResponseDto.ok(null); } + @Operation(summary = "맵 노출여부 수정", description = "맵 노출여부 수정 api") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "201", + description = "수정 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = Void.class))), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @PutMapping("/update-map/{uuid}") + public ApiResponseDto updateIsMap(@PathVariable UUID uuid, @RequestBody IsMapYn isMapYn) { + layerService.updateIsMap(uuid, isMapYn); + return ApiResponseDto.ok(null); + } + @Operation(summary = "wmts tile 조회", description = "wmts tile 조회 api") @ApiResponses( value = { diff --git a/src/main/java/com/kamco/cd/kamcoback/layer/dto/LayerDto.java b/src/main/java/com/kamco/cd/kamcoback/layer/dto/LayerDto.java index a31883a4..98d18422 100644 --- a/src/main/java/com/kamco/cd/kamcoback/layer/dto/LayerDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/layer/dto/LayerDto.java @@ -1,6 +1,7 @@ package com.kamco.cd.kamcoback.layer.dto; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -110,7 +111,7 @@ public class LayerDto { @Schema(name = "LayerAddReq") public static class AddReq { - @Schema(description = "title") + @Schema(description = "title WMS, WMTS 선택한 tile") private String title; @Schema(description = "설명") @@ -302,6 +303,11 @@ public class LayerDto { this.rawJson = rawJson; this.bbox = geoJson; } + + @JsonProperty("workspace") + public String getWorkSpace() { + return "cd"; + } } @Schema(name = "TileUrlDto", description = "Tile Url 정보") @@ -389,4 +395,17 @@ public class LayerDto { private TileUrlDto before; private TileUrlDto after; } + + @Schema(name = "맵 노출 여부", description = "맵 노출 여부") + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class IsMapYn { + @Schema(description = "CHANGE_MAP(변화지도), LABELING_MAP(라벨링지도)", example = "CHANGE_MAP") + private String mapType; + + @Schema(description = "노출여부 true, false", example = "true") + private Boolean isMapYn; + } } 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 b78dfa8b..055a2877 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 @@ -4,6 +4,7 @@ import com.kamco.cd.kamcoback.common.enums.LayerType; import com.kamco.cd.kamcoback.common.exception.CustomApiException; 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.IsMapYn; 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; @@ -126,6 +127,17 @@ public class LayerService { mapLayerCoreService.update(uuid, dto); } + /** + * 맵 노출 여부 수정 + * + * @param uuid + * @param isMapYn + */ + @Transactional + public void updateIsMap(UUID uuid, IsMapYn isMapYn) { + mapLayerCoreService.updateIsMap(uuid, isMapYn); + } + /** * wmts tile 조회 * 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 e5053f3b..09af8b01 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 @@ -6,6 +6,7 @@ import com.kamco.cd.kamcoback.common.enums.LayerType; import com.kamco.cd.kamcoback.common.exception.CustomApiException; import com.kamco.cd.kamcoback.common.utils.UserUtil; import com.kamco.cd.kamcoback.layer.dto.LayerDto; +import com.kamco.cd.kamcoback.layer.dto.LayerDto.IsMapYn; 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; @@ -134,6 +135,27 @@ public class MapLayerCoreService { entity.setUpdatedDttm(ZonedDateTime.now()); } + /** + * 맵 노출 여부 + * + * @param uuid + * @param isMapYn + */ + public void updateIsMap(UUID uuid, IsMapYn isMapYn) { + MapLayerEntity entity = + mapLayerRepository + .findDetailByUuid(uuid) + .orElseThrow(() -> new CustomApiException("NOT_FOUND_DATA", HttpStatus.NOT_FOUND)); + + if ("CHANGE_MAP".equals(isMapYn.getMapType())) { + entity.setIsChangeMap(isMapYn.getIsMapYn()); + } else if ("LABELING_MAP".equals(isMapYn.getMapType())) { + entity.setIsLabelingMap(isMapYn.getIsMapYn()); + } else { + throw new CustomApiException("BAD_REQUEST", HttpStatus.BAD_REQUEST); + } + } + /** * 순서 수정 *