월드이벤트 dynamodb 추가

This commit is contained in:
2025-11-24 15:33:00 +09:00
parent dae7b80c9b
commit 44948b5ccd
5 changed files with 157 additions and 6 deletions

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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<WorldEventGlobalScoreDoc> implements WorldEventScoreRepository {
public WorldEventScoreRepositoryImpl(DynamoDBOperations operations, DynamodbHistoryLogService dynamodbHistoryLogService, ObjectMapper objectMapper) {
super(operations, WorldEventGlobalScoreDoc.class, dynamodbHistoryLogService, objectMapper);
}
@Override
public PageResult<WorldEventGlobalScoreDoc> getWorldEventScoreListWithPaging(String sortKeyPrefix, String filterAttributeName, EFilterOperator filterOperator, String filterAttributeValue, Map<String, AttributeValue> 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;
}
}

View File

@@ -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<WorldEventGlobalScoreDoc> {
PageResult<WorldEventGlobalScoreDoc> getWorldEventScoreListWithPaging(
String sortKeyPrefix,
String filterAttributeName,
EFilterOperator filterOperator,
String filterAttributeValue,
Map<String, AttributeValue> exclusiveStartKey,
boolean sortIndex
);
WorldEventGlobalScoreAttrib findWorldEventScore(Integer eventId);
}