dynamodb 페이징 처리 추가
우편 조회 페이징 방식 수정
This commit is contained in:
@@ -71,11 +71,11 @@ public class UsersController {
|
||||
|
||||
return ResponseEntity.ok().body(usersService.deleteInventoryItem(requestParams));
|
||||
}
|
||||
//todo
|
||||
@GetMapping("/mail")
|
||||
|
||||
@PostMapping("/mail")
|
||||
public ResponseEntity<UsersResponse> getMail(
|
||||
@RequestParam("guid") String guid, @RequestParam("type") String type){
|
||||
return ResponseEntity.ok().body( usersService.getMail(guid,type));
|
||||
@RequestBody UsersRequest requestBody){
|
||||
return ResponseEntity.ok().body( usersService.getMail(requestBody));
|
||||
}
|
||||
@DeleteMapping("/mail/delete")
|
||||
public ResponseEntity<UsersResponse> deleteMail(
|
||||
@@ -94,25 +94,25 @@ public class UsersController {
|
||||
@RequestParam("guid") String guid){
|
||||
return ResponseEntity.ok().body( usersService.getMyhome(guid));
|
||||
}
|
||||
//todo
|
||||
|
||||
@GetMapping("/friendlist")
|
||||
public ResponseEntity<UsersResponse> getFriendList(
|
||||
@RequestParam("guid") String guid){
|
||||
return ResponseEntity.ok().body( usersService.getFriendList(guid));
|
||||
}
|
||||
//todo
|
||||
|
||||
@GetMapping("/tattoo")
|
||||
public ResponseEntity<UsersResponse> getTattoo(
|
||||
@RequestParam("guid") String guid){
|
||||
return ResponseEntity.ok().body( usersService.getTattoo(guid));
|
||||
}
|
||||
//todo
|
||||
|
||||
@GetMapping("/quest")
|
||||
public ResponseEntity<UsersResponse> getQuest(
|
||||
@RequestParam("guid") String guid){
|
||||
return ResponseEntity.ok().body( usersService.getQuest(guid));
|
||||
}
|
||||
//todo
|
||||
|
||||
/*@GetMapping("/claim")
|
||||
public ResponseEntity<UsersResponse> getClaim(
|
||||
@RequestParam("guid") String guid){
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.caliverse.admin.domain.request;
|
||||
|
||||
import com.caliverse.admin.domain.entity.SEARCHTYPE;
|
||||
import com.caliverse.admin.domain.entity.WhiteList;
|
||||
import com.caliverse.admin.dynamodb.entity.KeyParam;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.*;
|
||||
|
||||
@@ -19,4 +21,9 @@ public class UsersRequest {
|
||||
private String newNickname;
|
||||
@JsonProperty("admin_level")
|
||||
private String adminLevel;
|
||||
|
||||
@JsonProperty("mail_type")
|
||||
private SEARCHTYPE mailType;
|
||||
@JsonProperty("page_key")
|
||||
private KeyParam pageKey;
|
||||
}
|
||||
|
||||
@@ -289,9 +289,9 @@ public class UsersService {
|
||||
}
|
||||
}
|
||||
|
||||
public UsersResponse getMail(String guid, String type){
|
||||
public UsersResponse getMail(UsersRequest usersRequest){
|
||||
// List<UsersResponse.Mail> mailList = dynamoDBService.getMail(guid, type);
|
||||
PageResult<MailDoc> mailPageResult = dynamodbService.getMail(type, guid, "", "", "", null, false);
|
||||
PageResult<MailDoc> mailPageResult = dynamodbService.getMail(usersRequest.getMailType(), usersRequest.getGuid(), "", "", "", usersRequest.getPageKey(), false);
|
||||
List<UsersResponse.Mail> mailList = new ArrayList<>();
|
||||
|
||||
mailPageResult.getItems().forEach(doc -> {
|
||||
@@ -330,7 +330,9 @@ public class UsersService {
|
||||
.resultData(
|
||||
UsersResponse.ResultData.builder()
|
||||
.mailList(mailList)
|
||||
.pageKey(mailPageResult.getLastEvaluatedKey().entrySet().stream()
|
||||
.pageKey(mailPageResult.getLastEvaluatedKey() == null ?
|
||||
null :
|
||||
mailPageResult.getLastEvaluatedKey().entrySet().stream()
|
||||
.collect(Collectors.toMap(
|
||||
Map.Entry::getKey,
|
||||
entry -> entry.getValue().s()
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.caliverse.admin.dynamodb.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class KeyParam {
|
||||
@JsonProperty("PK")
|
||||
private String pk;
|
||||
@JsonProperty("SK")
|
||||
private String sk;
|
||||
}
|
||||
@@ -115,7 +115,7 @@ public class MailRepositoryImpl extends BaseDynamoDBRepository<MailDoc> implemen
|
||||
|
||||
@Override
|
||||
public PageResult<MailDoc> getMailListWithPaging(
|
||||
String type,
|
||||
SEARCHTYPE type,
|
||||
String userGuid,
|
||||
String sortKeyPrefix,
|
||||
String filterAttributeName,
|
||||
@@ -125,7 +125,7 @@ public class MailRepositoryImpl extends BaseDynamoDBRepository<MailDoc> implemen
|
||||
) {
|
||||
|
||||
String pk;
|
||||
if(type.equals(SEARCHTYPE.SEND.name())){
|
||||
if(type.equals(SEARCHTYPE.SEND)){
|
||||
pk = DynamoDBConstants.PK_KEY_SENT_MAIL + userGuid;
|
||||
} else {
|
||||
pk = DynamoDBConstants.PK_KEY_RECV_MAIL + userGuid;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.caliverse.admin.dynamodb.repository;
|
||||
|
||||
import com.caliverse.admin.domain.entity.Mail;
|
||||
import com.caliverse.admin.domain.entity.SEARCHTYPE;
|
||||
import com.caliverse.admin.domain.entity.metadata.MetaSystemMailData;
|
||||
import com.caliverse.admin.domain.request.MailRequest;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.MailDoc;
|
||||
@@ -16,7 +17,7 @@ public interface MailRepository extends DynamoDBRepository<MailDoc> {
|
||||
void insertSentMail(Mail mail);
|
||||
List<MailDoc> getMailList(String type, String userGuid, String sortKeyPrefix);
|
||||
PageResult<MailDoc> getMailListWithPaging(
|
||||
String type,
|
||||
SEARCHTYPE type,
|
||||
String userGuid,
|
||||
String sortKeyPrefix,
|
||||
String filterAttributeName,
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.caliverse.admin.dynamodb.service;
|
||||
import com.caliverse.admin.Indicators.entity.MoneyLogInfo;
|
||||
import com.caliverse.admin.domain.datacomponent.MetaDataHandler;
|
||||
import com.caliverse.admin.domain.entity.Event;
|
||||
import com.caliverse.admin.domain.entity.SEARCHTYPE;
|
||||
import com.caliverse.admin.domain.entity.metadata.MetaLandData;
|
||||
import com.caliverse.admin.domain.entity.metadata.MetaSystemMailData;
|
||||
import com.caliverse.admin.domain.request.LandRequest;
|
||||
@@ -10,6 +11,7 @@ import com.caliverse.admin.dynamodb.domain.atrrib.MoneyAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.UserNicknameRegistryAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.MailDoc;
|
||||
import com.caliverse.admin.dynamodb.dto.PageResult;
|
||||
import com.caliverse.admin.dynamodb.entity.KeyParam;
|
||||
import com.caliverse.admin.dynamodb.entity.MailItem;
|
||||
import com.caliverse.admin.dynamodb.repository.MailRepository;
|
||||
import com.caliverse.admin.dynamodb.repository.MoneyRepository;
|
||||
@@ -31,6 +33,7 @@ import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -96,7 +99,13 @@ public class DynamodbService {
|
||||
mailRepository.insertRecvSystemMail(guid, nickname, items, systemMailData, arguments);
|
||||
}
|
||||
|
||||
public PageResult<MailDoc> getMail(String type, String guid, String sortKey, String filterName, String filterValue, Map<String, AttributeValue> pagingKey, boolean sortIndex){
|
||||
public PageResult<MailDoc> getMail(SEARCHTYPE type, String guid, String sortKey, String filterName, String filterValue, KeyParam pageKey, boolean sortIndex){
|
||||
Map<String, AttributeValue> pagingKey = null;
|
||||
if(pageKey != null){
|
||||
pagingKey = new HashMap<>();
|
||||
pagingKey.put(DynamoDBConstants.PK_KEY_NAME, AttributeValue.builder().s(pageKey.getPk()).build());
|
||||
pagingKey.put(DynamoDBConstants.SK_KEY_NAME, AttributeValue.builder().s(pageKey.getSk()).build());
|
||||
}
|
||||
PageResult<MailDoc> mailList = mailRepository.getMailListWithPaging(type, guid, sortKey, filterName, filterValue, pagingKey, sortIndex);
|
||||
return mailList;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public class CommonConstants {
|
||||
public static final String LAND_AUCTION = "auction";
|
||||
public static final String LAND_EVENT = "event";
|
||||
public static final String SYSTEM_MAIL_LAND_TRANS_KEY = "LandTrans";
|
||||
public static final int DYNAMODB_PAGING_SIZE = 20;
|
||||
public static final int DYNAMODB_PAGING_SIZE = 30;
|
||||
|
||||
public static final String FORMAT_DATE_ISO_DATETIME_MILLIS = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
|
||||
public static final String FORMAT_DATE_ISO_DATETIME_MILLIS_NANO = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'";
|
||||
|
||||
@@ -6,6 +6,7 @@ public class DynamoDBConstants {
|
||||
public static final String CONSUMED_WRITE_CAPACITY = "ConsumedWriteCapacityUnits";
|
||||
|
||||
//PK
|
||||
public static final String PK_KEY_NAME = "PK";
|
||||
public static final String PK_KEY_CALIUM = "calium#storage";
|
||||
public static final String PK_KEY_SYSTEM_MAIL = "management_system_meta_mail#global";
|
||||
public static final String PK_KEY_LAND_AUCTION_REGISTRY = "land_auction_registry#global";
|
||||
@@ -27,6 +28,7 @@ public class DynamoDBConstants {
|
||||
public static final String PK_KEY_SENT_MAIL = "sent_mail#";
|
||||
|
||||
//SK
|
||||
public static final String SK_KEY_NAME = "SK";
|
||||
|
||||
//Attribute
|
||||
public static final String ATTRIB_CALIUM = "CaliumStorageAttrib";
|
||||
|
||||
Reference in New Issue
Block a user