dynamodb userBase 추가
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
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.*;
|
||||
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@NoArgsConstructor
|
||||
@DynamoDbBean
|
||||
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||
public class UserBaseAttrib extends DynamoDBAttribBase {
|
||||
@JsonProperty("account_id")
|
||||
private String accountId;
|
||||
@JsonProperty("user_guid")
|
||||
private String userGuid;
|
||||
private String eoa;
|
||||
@JsonProperty("selected_character_guid")
|
||||
private String selectedCharacterGuid;
|
||||
@JsonProperty("is_intro_completed")
|
||||
private boolean isIntroCompleted;
|
||||
@JsonProperty("game_login_datetime")
|
||||
private String gameLoginDateTime;
|
||||
@JsonProperty("game_logout_datetime")
|
||||
private String gameLogoutDateTime;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.caliverse.admin.dynamodb.domain.doc;
|
||||
|
||||
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 UserBaseDoc extends DynamoDBDocBase {
|
||||
private String userBaseAttrib;
|
||||
|
||||
public String getAttribFieldName() {
|
||||
return "UserBaseAttrib";
|
||||
}
|
||||
|
||||
@DynamoDbAttribute("UserBaseAttrib")
|
||||
@JsonProperty("UserBaseAttrib")
|
||||
public String getAttribValue() {
|
||||
return userBaseAttrib;
|
||||
}
|
||||
|
||||
public void setAttribValue(String value) {
|
||||
this.userBaseAttrib = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.caliverse.admin.dynamodb.repository.Impl;
|
||||
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.UserBaseAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.UserBaseDoc;
|
||||
import com.caliverse.admin.dynamodb.repository.BaseDynamoDBRepository;
|
||||
import com.caliverse.admin.dynamodb.repository.UserBaseRepository;
|
||||
import com.caliverse.admin.dynamodb.service.DynamoDBOperations;
|
||||
import com.caliverse.admin.global.common.code.CommonCode;
|
||||
import com.caliverse.admin.global.common.code.ErrorCode;
|
||||
import com.caliverse.admin.global.common.constants.DynamoDBConstants;
|
||||
import com.caliverse.admin.global.common.exception.RestApiException;
|
||||
import com.caliverse.admin.history.service.DynamodbHistoryLogService;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import software.amazon.awssdk.enhanced.dynamodb.Key;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class UserBaseRepositoryImpl extends BaseDynamoDBRepository<UserBaseDoc> implements UserBaseRepository {
|
||||
public UserBaseRepositoryImpl(DynamoDBOperations operations, DynamodbHistoryLogService dynamodbHistoryLogService, ObjectMapper objectMapper) {
|
||||
super(operations, UserBaseDoc.class, dynamodbHistoryLogService, objectMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserBaseAttrib findUser(String guid) {
|
||||
Key key = Key.builder()
|
||||
.partitionValue(DynamoDBConstants.PK_KEY_USER_BASE + guid)
|
||||
.sortValue(DynamoDBConstants.EMPTY)
|
||||
.build();
|
||||
|
||||
UserBaseDoc doc = findById(key);
|
||||
|
||||
try {
|
||||
return objectMapper.readValue(doc.getAttribValue(), UserBaseAttrib.class);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_CONNECTION_ERROR.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.caliverse.admin.dynamodb.repository;
|
||||
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.UserBaseAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.UserBaseDoc;
|
||||
|
||||
public interface UserBaseRepository extends DynamoDBRepository<UserBaseDoc> {
|
||||
UserBaseAttrib findUser(String guid);
|
||||
}
|
||||
@@ -19,6 +19,7 @@ public class DynamoDBConstants {
|
||||
public static final String PK_KEY_OWNED_BUILDING = "owned_building#";
|
||||
public static final String PK_KEY_BATTLE_EVENT = "management_battle_event#global";
|
||||
public static final String PK_KEY_ACCOUNT_BASE = "account_base#";
|
||||
public static final String PK_KEY_USER_BASE = "user_base#";
|
||||
|
||||
//SK
|
||||
|
||||
|
||||
Reference in New Issue
Block a user