MailJson 타입으로 추가생성
This commit is contained in:
@@ -10,9 +10,11 @@ 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.atrrib.MailJsonAttrib;
|
||||
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.global.common.utils.DynamodbUtil;
|
||||
import com.caliverse.admin.redis.service.RedisUserInfoService;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -296,31 +298,57 @@ public class UsersService {
|
||||
|
||||
mailPageResult.getItems().forEach(doc -> {
|
||||
try {
|
||||
MailAttrib attrib = objectMapper.readValue(doc.getAttribValue(), MailAttrib.class);
|
||||
|
||||
// MailAttrib attrib = objectMapper.readValue(doc.getAttribValue(), MailAttrib.class);
|
||||
MailAttrib attrib = doc.getAttribValue();
|
||||
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);
|
||||
});
|
||||
if(attrib == null){
|
||||
MailJsonAttrib mailJsonAttrib = dynamodbService.getMailJsonAttrib(doc.getPK(),doc.getSK());
|
||||
mailJsonAttrib.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);
|
||||
UsersResponse.Mail mail = UsersResponse.Mail.builder()
|
||||
.mailGuid(mailJsonAttrib.getMailGuid())
|
||||
.title(mailJsonAttrib.getTitle())
|
||||
.content(mailJsonAttrib.getText())
|
||||
.senderNickname(mailJsonAttrib.getSenderNickName())
|
||||
.receiveNickname(mailJsonAttrib.getReceiverNickName())
|
||||
.status(mailJsonAttrib.isRead())
|
||||
.isSystemMail(mailJsonAttrib.isSystemMail())
|
||||
.isGetItem(mailJsonAttrib.isGetItem())
|
||||
.createDt(mailJsonAttrib.getCreateTime())
|
||||
.mailItemList(itemList)
|
||||
.build();
|
||||
mailList.add(mail);
|
||||
}else{
|
||||
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(Boolean.parseBoolean(attrib.getIsRead()))
|
||||
.isSystemMail(Boolean.parseBoolean(attrib.getIsSystemMail()))
|
||||
.isGetItem(Boolean.parseBoolean(attrib.getIsGetItem()))
|
||||
.createDt(attrib.getCreateTime())
|
||||
.mailItemList(itemList)
|
||||
.build();
|
||||
mailList.add(mail);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
return;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.caliverse.admin.dynamodb.domain.atrrib;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
@@ -17,4 +18,7 @@ public abstract class DynamoDBAttribBase {
|
||||
//객체일때는 사용안하고 Json으로 Attrib이 생성될때만 사용(상속 안받는걸로)
|
||||
@JsonProperty("attrib_type")
|
||||
private String attribType;
|
||||
|
||||
@JsonIgnore
|
||||
private transient boolean isSaveToJson = true;
|
||||
}
|
||||
@@ -5,27 +5,26 @@ 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.DynamoDbAttribute;
|
||||
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@NoArgsConstructor
|
||||
@DynamoDbBean
|
||||
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||
public class MailAttrib extends DynamoDBAttribBase{
|
||||
public class MailAttrib{
|
||||
@JsonProperty("mail_guid")
|
||||
private String mailGuid;
|
||||
|
||||
@JsonProperty("is_read")
|
||||
private boolean isRead;
|
||||
private String isRead;
|
||||
@JsonProperty("is_get_item")
|
||||
private boolean isGetItem;
|
||||
private String isGetItem;
|
||||
@JsonProperty("is_system_mail")
|
||||
private boolean isSystemMail;
|
||||
private String isSystemMail;
|
||||
|
||||
@JsonProperty("sender_nickname")
|
||||
private String senderNickName;
|
||||
@@ -44,11 +43,80 @@ public class MailAttrib extends DynamoDBAttribBase{
|
||||
@JsonProperty("expire_time")
|
||||
private String expireTime;
|
||||
@JsonProperty("is_text_by_meta_data")
|
||||
private boolean isTextByMetaData;
|
||||
private String isTextByMetaData;
|
||||
@JsonProperty("item_list")
|
||||
private List<MailItem> itemList;
|
||||
private List<MailItemAttrib> itemList;
|
||||
@JsonProperty("package_order_id")
|
||||
private String packageOrderId;
|
||||
@JsonProperty("contents_arguments")
|
||||
private List<String> contentsArguments;
|
||||
|
||||
@DynamoDbAttribute("mail_guid")
|
||||
public String getMailGuid() {
|
||||
return mailGuid;
|
||||
}
|
||||
|
||||
@DynamoDbAttribute("is_read")
|
||||
public String getIsRead() {
|
||||
return isRead;
|
||||
}
|
||||
|
||||
@DynamoDbAttribute("is_get_item")
|
||||
public String getIsGetItem() {
|
||||
return isGetItem;
|
||||
}
|
||||
|
||||
@DynamoDbAttribute("is_system_mail")
|
||||
public String getIsSystemMail() {
|
||||
return isSystemMail;
|
||||
}
|
||||
|
||||
@DynamoDbAttribute("sender_nickname")
|
||||
public String getSenderNickName() {
|
||||
return senderNickName;
|
||||
}
|
||||
@DynamoDbAttribute("sender_guid")
|
||||
public String getSenderGuid() {
|
||||
return senderGuid;
|
||||
}
|
||||
@DynamoDbAttribute("receiver_nickname")
|
||||
public String getReceiverNickName() {
|
||||
return receiverNickName;
|
||||
}
|
||||
@DynamoDbAttribute("receiver_guid")
|
||||
public String getReceiverGuid() {
|
||||
return receiverGuid;
|
||||
}
|
||||
@DynamoDbAttribute("title")
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
@DynamoDbAttribute("text")
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
@DynamoDbAttribute("create_time")
|
||||
public String getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
@DynamoDbAttribute("expire_time")
|
||||
public String getExpireTime() {
|
||||
return expireTime;
|
||||
}
|
||||
@DynamoDbAttribute("is_text_by_meta_data")
|
||||
public String getIsTextByMetaData() {
|
||||
return isTextByMetaData;
|
||||
}
|
||||
@DynamoDbAttribute("item_list")
|
||||
public List<MailItemAttrib> getItemList() {
|
||||
return itemList;
|
||||
}
|
||||
@DynamoDbAttribute("package_order_id")
|
||||
public String getPackageOrderId() {
|
||||
return packageOrderId;
|
||||
}
|
||||
@DynamoDbAttribute("contents_arguments")
|
||||
public List<String> getContentsArguments() {
|
||||
return contentsArguments;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.caliverse.admin.dynamodb.domain.atrrib;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbAttribute;
|
||||
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@DynamoDbBean
|
||||
public class MailItemAttrib {
|
||||
@JsonProperty("ItemId")
|
||||
private Integer itemId;
|
||||
@JsonProperty("Count")
|
||||
private Double count;
|
||||
@JsonProperty("ProductId")
|
||||
private Integer productId;
|
||||
@JsonProperty("isRepeatProduct")
|
||||
private String isRepeatProduct;
|
||||
|
||||
@DynamoDbAttribute("ItemId")
|
||||
public Integer getItemId() {
|
||||
return itemId;
|
||||
}
|
||||
@DynamoDbAttribute("Count")
|
||||
public Double getCount() {
|
||||
return count;
|
||||
}
|
||||
@DynamoDbAttribute("ProductId")
|
||||
public Integer getProductId() {
|
||||
return productId;
|
||||
}
|
||||
@DynamoDbAttribute("bid_start_price")
|
||||
public String getBidStartPrice() {
|
||||
return isRepeatProduct;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.caliverse.admin.dynamodb.domain.atrrib;
|
||||
|
||||
import com.caliverse.admin.dynamodb.entity.MailItem;
|
||||
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;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@NoArgsConstructor
|
||||
@DynamoDbBean
|
||||
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||
public class MailJsonAttrib extends DynamoDBAttribBase{
|
||||
@JsonProperty("mail_guid")
|
||||
private String mailGuid;
|
||||
|
||||
@JsonProperty("is_read")
|
||||
private boolean isRead;
|
||||
@JsonProperty("is_get_item")
|
||||
private boolean isGetItem;
|
||||
@JsonProperty("is_system_mail")
|
||||
private boolean isSystemMail;
|
||||
|
||||
@JsonProperty("sender_nickname")
|
||||
private String senderNickName;
|
||||
@JsonProperty("sender_guid")
|
||||
private String senderGuid;
|
||||
@JsonProperty("receiver_nickname")
|
||||
private String receiverNickName;
|
||||
@JsonProperty("receiver_guid")
|
||||
private String receiverGuid;
|
||||
|
||||
private String title;
|
||||
private String text;
|
||||
|
||||
@JsonProperty("create_time")
|
||||
private String createTime;
|
||||
@JsonProperty("expire_time")
|
||||
private String expireTime;
|
||||
@JsonProperty("is_text_by_meta_data")
|
||||
private boolean isTextByMetaData;
|
||||
@JsonProperty("item_list")
|
||||
private List<MailItem> itemList;
|
||||
@JsonProperty("package_order_id")
|
||||
private String packageOrderId;
|
||||
@JsonProperty("contents_arguments")
|
||||
private List<String> contentsArguments;
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.caliverse.admin.dynamodb.domain.doc;
|
||||
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.MailAttrib;
|
||||
import com.caliverse.admin.global.common.constants.DynamoDBConstants;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbAttribute;
|
||||
@@ -13,7 +13,7 @@ import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean;
|
||||
@NoArgsConstructor
|
||||
@DynamoDbBean
|
||||
public class MailDoc extends DynamoDBDocBase {
|
||||
private String mailAttrib;
|
||||
private MailAttrib mailAttrib;
|
||||
@Setter
|
||||
private long ttl;
|
||||
|
||||
@@ -23,7 +23,7 @@ public class MailDoc extends DynamoDBDocBase {
|
||||
|
||||
@DynamoDbAttribute(DynamoDBConstants.ATTRIB_MAIL)
|
||||
@JsonProperty(DynamoDBConstants.ATTRIB_MAIL)
|
||||
public String getAttribValue() {
|
||||
public MailAttrib getAttribValue() {
|
||||
return mailAttrib;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public class MailDoc extends DynamoDBDocBase {
|
||||
return ttl;
|
||||
}
|
||||
|
||||
public void setAttribValue(String value) {
|
||||
public void setAttribValue(MailAttrib value) {
|
||||
this.mailAttrib = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.caliverse.admin.dynamodb.domain.doc;
|
||||
|
||||
import com.caliverse.admin.global.common.constants.DynamoDBConstants;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
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 MailJsonDoc extends DynamoDBDocBase {
|
||||
private String mailAttrib;
|
||||
@Setter
|
||||
private long ttl;
|
||||
|
||||
public String getAttribFieldName() {
|
||||
return DynamoDBConstants.ATTRIB_MAIL;
|
||||
}
|
||||
|
||||
@DynamoDbAttribute(DynamoDBConstants.ATTRIB_MAIL)
|
||||
@JsonProperty(DynamoDBConstants.ATTRIB_MAIL)
|
||||
public String getAttribValue() {
|
||||
return mailAttrib;
|
||||
}
|
||||
|
||||
@DynamoDbAttribute("TTL")
|
||||
@JsonProperty("TTL")
|
||||
public long getTtl() {
|
||||
return ttl;
|
||||
}
|
||||
|
||||
public void setAttribValue(String value) {
|
||||
this.mailAttrib = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,11 +5,13 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@DynamoDbBean
|
||||
public class MailItem {
|
||||
@JsonProperty("ItemId")
|
||||
private Integer itemId;
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
package com.caliverse.admin.dynamodb.repository.Impl;
|
||||
|
||||
import com.caliverse.admin.domain.entity.HISTORYTYPE;
|
||||
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.dynamodb.domain.atrrib.MailJsonAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.MailDoc;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.MailJsonDoc;
|
||||
import com.caliverse.admin.dynamodb.dto.PageResult;
|
||||
import com.caliverse.admin.dynamodb.entity.MailItem;
|
||||
import com.caliverse.admin.dynamodb.repository.BaseDynamoDBRepository;
|
||||
import com.caliverse.admin.dynamodb.repository.MailJsonRepository;
|
||||
import com.caliverse.admin.dynamodb.repository.MailRepository;
|
||||
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.global.common.utils.CommonUtils;
|
||||
import com.caliverse.admin.global.common.utils.DateUtils;
|
||||
import com.caliverse.admin.history.service.DynamodbHistoryLogService;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.caliverse.admin.global.common.utils.CommonUtils.convertUTCDate;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class MailJsonRepositoryImpl extends BaseDynamoDBRepository<MailJsonDoc> implements MailJsonRepository {
|
||||
public MailJsonRepositoryImpl(DynamoDBOperations operations, DynamodbHistoryLogService dynamodbHistoryLogService, ObjectMapper objectMapper) {
|
||||
super(operations, MailJsonDoc.class, dynamodbHistoryLogService, objectMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertRecvSystemMail(String userGuid, String nickname, List<MailItem> mailItems, MetaSystemMailData systemMailData, List<String> arguments) {
|
||||
try {
|
||||
LocalDateTime nowDate = LocalDateTime.now();
|
||||
LocalDateTime maxDate = DateUtils.getMaxTime();
|
||||
|
||||
String expireTime = DateUtils.stringToISODateTimeMillisNano(maxDate);
|
||||
|
||||
String pk = DynamoDBConstants.PK_KEY_RECV_MAIL + userGuid;
|
||||
String sk = String.format("%s-%s", DateUtils.getMailDateFormat(nowDate), CommonUtils.getCreateGuId().replace("-",""));
|
||||
|
||||
MailJsonAttrib attrib = new MailJsonAttrib();
|
||||
attrib.setMailGuid(sk);
|
||||
attrib.setRead(false);
|
||||
attrib.setGetItem(false);
|
||||
attrib.setSystemMail(true);
|
||||
attrib.setSenderNickName(systemMailData.getSender());
|
||||
attrib.setSenderGuid("");
|
||||
attrib.setReceiverNickName(nickname);
|
||||
attrib.setReceiverGuid(userGuid);
|
||||
attrib.setTitle(systemMailData.getMailTitle());
|
||||
attrib.setText(systemMailData.getMailDesc());
|
||||
attrib.setExpireTime(expireTime);
|
||||
attrib.setCreateTime(DateUtils.stringToISODateTimeMillisNano(nowDate));
|
||||
attrib.setTextByMetaData(true);
|
||||
attrib.setItemList(mailItems);
|
||||
attrib.setPackageOrderId("");
|
||||
attrib.setContentsArguments(arguments);
|
||||
|
||||
MailJsonDoc doc = new MailJsonDoc();
|
||||
doc.setPK(pk);
|
||||
doc.setSK(sk);
|
||||
doc.setDocType(DynamoDBConstants.DOC_Mail);
|
||||
doc.setAttribValue(objectMapper.writeValueAsString(attrib));
|
||||
doc.setCreatedDateTime(convertUTCDate(nowDate));
|
||||
doc.setUpdatedDateTime(convertUTCDate(nowDate));
|
||||
doc.setDeletedDateTime(DynamoDBConstants.MIN_DATE);
|
||||
doc.setRestoredDateTime(DynamoDBConstants.MIN_DATE);
|
||||
doc.setTtl(DateUtils.dateToISOUnixTime(maxDate));
|
||||
|
||||
save(doc);
|
||||
|
||||
log.info("MailDoc Recv Insert Success: {}", objectMapper.writeValueAsString(doc));
|
||||
|
||||
dynamodbHistoryLogService.insertHistoryLog(
|
||||
HISTORYTYPE.LAND_OWNER_CHANGE_MAIL,
|
||||
HISTORYTYPE.LAND_OWNER_CHANGE_MAIL.name(),
|
||||
doc
|
||||
);
|
||||
|
||||
}catch (Exception e){
|
||||
log.error("insert Error: {}", e.getMessage());
|
||||
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_CONNECTION_ERROR.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertSentMail(Mail mail) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MailJsonDoc> getMailList(String type, String userGuid, String sortKeyPrefix) {
|
||||
String pk;
|
||||
|
||||
if(type.equals(SEARCHTYPE.SEND.name())){
|
||||
pk = DynamoDBConstants.PK_KEY_RECV_MAIL + userGuid;
|
||||
}else{
|
||||
pk = DynamoDBConstants.PK_KEY_SENT_MAIL + userGuid;
|
||||
}
|
||||
|
||||
List<MailJsonDoc> mailList = findByPrefix(pk, sortKeyPrefix);
|
||||
|
||||
return mailList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MailJsonDoc> getMailListWithPaging(
|
||||
SEARCHTYPE type,
|
||||
String userGuid,
|
||||
String sortKeyPrefix,
|
||||
String filterAttributeName,
|
||||
String filterAttributeValue,
|
||||
Map<String, AttributeValue> exclusiveStartKey,
|
||||
boolean sortIndex
|
||||
) {
|
||||
|
||||
String pk;
|
||||
if(type.equals(SEARCHTYPE.SEND)){
|
||||
pk = DynamoDBConstants.PK_KEY_SENT_MAIL + userGuid;
|
||||
} else {
|
||||
pk = DynamoDBConstants.PK_KEY_RECV_MAIL + userGuid;
|
||||
}
|
||||
|
||||
return findByPaging(
|
||||
pk,
|
||||
sortKeyPrefix,
|
||||
filterAttributeName,
|
||||
filterAttributeValue,
|
||||
exclusiveStartKey,
|
||||
sortIndex
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ 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.dynamodb.domain.atrrib.MailAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.MailItemAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.MailDoc;
|
||||
import com.caliverse.admin.dynamodb.dto.PageResult;
|
||||
import com.caliverse.admin.dynamodb.entity.MailItem;
|
||||
@@ -13,6 +14,7 @@ import com.caliverse.admin.dynamodb.repository.MailRepository;
|
||||
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.CommonConstants;
|
||||
import com.caliverse.admin.global.common.constants.DynamoDBConstants;
|
||||
import com.caliverse.admin.global.common.exception.RestApiException;
|
||||
import com.caliverse.admin.global.common.utils.CommonUtils;
|
||||
@@ -37,7 +39,7 @@ public class MailRepositoryImpl extends BaseDynamoDBRepository<MailDoc> implemen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertRecvSystemMail(String userGuid, String nickname, List<MailItem> mailItems, MetaSystemMailData systemMailData, List<String> arguments) {
|
||||
public void insertRecvSystemMail(String userGuid, String nickname, List<MailItemAttrib> mailItems, MetaSystemMailData systemMailData, List<String> arguments) {
|
||||
try {
|
||||
LocalDateTime nowDate = LocalDateTime.now();
|
||||
LocalDateTime maxDate = DateUtils.getMaxTime();
|
||||
@@ -48,11 +50,10 @@ public class MailRepositoryImpl extends BaseDynamoDBRepository<MailDoc> implemen
|
||||
String sk = String.format("%s-%s", DateUtils.getMailDateFormat(nowDate), CommonUtils.getCreateGuId().replace("-",""));
|
||||
|
||||
MailAttrib attrib = new MailAttrib();
|
||||
attrib.setAttribType(DynamoDBConstants.ATTRIB_MAIL);
|
||||
attrib.setMailGuid(sk);
|
||||
attrib.setRead(false);
|
||||
attrib.setGetItem(false);
|
||||
attrib.setSystemMail(true);
|
||||
attrib.setIsRead(CommonConstants.FALSE);
|
||||
attrib.setIsGetItem(CommonConstants.FALSE);
|
||||
attrib.setIsSystemMail(CommonConstants.TRUE);
|
||||
attrib.setSenderNickName(systemMailData.getSender());
|
||||
attrib.setSenderGuid("");
|
||||
attrib.setReceiverNickName(nickname);
|
||||
@@ -61,7 +62,7 @@ public class MailRepositoryImpl extends BaseDynamoDBRepository<MailDoc> implemen
|
||||
attrib.setText(systemMailData.getMailDesc());
|
||||
attrib.setExpireTime(expireTime);
|
||||
attrib.setCreateTime(DateUtils.stringToISODateTimeMillisNano(nowDate));
|
||||
attrib.setTextByMetaData(true);
|
||||
attrib.setIsTextByMetaData(CommonConstants.TRUE);
|
||||
attrib.setItemList(mailItems);
|
||||
attrib.setPackageOrderId("");
|
||||
attrib.setContentsArguments(arguments);
|
||||
@@ -70,7 +71,7 @@ public class MailRepositoryImpl extends BaseDynamoDBRepository<MailDoc> implemen
|
||||
doc.setPK(pk);
|
||||
doc.setSK(sk);
|
||||
doc.setDocType(DynamoDBConstants.DOC_Mail);
|
||||
doc.setAttribValue(objectMapper.writeValueAsString(attrib));
|
||||
doc.setAttribValue(attrib);
|
||||
doc.setCreatedDateTime(convertUTCDate(nowDate));
|
||||
doc.setUpdatedDateTime(convertUTCDate(nowDate));
|
||||
doc.setDeletedDateTime(DynamoDBConstants.MIN_DATE);
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
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.dynamodb.domain.doc.MailDoc;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.MailJsonDoc;
|
||||
import com.caliverse.admin.dynamodb.dto.PageResult;
|
||||
import com.caliverse.admin.dynamodb.entity.MailItem;
|
||||
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface MailJsonRepository extends DynamoDBRepository<MailJsonDoc> {
|
||||
void insertRecvSystemMail(String userGuid, String nickname, List<MailItem> mailItems, MetaSystemMailData systemMailData, List<String> arguments);
|
||||
void insertSentMail(Mail mail);
|
||||
List<MailJsonDoc> getMailList(String type, String userGuid, String sortKeyPrefix);
|
||||
PageResult<MailJsonDoc> getMailListWithPaging(
|
||||
SEARCHTYPE type,
|
||||
String userGuid,
|
||||
String sortKeyPrefix,
|
||||
String filterAttributeName,
|
||||
String filterAttributeValue,
|
||||
Map<String, AttributeValue> exclusiveStartKey,
|
||||
boolean sortIndex
|
||||
);
|
||||
}
|
||||
@@ -4,6 +4,7 @@ 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.atrrib.MailItemAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.doc.MailDoc;
|
||||
import com.caliverse.admin.dynamodb.dto.PageResult;
|
||||
import com.caliverse.admin.dynamodb.entity.MailItem;
|
||||
@@ -13,7 +14,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface MailRepository extends DynamoDBRepository<MailDoc> {
|
||||
void insertRecvSystemMail(String userGuid, String nickname, List<MailItem> mailItems, MetaSystemMailData systemMailData, List<String> arguments);
|
||||
void insertRecvSystemMail(String userGuid, String nickname, List<MailItemAttrib> mailItems, MetaSystemMailData systemMailData, List<String> arguments);
|
||||
void insertSentMail(Mail mail);
|
||||
List<MailDoc> getMailList(String type, String userGuid, String sortKeyPrefix);
|
||||
PageResult<MailDoc> getMailListWithPaging(
|
||||
|
||||
@@ -7,16 +7,16 @@ 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;
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.MailItemAttrib;
|
||||
import com.caliverse.admin.dynamodb.domain.atrrib.MailJsonAttrib;
|
||||
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.domain.doc.MailJsonDoc;
|
||||
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;
|
||||
import com.caliverse.admin.dynamodb.repository.SystemMetaMailRepository;
|
||||
import com.caliverse.admin.dynamodb.repository.UserNicknameRegistryRepository;
|
||||
import com.caliverse.admin.dynamodb.repository.*;
|
||||
import com.caliverse.admin.global.common.annotation.DynamoDBTransaction;
|
||||
import com.caliverse.admin.global.common.constants.AdminConstants;
|
||||
import com.caliverse.admin.global.common.constants.CommonConstants;
|
||||
@@ -29,6 +29,7 @@ import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import software.amazon.awssdk.enhanced.dynamodb.Key;
|
||||
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -46,6 +47,7 @@ public class DynamodbService {
|
||||
private final MoneyRepository moneyRepository;
|
||||
private final SystemMetaMailRepository systemMetaMailRepository;
|
||||
private final MailRepository mailRepository;
|
||||
private final MailJsonRepository mailJsonRepository;
|
||||
|
||||
private final IndicatorsMoneyService moneyService;
|
||||
|
||||
@@ -87,12 +89,12 @@ public class DynamodbService {
|
||||
|
||||
String guid = landRequest.getUserGuid();
|
||||
String nickname = landRequest.getUserName();
|
||||
List<MailItem> items = new ArrayList<>();
|
||||
items.add(MailItem.builder()
|
||||
List<MailItemAttrib> items = new ArrayList<>();
|
||||
items.add(MailItemAttrib.builder()
|
||||
.itemId(landData.getLinkedItem())
|
||||
.count(1.0)
|
||||
.productId(0)
|
||||
.isRepeatProduct(false)
|
||||
.isRepeatProduct(CommonConstants.FALSE)
|
||||
.build()
|
||||
);
|
||||
|
||||
@@ -109,4 +111,18 @@ public class DynamodbService {
|
||||
PageResult<MailDoc> mailList = mailRepository.getMailListWithPaging(type, guid, sortKey, filterName, filterValue, pagingKey, sortIndex);
|
||||
return mailList;
|
||||
}
|
||||
|
||||
public MailJsonAttrib getMailJsonAttrib(String pk, String sk){
|
||||
try {
|
||||
Key key = Key.builder()
|
||||
.partitionValue(pk)
|
||||
.sortValue(sk)
|
||||
.build();
|
||||
MailJsonDoc mailDoc = mailJsonRepository.findById(key);
|
||||
return mapper.readValue(mailDoc.getAttribValue(), MailJsonAttrib.class);
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user