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_OWNED_BUILDING = "owned_building#";
|
||||||
public static final String PK_KEY_BATTLE_EVENT = "management_battle_event#global";
|
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_ACCOUNT_BASE = "account_base#";
|
||||||
|
public static final String PK_KEY_USER_BASE = "user_base#";
|
||||||
|
|
||||||
//SK
|
//SK
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user