diff --git a/src/main/java/com/caliverse/admin/dynamodb/domain/atrrib/WorldEventGlobalScoreAttrib.java b/src/main/java/com/caliverse/admin/dynamodb/domain/atrrib/WorldEventGlobalScoreAttrib.java new file mode 100644 index 0000000..8f847fd --- /dev/null +++ b/src/main/java/com/caliverse/admin/dynamodb/domain/atrrib/WorldEventGlobalScoreAttrib.java @@ -0,0 +1,38 @@ +package com.caliverse.admin.dynamodb.domain.atrrib; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; +import com.fasterxml.jackson.databind.annotation.JsonNaming; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; +import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbAttribute; +import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean; + +@Getter +@Setter +@ToString(callSuper = true) +@NoArgsConstructor +@DynamoDbBean +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) +public class WorldEventGlobalScoreAttrib { + @JsonProperty("world_event_id") + private String worldEventId; + private Integer score; + @JsonProperty("update_time") + private String updateTime; + + @DynamoDbAttribute("world_event_id") + public String getRankingGuid() { + return worldEventId; + } + @DynamoDbAttribute("score") + public Integer getScore() { + return score; + } + @DynamoDbAttribute("update_time") + public String getUpdateTime() { + return updateTime; + } +} diff --git a/src/main/java/com/caliverse/admin/dynamodb/domain/doc/WorldEventGlobalScoreDoc.java b/src/main/java/com/caliverse/admin/dynamodb/domain/doc/WorldEventGlobalScoreDoc.java new file mode 100644 index 0000000..1cbb949 --- /dev/null +++ b/src/main/java/com/caliverse/admin/dynamodb/domain/doc/WorldEventGlobalScoreDoc.java @@ -0,0 +1,31 @@ +package com.caliverse.admin.dynamodb.domain.doc; + +import com.caliverse.admin.dynamodb.domain.atrrib.WorldEventGlobalScoreAttrib; +import com.caliverse.admin.global.common.constants.DynamoDBConstants; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbAttribute; +import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean; + +@EqualsAndHashCode(callSuper = true) +@NoArgsConstructor +@DynamoDbBean +public class WorldEventGlobalScoreDoc extends DynamoDBDocBase { + private WorldEventGlobalScoreAttrib attrib; + + public String getAttribFieldName() { + return DynamoDBConstants.ATTRIB_WORLD_EVENT_SCORE; + } + + @DynamoDbAttribute(DynamoDBConstants.ATTRIB_WORLD_EVENT_SCORE) + @JsonProperty(DynamoDBConstants.ATTRIB_WORLD_EVENT_SCORE) + public WorldEventGlobalScoreAttrib getAttribValue() { + return attrib; + } + + public void setAttribValue(WorldEventGlobalScoreAttrib value) { + this.attrib = value; + } +} + diff --git a/src/main/java/com/caliverse/admin/dynamodb/domain/doc/WorldEventScheduleDoc.java b/src/main/java/com/caliverse/admin/dynamodb/domain/doc/WorldEventScheduleDoc.java index 42989be..747d54d 100644 --- a/src/main/java/com/caliverse/admin/dynamodb/domain/doc/WorldEventScheduleDoc.java +++ b/src/main/java/com/caliverse/admin/dynamodb/domain/doc/WorldEventScheduleDoc.java @@ -11,20 +11,20 @@ import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean; @NoArgsConstructor @DynamoDbBean public class WorldEventScheduleDoc extends DynamoDBDocBase { - private String battleEventAttrib; + private String attrib; public String getAttribFieldName() { - return DynamoDBConstants.ATTRIB_RANKING_SCHEDULER; + return DynamoDBConstants.ATTRIB_WORLD_EVENT_SCHEDULER; } - @DynamoDbAttribute("BattleEventAttrib") - @JsonProperty("BattleEventAttrib") + @DynamoDbAttribute(DynamoDBConstants.ATTRIB_WORLD_EVENT_SCHEDULER) + @JsonProperty(DynamoDBConstants.ATTRIB_WORLD_EVENT_SCHEDULER) public String getAttribValue() { - return battleEventAttrib; + return attrib; } public void setAttribValue(String value) { - this.battleEventAttrib = value; + this.attrib = value; } } diff --git a/src/main/java/com/caliverse/admin/dynamodb/repository/Impl/WorldEventScoreRepositoryImpl.java b/src/main/java/com/caliverse/admin/dynamodb/repository/Impl/WorldEventScoreRepositoryImpl.java new file mode 100644 index 0000000..7db5fda --- /dev/null +++ b/src/main/java/com/caliverse/admin/dynamodb/repository/Impl/WorldEventScoreRepositoryImpl.java @@ -0,0 +1,61 @@ +package com.caliverse.admin.dynamodb.repository.Impl; + +import com.caliverse.admin.domain.entity.EFilterOperator; +import com.caliverse.admin.dynamodb.domain.atrrib.WorldEventGlobalScoreAttrib; +import com.caliverse.admin.dynamodb.domain.doc.WorldEventGlobalScoreDoc; +import com.caliverse.admin.dynamodb.dto.PageResult; +import com.caliverse.admin.dynamodb.repository.BaseDynamoDBRepository; +import com.caliverse.admin.dynamodb.repository.WorldEventScoreRepository; +import com.caliverse.admin.dynamodb.service.DynamoDBOperations; +import com.caliverse.admin.global.common.constants.DynamoDBConstants; +import com.caliverse.admin.mongodb.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 software.amazon.awssdk.services.dynamodb.model.AttributeValue; + +import java.util.Map; + +@Component +@Slf4j +public class WorldEventScoreRepositoryImpl extends BaseDynamoDBRepository implements WorldEventScoreRepository { + public WorldEventScoreRepositoryImpl(DynamoDBOperations operations, DynamodbHistoryLogService dynamodbHistoryLogService, ObjectMapper objectMapper) { + super(operations, WorldEventGlobalScoreDoc.class, dynamodbHistoryLogService, objectMapper); + } + + @Override + public PageResult getWorldEventScoreListWithPaging(String sortKeyPrefix, String filterAttributeName, EFilterOperator filterOperator, String filterAttributeValue, Map exclusiveStartKey, boolean sortIndex) { + String pk = DynamoDBConstants.PK_KEY_WORLD_EVENT_TOTAL_SCORE; + + return findByPaging( + pk, + sortKeyPrefix, + filterAttributeName, + filterOperator, + filterAttributeValue, + exclusiveStartKey, + sortIndex + ); + } + + @Override + public WorldEventGlobalScoreAttrib findWorldEventScore(Integer eventId) { + Key key = Key.builder() + .partitionValue(DynamoDBConstants.PK_KEY_WORLD_EVENT_TOTAL_SCORE) + .sortValue(eventId.toString()) + .build(); + + WorldEventGlobalScoreDoc doc = findById(key); + + if(doc != null){ + try { + return doc.getAttribValue(); + }catch (Exception e){ + log.error("findWorldEventScore Error: {}", e.getMessage()); + return null; + } + } + return null; + } +} diff --git a/src/main/java/com/caliverse/admin/dynamodb/repository/WorldEventScoreRepository.java b/src/main/java/com/caliverse/admin/dynamodb/repository/WorldEventScoreRepository.java new file mode 100644 index 0000000..927af24 --- /dev/null +++ b/src/main/java/com/caliverse/admin/dynamodb/repository/WorldEventScoreRepository.java @@ -0,0 +1,21 @@ +package com.caliverse.admin.dynamodb.repository; + +import com.caliverse.admin.domain.entity.EFilterOperator; +import com.caliverse.admin.dynamodb.domain.atrrib.WorldEventGlobalScoreAttrib; +import com.caliverse.admin.dynamodb.domain.doc.WorldEventGlobalScoreDoc; +import com.caliverse.admin.dynamodb.dto.PageResult; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; + +import java.util.Map; + +public interface WorldEventScoreRepository extends DynamoDBRepository { + PageResult getWorldEventScoreListWithPaging( + String sortKeyPrefix, + String filterAttributeName, + EFilterOperator filterOperator, + String filterAttributeValue, + Map exclusiveStartKey, + boolean sortIndex + ); + WorldEventGlobalScoreAttrib findWorldEventScore(Integer eventId); +}