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 b2bf08c0..79734de6 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 @@ -1,5 +1,6 @@ package com.kamco.cd.kamcoback.postgres.core; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.kamco.cd.kamcoback.common.enums.LayerType; import com.kamco.cd.kamcoback.common.utils.UserUtil; @@ -22,7 +23,11 @@ public class MapLayerCoreService { * @param addDto */ public void save(WmtsAddDto addDto) { - + Long order = 0L; + MapLayerEntity entity = mapLayerRepository.findSortOrderDesc().orElse(null); + if (entity != null) { + order = entity.getOrder() == null ? order : entity.getOrder() + 10; + } try { String rawJson = objectMapper.writeValueAsString(addDto.getWmtsLayerInfo()); // data 없는 형태로 저장 MapLayerEntity mapLayerEntity = new MapLayerEntity(); @@ -32,11 +37,11 @@ public class MapLayerCoreService { mapLayerEntity.setRawJson(rawJson); mapLayerEntity.setIsChangeMap(true); mapLayerEntity.setIsLabelingMap(true); - mapLayerEntity.setOrder(10L); + mapLayerEntity.setOrder(order); mapLayerEntity.setLayerType(LayerType.WMTS.getId()); mapLayerRepository.save(mapLayerEntity); - } catch (Exception e) { - e.printStackTrace(); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); } // diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapLayerEntity.java b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapLayerEntity.java index 79cc0dbe..df915a5a 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapLayerEntity.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapLayerEntity.java @@ -93,6 +93,6 @@ public class MapLayerEntity { @Column(name = "is_labeling_map") private Boolean isLabelingMap; - @Column(name = "order") + @Column(name = "sort_order") private Long order; } 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 fd964cca..a17a16ed 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 @@ -1,3 +1,8 @@ package com.kamco.cd.kamcoback.postgres.repository.layer; -public interface MapLayerRepositoryCustom {} +import com.kamco.cd.kamcoback.postgres.entity.MapLayerEntity; +import java.util.Optional; + +public interface MapLayerRepositoryCustom { + Optional findSortOrderDesc(); +} 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 ad4f5306..155ba7f6 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 @@ -1,6 +1,27 @@ package com.kamco.cd.kamcoback.postgres.repository.layer; +import static com.kamco.cd.kamcoback.postgres.entity.QMapLayerEntity.mapLayerEntity; + +import com.kamco.cd.kamcoback.postgres.entity.MapLayerEntity; +import com.querydsl.jpa.impl.JPAQueryFactory; +import java.util.Optional; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; @Repository -public class MapLayerRepositoryImpl {} +@RequiredArgsConstructor +public class MapLayerRepositoryImpl implements MapLayerRepositoryCustom { + + private final JPAQueryFactory queryFactory; + + @Override + public Optional findSortOrderDesc() { + return Optional.ofNullable( + queryFactory + .selectFrom(mapLayerEntity) + .where(mapLayerEntity.order.isNotNull()) + .orderBy(mapLayerEntity.order.desc()) + .limit(1) + .fetchOne()); + } +}