From c5292fa20f48e6915bd399158e0e148cb6b87773 Mon Sep 17 00:00:00 2001 From: bcjang Date: Thu, 6 Mar 2025 12:03:22 +0900 Subject: [PATCH] =?UTF-8?q?dynamodb=20=EB=9E=9C=EB=93=9C=EC=86=8C=EC=9C=A0?= =?UTF-8?q?=EC=A0=95=EB=B3=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Impl/OwnedLandRepositoryImpl.java | 32 +++++++++++++++++++ .../repository/OwnedLandRepository.java | 7 ++++ .../dynamodb/service/DynamodbLandService.java | 12 +++++++ 3 files changed, 51 insertions(+) create mode 100644 src/main/java/com/caliverse/admin/dynamodb/repository/Impl/OwnedLandRepositoryImpl.java create mode 100644 src/main/java/com/caliverse/admin/dynamodb/repository/OwnedLandRepository.java diff --git a/src/main/java/com/caliverse/admin/dynamodb/repository/Impl/OwnedLandRepositoryImpl.java b/src/main/java/com/caliverse/admin/dynamodb/repository/Impl/OwnedLandRepositoryImpl.java new file mode 100644 index 0000000..86f2c13 --- /dev/null +++ b/src/main/java/com/caliverse/admin/dynamodb/repository/Impl/OwnedLandRepositoryImpl.java @@ -0,0 +1,32 @@ +package com.caliverse.admin.dynamodb.repository.Impl; + +import com.caliverse.admin.dynamodb.domain.doc.OwnedLandDoc; +import com.caliverse.admin.dynamodb.repository.BaseDynamoDBRepository; +import com.caliverse.admin.dynamodb.repository.OwnedLandRepository; +import com.caliverse.admin.dynamodb.service.DynamoDBOperations; +import com.caliverse.admin.global.common.constants.DynamoDBConstants; +import com.caliverse.admin.history.service.DynamodbHistoryLogService; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import software.amazon.awssdk.enhanced.dynamodb.Key; + +import java.time.LocalDateTime; + +@Component +@Slf4j +public class OwnedLandRepositoryImpl extends BaseDynamoDBRepository implements OwnedLandRepository { + public OwnedLandRepositoryImpl(DynamoDBOperations operations, DynamodbHistoryLogService dynamodbHistoryLogService, ObjectMapper objectMapper) { + super(operations, OwnedLandDoc.class, dynamodbHistoryLogService, objectMapper); + } + + @Override + public OwnedLandDoc findOwnedLand(String guid, Integer landId) { + Key key = Key.builder() + .partitionValue(DynamoDBConstants.PK_KEY_OWNED_LAND + guid) + .sortValue(String.valueOf(landId)) + .build(); + + return findById(key); + } +} diff --git a/src/main/java/com/caliverse/admin/dynamodb/repository/OwnedLandRepository.java b/src/main/java/com/caliverse/admin/dynamodb/repository/OwnedLandRepository.java new file mode 100644 index 0000000..a9dfa38 --- /dev/null +++ b/src/main/java/com/caliverse/admin/dynamodb/repository/OwnedLandRepository.java @@ -0,0 +1,7 @@ +package com.caliverse.admin.dynamodb.repository; + +import com.caliverse.admin.dynamodb.domain.doc.OwnedLandDoc; + +public interface OwnedLandRepository extends DynamoDBRepository { + OwnedLandDoc findOwnedLand(String guid, Integer landId); +} diff --git a/src/main/java/com/caliverse/admin/dynamodb/service/DynamodbLandService.java b/src/main/java/com/caliverse/admin/dynamodb/service/DynamodbLandService.java index 890d2ce..a648a09 100644 --- a/src/main/java/com/caliverse/admin/dynamodb/service/DynamodbLandService.java +++ b/src/main/java/com/caliverse/admin/dynamodb/service/DynamodbLandService.java @@ -1,7 +1,9 @@ package com.caliverse.admin.dynamodb.service; import com.caliverse.admin.dynamodb.domain.atrrib.LandAttrib; +import com.caliverse.admin.dynamodb.domain.doc.OwnedLandDoc; import com.caliverse.admin.dynamodb.repository.LandRepository; +import com.caliverse.admin.dynamodb.repository.OwnedLandRepository; import com.caliverse.admin.global.common.constants.DynamoDBConstants; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -12,6 +14,7 @@ import org.springframework.stereotype.Service; @Slf4j public class DynamodbLandService { private final LandRepository landRepository; + private final OwnedLandRepository ownedLandRepository; public boolean isLandOwner(Integer landId){ LandAttrib attrib = landRepository.findLandAttrib(landId); @@ -19,4 +22,13 @@ public class DynamodbLandService { return !attrib.getOwnerUserGuid().isEmpty() && !attrib.getOwnerUserGuid().equals(DynamoDBConstants.EMPTY); } + + public LandAttrib getLandInfo(Integer landId){ + return landRepository.findLandAttrib(landId); + } + + public String getLandOwnerCreateDate(String guid, Integer landId){ + OwnedLandDoc ownedLand = ownedLandRepository.findOwnedLand(guid, landId); + return ownedLand == null ? "" : ownedLand.getCreatedDateTime(); + } }