dynamodb nickname 추가
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package com.caliverse.admin.dynamodb.domain.atrrib;
|
||||
|
||||
import com.caliverse.admin.dynamodb.entity.EOwnerEntityType;
|
||||
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 NicknameAttrib extends DynamoDBAttribBase {
|
||||
|
||||
private String nickname;
|
||||
|
||||
@JsonProperty("owner_guid")
|
||||
private String ownerGuid;
|
||||
|
||||
@JsonProperty("owner_entity_type")
|
||||
private EOwnerEntityType ownerEntityType;
|
||||
}
|
||||
@@ -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 NicknameDoc extends DynamoDBDocBase {
|
||||
private String nicknameAttrib;
|
||||
|
||||
public String getAttribFieldName() {
|
||||
return "NicknameAttrib";
|
||||
}
|
||||
|
||||
@DynamoDbAttribute("NicknameAttrib")
|
||||
@JsonProperty("NicknameAttrib")
|
||||
public String getAttribValue() {
|
||||
return nicknameAttrib;
|
||||
}
|
||||
|
||||
public void setAttribValue(String value) {
|
||||
this.nicknameAttrib = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.caliverse.admin.dynamodb.entity;
|
||||
|
||||
|
||||
import com.caliverse.admin.domain.entity.common.ValueEnum;
|
||||
|
||||
public enum EOwnerEntityType implements ValueEnum {
|
||||
None(0),
|
||||
User(1),
|
||||
Character(2),
|
||||
UgcNpc(3),
|
||||
Myhome(4),
|
||||
Land(5),
|
||||
Building(6),
|
||||
;
|
||||
|
||||
private final int value;
|
||||
|
||||
EOwnerEntityType(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.caliverse.admin.dynamodb.repository.Impl;
|
||||
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.NicknameAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.NicknameDoc;
|
||||
import com.caliverse.admin.dynamodb.repository.BaseDynamoDBRepository;
|
||||
import com.caliverse.admin.dynamodb.repository.NicknameRepository;
|
||||
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 NicknameRepositoryImpl extends BaseDynamoDBRepository<NicknameDoc> implements NicknameRepository {
|
||||
public NicknameRepositoryImpl(DynamoDBOperations operations, DynamodbHistoryLogService dynamodbHistoryLogService, ObjectMapper objectMapper) {
|
||||
super(operations, NicknameDoc.class, dynamodbHistoryLogService, objectMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NicknameAttrib findUser(String guid) {
|
||||
Key key = Key.builder()
|
||||
.partitionValue(DynamoDBConstants.PK_KEY_NICKNAME + guid)
|
||||
.sortValue(DynamoDBConstants.EMPTY)
|
||||
.build();
|
||||
|
||||
NicknameDoc doc = findById(key);
|
||||
|
||||
try {
|
||||
return objectMapper.readValue(doc.getAttribValue(), NicknameAttrib.class);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_CONNECTION_ERROR.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,15 @@
|
||||
package com.caliverse.admin.dynamodb.repository.Impl;
|
||||
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.AccountBaseAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.UserNicknameRegistryAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.UserNicknameRegistryDoc;
|
||||
import com.caliverse.admin.dynamodb.repository.BaseDynamoDBRepository;
|
||||
import com.caliverse.admin.dynamodb.repository.UserNicknameRegistryRepository;
|
||||
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.JsonNode;
|
||||
@@ -25,6 +29,20 @@ public class UserNicknameRegistryRepositoryImpl extends BaseDynamoDBRepository<U
|
||||
super(operations, UserNicknameRegistryDoc.class, dynamodbHistoryLogService, objectMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserNicknameRegistryAttrib findUser(String nickname) {
|
||||
Key key = Key.builder()
|
||||
.partitionValue(DynamoDBConstants.PK_KEY_USER_NICKNAME_REGISTRY)
|
||||
.build();
|
||||
|
||||
UserNicknameRegistryDoc doc = findById(key);
|
||||
try {
|
||||
return objectMapper.readValue(doc.getAttribValue(), UserNicknameRegistryAttrib.class);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_CONNECTION_ERROR.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> findAllNicknameByGuid() {
|
||||
Key key = Key.builder()
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.caliverse.admin.dynamodb.repository;
|
||||
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.NicknameAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.NicknameDoc;
|
||||
|
||||
public interface NicknameRepository extends DynamoDBRepository<NicknameDoc> {
|
||||
NicknameAttrib findUser(String guid);
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.caliverse.admin.dynamodb.repository;
|
||||
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.UserBaseAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.UserNicknameRegistryAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.UserNicknameRegistryDoc;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface UserNicknameRegistryRepository extends DynamoDBRepository<UserNicknameRegistryDoc> {
|
||||
UserNicknameRegistryAttrib findUser(String nickname);
|
||||
List<String> findAllNicknameByGuid();
|
||||
List<UserNicknameRegistryAttrib> findAllAttrib();
|
||||
}
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
package com.caliverse.admin.dynamodb.service;
|
||||
|
||||
import com.caliverse.admin.domain.entity.BlackList;
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.NicknameAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.UserBaseAttrib;
|
||||
import com.caliverse.admin.dynamodb.repository.*;
|
||||
import com.caliverse.admin.global.common.annotation.DynamoDBTransaction;
|
||||
import com.caliverse.admin.global.common.code.CommonCode;
|
||||
import com.caliverse.admin.global.common.code.ErrorCode;
|
||||
import com.caliverse.admin.global.common.exception.RestApiException;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -17,27 +21,20 @@ import org.springframework.stereotype.Service;
|
||||
public class DynamodbUserService {
|
||||
private final AccountBaseRepository accountBaseRepository;
|
||||
private final UserBaseRepository userBaseRepository;
|
||||
private final UserNicknameRegistryRepository registryRepository;
|
||||
private final NicknameRepository nicknameRepository;
|
||||
|
||||
private final ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
public boolean isBlockUser(String account_id){
|
||||
public boolean isBlockUser(String guid){
|
||||
String account_id = getGuidByAccountId(guid);
|
||||
return accountBaseRepository.isBlockUser(account_id);
|
||||
}
|
||||
|
||||
@DynamoDBTransaction
|
||||
public void updateBlockUser(BlackList.STATUSTYPE status, BlackList blackList){
|
||||
String guid = blackList.getGuid();
|
||||
UserBaseAttrib userBaseAttrib = userBaseRepository.findUser(guid);
|
||||
if(userBaseAttrib == null){
|
||||
try {
|
||||
log.error("updateBlockUser UserBase Null blackList: {}", mapper.writeValueAsString(blackList));
|
||||
}catch (JsonProcessingException e){
|
||||
log.error("updateBlockUser BlackList JsonProcessingException");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
String account_id = userBaseAttrib.getAccountId();
|
||||
String account_id = getGuidByAccountId(guid);
|
||||
|
||||
if(status.equals(BlackList.STATUSTYPE.INPROGRESS)){
|
||||
accountBaseRepository.updateBlockUserStart(account_id, blackList);
|
||||
@@ -47,4 +44,24 @@ public class DynamodbUserService {
|
||||
}
|
||||
}
|
||||
|
||||
public String getGuidByName(String guid){
|
||||
NicknameAttrib nicknameAttrib = nicknameRepository.findUser(guid);
|
||||
if(nicknameAttrib == null){
|
||||
log.error("getGuidByName Nickname Null guid: {}", guid);
|
||||
return "";
|
||||
}
|
||||
|
||||
return nicknameAttrib.getNickname();
|
||||
}
|
||||
|
||||
public String getGuidByAccountId(String guid){
|
||||
UserBaseAttrib userBaseAttrib = userBaseRepository.findUser(guid);
|
||||
if(userBaseAttrib == null){
|
||||
log.error("getGuidByAccountId UserBase Null guid: {}", guid);
|
||||
return "";
|
||||
}
|
||||
|
||||
return userBaseAttrib.getAccountId();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ public class DynamoDBConstants {
|
||||
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#";
|
||||
public static final String PK_KEY_NICKNAME = "nickname#";
|
||||
|
||||
//SK
|
||||
|
||||
|
||||
Reference in New Issue
Block a user