dynamodb 페이징 처리
This commit is contained in:
@@ -4,16 +4,23 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.caliverse.admin.domain.entity.FriendRequest;
|
||||
import com.caliverse.admin.domain.entity.HISTORYTYPE;
|
||||
import com.caliverse.admin.domain.request.MailRequest;
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.MailAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.MailDoc;
|
||||
import com.caliverse.admin.dynamodb.dto.PageResult;
|
||||
import com.caliverse.admin.dynamodb.service.DynamodbService;
|
||||
import com.caliverse.admin.redis.service.RedisUserInfoService;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.json.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.caliverse.admin.domain.datacomponent.MetaDataHandler;
|
||||
@@ -34,6 +41,7 @@ public class UsersService {
|
||||
private static final Logger logger = LoggerFactory.getLogger(UsersService.class);
|
||||
|
||||
private final DynamoDBService dynamoDBService;
|
||||
private final DynamodbService dynamodbService;
|
||||
private final HistoryService historyService;
|
||||
private final UserGameSessionService userGameSessionService;
|
||||
private final RedisUserInfoService redisUserInfoService;
|
||||
@@ -41,6 +49,9 @@ public class UsersService {
|
||||
//metadataHandler 어떻게 가져와야 되는가
|
||||
@Autowired
|
||||
private MetaDataHandler metaDataHandler;
|
||||
@Qualifier("objectMapper")
|
||||
@Autowired
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
// 닉네임 변경
|
||||
public UsersResponse changeNickname(UsersRequest usersRequest){
|
||||
@@ -279,12 +290,52 @@ public class UsersService {
|
||||
}
|
||||
|
||||
public UsersResponse getMail(String guid, String type){
|
||||
// List<UsersResponse.Mail> mailList = dynamoDBService.getMail(guid, type);
|
||||
PageResult<MailDoc> mailPageResult = dynamodbService.getMail(type, guid, "", "", "", null, false);
|
||||
List<UsersResponse.Mail> mailList = new ArrayList<>();
|
||||
|
||||
List<UsersResponse.Mail> mailList = dynamoDBService.getMail(guid, type);;
|
||||
mailPageResult.getItems().forEach(doc -> {
|
||||
try {
|
||||
MailAttrib attrib = objectMapper.readValue(doc.getAttribValue(), MailAttrib.class);
|
||||
|
||||
List<UsersResponse.MailItem> itemList = new ArrayList<>();
|
||||
attrib.getItemList().forEach(item -> {
|
||||
UsersResponse.MailItem mailItem = new UsersResponse.MailItem();
|
||||
mailItem.setItemId(CommonUtils.objectToString(item.getItemId()));
|
||||
mailItem.setCount(item.getCount());
|
||||
String item_nm = metaDataHandler.getMetaItemNameData(item.getItemId());
|
||||
mailItem.setItemName(metaDataHandler.getTextStringData(item_nm));
|
||||
itemList.add(mailItem);
|
||||
});
|
||||
|
||||
UsersResponse.Mail mail = UsersResponse.Mail.builder()
|
||||
.mailGuid(attrib.getMailGuid())
|
||||
.title(attrib.getTitle())
|
||||
.content(attrib.getText())
|
||||
.senderNickname(attrib.getSenderNickName())
|
||||
.receiveNickname(attrib.getReceiverNickName())
|
||||
.status(attrib.isRead())
|
||||
.isSystemMail(attrib.isSystemMail())
|
||||
.isGetItem(attrib.isGetItem())
|
||||
.createDt(attrib.getCreateTime())
|
||||
.mailItemList(itemList)
|
||||
.build();
|
||||
mailList.add(mail);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
return;
|
||||
}
|
||||
});
|
||||
return UsersResponse.builder()
|
||||
.resultData(
|
||||
UsersResponse.ResultData.builder()
|
||||
.mailList(mailList)
|
||||
.pageKey(mailPageResult.getLastEvaluatedKey().entrySet().stream()
|
||||
.collect(Collectors.toMap(
|
||||
Map.Entry::getKey,
|
||||
entry -> entry.getValue().s()
|
||||
))
|
||||
)
|
||||
.build()
|
||||
)
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
|
||||
Reference in New Issue
Block a user