dynamodb 랭커, 랭킹 스케줄, 월드이벤트 추가
This commit is contained in:
@@ -0,0 +1,32 @@
|
|||||||
|
package com.caliverse.admin.dynamodb.domain.atrrib;
|
||||||
|
|
||||||
|
import com.caliverse.admin.dynamodb.entity.EIntervalType;
|
||||||
|
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.Map;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@NoArgsConstructor
|
||||||
|
@DynamoDbBean
|
||||||
|
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||||
|
public class RankerAttrib extends DynamoDBAttribBase{
|
||||||
|
@JsonProperty("ranking_guid")
|
||||||
|
private String rankingGuid;
|
||||||
|
@JsonProperty("ranker_guid")
|
||||||
|
private String rankerGuid;
|
||||||
|
@JsonProperty("ranker_entity_type")
|
||||||
|
private String rankerEntityType;
|
||||||
|
private Integer score;
|
||||||
|
@JsonProperty("score_type")
|
||||||
|
private String scoreType;
|
||||||
|
@JsonProperty("update_time")
|
||||||
|
private String updateTime;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.caliverse.admin.dynamodb.domain.atrrib;
|
||||||
|
|
||||||
|
import com.caliverse.admin.dynamodb.entity.EIntervalType;
|
||||||
|
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.Map;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@NoArgsConstructor
|
||||||
|
@DynamoDbBean
|
||||||
|
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||||
|
public class RankingScheduleAttrib extends DynamoDBAttribBase{
|
||||||
|
@JsonProperty("ranking_guid")
|
||||||
|
private String rankingGuid;
|
||||||
|
@JsonProperty("ranking_meta_id")
|
||||||
|
private Integer rankingMetaId;
|
||||||
|
@JsonProperty("event_action_score_group_id")
|
||||||
|
private Integer eventActionScoreGroupId;
|
||||||
|
@JsonProperty("start_time")
|
||||||
|
private String startTime;
|
||||||
|
@JsonProperty("end_time")
|
||||||
|
private String endTime;
|
||||||
|
@JsonProperty("interval_base_time")
|
||||||
|
private String intervalBaseTime;
|
||||||
|
|
||||||
|
private Map<EIntervalType, Integer> interval;
|
||||||
|
}
|
||||||
@@ -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 WorldEventScheduleAttrib extends DynamoDBAttribBase{
|
||||||
|
private Integer id;
|
||||||
|
@JsonProperty("global_event_action_group_id")
|
||||||
|
private Integer globalEventActionGroupId;
|
||||||
|
@JsonProperty("personal_event_action_group_id")
|
||||||
|
private Integer personalEventActionGroupId;
|
||||||
|
@JsonProperty("global_event_contribution_point_max")
|
||||||
|
private Integer globalEventContributionPointMax;
|
||||||
|
@JsonProperty("start_time")
|
||||||
|
private String startTime;
|
||||||
|
@JsonProperty("end_time")
|
||||||
|
private String endTime;
|
||||||
|
@JsonProperty("is_active")
|
||||||
|
private boolean isActive;
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
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 RankerDoc extends DynamoDBDocBase {
|
||||||
|
private String attrib;
|
||||||
|
@Setter
|
||||||
|
private long ttl;
|
||||||
|
|
||||||
|
public String getAttribFieldName() {
|
||||||
|
return DynamoDBConstants.ATTRIB_RANKER;
|
||||||
|
}
|
||||||
|
|
||||||
|
@DynamoDbAttribute(DynamoDBConstants.ATTRIB_RANKER)
|
||||||
|
@JsonProperty(DynamoDBConstants.ATTRIB_RANKER)
|
||||||
|
public String getAttribValue() {
|
||||||
|
return attrib;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttribValue(String value) {
|
||||||
|
this.attrib = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
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 RankingScheduleDoc extends DynamoDBDocBase {
|
||||||
|
private String attrib;
|
||||||
|
@Setter
|
||||||
|
private long ttl;
|
||||||
|
|
||||||
|
public String getAttribFieldName() {
|
||||||
|
return DynamoDBConstants.ATTRIB_RANKING_SCHEDULER;
|
||||||
|
}
|
||||||
|
|
||||||
|
@DynamoDbAttribute(DynamoDBConstants.ATTRIB_RANKING_SCHEDULER)
|
||||||
|
@JsonProperty(DynamoDBConstants.ATTRIB_RANKING_SCHEDULER)
|
||||||
|
public String getAttribValue() {
|
||||||
|
return attrib;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttribValue(String value) {
|
||||||
|
this.attrib = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
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 software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbAttribute;
|
||||||
|
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@NoArgsConstructor
|
||||||
|
@DynamoDbBean
|
||||||
|
public class WorldEventScheduleDoc extends DynamoDBDocBase {
|
||||||
|
private String battleEventAttrib;
|
||||||
|
|
||||||
|
public String getAttribFieldName() {
|
||||||
|
return DynamoDBConstants.ATTRIB_RANKING_SCHEDULER;
|
||||||
|
}
|
||||||
|
|
||||||
|
@DynamoDbAttribute("BattleEventAttrib")
|
||||||
|
@JsonProperty("BattleEventAttrib")
|
||||||
|
public String getAttribValue() {
|
||||||
|
return battleEventAttrib;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttribValue(String value) {
|
||||||
|
this.battleEventAttrib = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.caliverse.admin.dynamodb.entity;
|
||||||
|
|
||||||
|
|
||||||
|
import com.caliverse.admin.domain.entity.common.ValueEnum;
|
||||||
|
|
||||||
|
public enum EIntervalType implements ValueEnum {
|
||||||
|
None(0),
|
||||||
|
Refresh(1),
|
||||||
|
Initialization (2),
|
||||||
|
Snapshot (3),
|
||||||
|
;
|
||||||
|
|
||||||
|
private final int value;
|
||||||
|
|
||||||
|
EIntervalType(int value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,158 @@
|
|||||||
|
package com.caliverse.admin.dynamodb.repository.Impl;
|
||||||
|
|
||||||
|
import com.caliverse.admin.domain.request.RankRequest;
|
||||||
|
import com.caliverse.admin.dynamodb.domain.atrrib.RankingScheduleAttrib;
|
||||||
|
import com.caliverse.admin.dynamodb.domain.doc.RankingScheduleDoc;
|
||||||
|
import com.caliverse.admin.dynamodb.entity.DynamodbOperationResult;
|
||||||
|
import com.caliverse.admin.dynamodb.entity.EIntervalType;
|
||||||
|
import com.caliverse.admin.dynamodb.repository.BaseDynamoDBRepository;
|
||||||
|
import com.caliverse.admin.dynamodb.repository.RankingSchedulerRepository;
|
||||||
|
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.mongodb.service.DynamodbHistoryLogService;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import software.amazon.awssdk.enhanced.dynamodb.Key;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static com.caliverse.admin.global.common.utils.CommonUtils.convertUTCDate;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class RankingScheduleRepositoryImpl extends BaseDynamoDBRepository<RankingScheduleDoc> implements RankingSchedulerRepository {
|
||||||
|
public RankingScheduleRepositoryImpl(DynamoDBOperations operations, DynamodbHistoryLogService dynamodbHistoryLogService, ObjectMapper objectMapper) {
|
||||||
|
super(operations, RankingScheduleDoc.class, dynamodbHistoryLogService, objectMapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isEvent(Integer sk){
|
||||||
|
Key key = Key.builder()
|
||||||
|
.partitionValue(DynamoDBConstants.PK_KEY_RANKING_SCHEDULER)
|
||||||
|
.sortValue(String.valueOf(sk))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
RankingScheduleDoc doc = findById(key);
|
||||||
|
|
||||||
|
return doc != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insert(RankRequest rankRequest) {
|
||||||
|
if(isEvent(rankRequest.getId().intValue())){
|
||||||
|
log.error("insert EventId: {} is duplication", rankRequest.getId());
|
||||||
|
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_CONNECTION_ERROR.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
LocalDateTime nowDate = LocalDateTime.now();
|
||||||
|
|
||||||
|
try {
|
||||||
|
RankingScheduleAttrib attrib = new RankingScheduleAttrib();
|
||||||
|
attrib.setAttribType(DynamoDBConstants.ATTRIB_RANKING_SCHEDULER);
|
||||||
|
attrib.setStartTime(convertUTCDate(rankRequest.getStartDt()));
|
||||||
|
attrib.setEndTime(convertUTCDate(rankRequest.getEndDt()));
|
||||||
|
attrib.setIntervalBaseTime(convertUTCDate(rankRequest.getBaseDt()));
|
||||||
|
attrib.setRankingGuid(rankRequest.getGuid());
|
||||||
|
attrib.setRankingMetaId(rankRequest.getMetaId());
|
||||||
|
attrib.setEventActionScoreGroupId(rankRequest.getEventActionId());
|
||||||
|
|
||||||
|
Map<EIntervalType, Integer> intervalList = new HashMap<>();
|
||||||
|
intervalList.put(EIntervalType.Refresh, rankRequest.getRefreshInterval());
|
||||||
|
intervalList.put(EIntervalType.Initialization, rankRequest.getInitializationInterval());
|
||||||
|
intervalList.put(EIntervalType.Snapshot, rankRequest.getSnapshotInterval());
|
||||||
|
attrib.setInterval(intervalList);
|
||||||
|
|
||||||
|
RankingScheduleDoc doc = new RankingScheduleDoc();
|
||||||
|
doc.setPK(DynamoDBConstants.PK_KEY_RANKING_SCHEDULER);
|
||||||
|
doc.setSK(rankRequest.getGuid());
|
||||||
|
doc.setDocType(DynamoDBConstants.DOC_RANKING_SCHEDULER);
|
||||||
|
doc.setAttribValue(objectMapper.writeValueAsString(attrib));
|
||||||
|
doc.setCreatedDateTime(convertUTCDate(nowDate));
|
||||||
|
doc.setUpdatedDateTime(convertUTCDate(nowDate));
|
||||||
|
doc.setDeletedDateTime(DynamoDBConstants.MIN_DATE);
|
||||||
|
doc.setRestoredDateTime(DynamoDBConstants.MIN_DATE);
|
||||||
|
|
||||||
|
save(doc);
|
||||||
|
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("insert Error: {}", e.getMessage());
|
||||||
|
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_CONNECTION_ERROR.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(RankRequest rankRequest) {
|
||||||
|
LocalDateTime nowDate = LocalDateTime.now();
|
||||||
|
|
||||||
|
try {
|
||||||
|
Key key = Key.builder()
|
||||||
|
.partitionValue(DynamoDBConstants.PK_KEY_RANKING_SCHEDULER)
|
||||||
|
.sortValue(rankRequest.getGuid())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
RankingScheduleDoc beforeDoc = findById(key);
|
||||||
|
|
||||||
|
if (beforeDoc != null) {
|
||||||
|
RankingScheduleDoc afterDoc = deepCopy(beforeDoc, RankingScheduleDoc.class);
|
||||||
|
|
||||||
|
RankingScheduleAttrib attrib = objectMapper.readValue(afterDoc.getAttribValue(), RankingScheduleAttrib.class);
|
||||||
|
attrib.setStartTime(convertUTCDate(rankRequest.getStartDt()));
|
||||||
|
attrib.setEndTime(convertUTCDate(rankRequest.getEndDt()));
|
||||||
|
attrib.setIntervalBaseTime(convertUTCDate(rankRequest.getBaseDt()));
|
||||||
|
attrib.setRankingGuid(rankRequest.getGuid());
|
||||||
|
attrib.setRankingMetaId(rankRequest.getMetaId());
|
||||||
|
attrib.setEventActionScoreGroupId(rankRequest.getEventActionId());
|
||||||
|
|
||||||
|
Map<EIntervalType, Integer> intervalList = new HashMap<>();
|
||||||
|
intervalList.put(EIntervalType.Refresh, rankRequest.getRefreshInterval());
|
||||||
|
intervalList.put(EIntervalType.Initialization, rankRequest.getInitializationInterval());
|
||||||
|
intervalList.put(EIntervalType.Snapshot, rankRequest.getSnapshotInterval());
|
||||||
|
attrib.setInterval(intervalList);
|
||||||
|
|
||||||
|
afterDoc.setAttribValue(objectMapper.writeValueAsString(attrib));
|
||||||
|
afterDoc.setUpdatedDateTime(CommonUtils.convertUTCDate(nowDate));
|
||||||
|
|
||||||
|
update(afterDoc);
|
||||||
|
|
||||||
|
log.info("RankingScheduleDoc Update Success: {}", objectMapper.writeValueAsString(afterDoc));
|
||||||
|
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_CONNECTION_ERROR.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DynamodbOperationResult delete(String guid) {
|
||||||
|
try{
|
||||||
|
Key key = Key.builder()
|
||||||
|
.partitionValue(DynamoDBConstants.PK_KEY_RANKING_SCHEDULER)
|
||||||
|
.sortValue(guid)
|
||||||
|
.build();
|
||||||
|
RankingScheduleDoc doc = findById(key);
|
||||||
|
|
||||||
|
if(doc != null) {
|
||||||
|
Key detailKey = Key.builder()
|
||||||
|
.partitionValue(doc.getPK())
|
||||||
|
.sortValue(doc.getSK())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
delete(detailKey);
|
||||||
|
|
||||||
|
log.info("RankingScheduleDoc Delete Success: {}", objectMapper.writeValueAsString(doc));
|
||||||
|
|
||||||
|
return new DynamodbOperationResult(true, "", doc);
|
||||||
|
}
|
||||||
|
return new DynamodbOperationResult(true, "null", null);
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("delete RankingScheduleDoc Error: {}", e.getMessage());
|
||||||
|
return new DynamodbOperationResult(false, e.getMessage(), null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.caliverse.admin.dynamodb.repository.Impl;
|
package com.caliverse.admin.dynamodb.repository.Impl;
|
||||||
|
|
||||||
import com.caliverse.admin.domain.entity.Event;
|
import com.caliverse.admin.domain.entity.RewardEvent;
|
||||||
import com.caliverse.admin.domain.entity.Message;
|
import com.caliverse.admin.domain.entity.Message;
|
||||||
import com.caliverse.admin.dynamodb.domain.atrrib.SystemMetaMailAttrib;
|
import com.caliverse.admin.dynamodb.domain.atrrib.SystemMetaMailAttrib;
|
||||||
import com.caliverse.admin.dynamodb.domain.doc.SystemMetaMailDoc;
|
import com.caliverse.admin.dynamodb.domain.doc.SystemMetaMailDoc;
|
||||||
@@ -33,23 +33,23 @@ public class SystemMetaMailRepositoryImpl extends BaseDynamoDBRepository<SystemM
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void insert(Event event) {
|
public void insert(RewardEvent rewardEvent) {
|
||||||
try {
|
try {
|
||||||
LocalDateTime nowDate = LocalDateTime.now();
|
LocalDateTime nowDate = LocalDateTime.now();
|
||||||
|
|
||||||
SystemMetaMailAttrib attrib = new SystemMetaMailAttrib();
|
SystemMetaMailAttrib attrib = new SystemMetaMailAttrib();
|
||||||
attrib.setAttribType(DynamoDBConstants.ATTRIB_SYSTEMMAIL);
|
attrib.setAttribType(DynamoDBConstants.ATTRIB_SYSTEMMAIL);
|
||||||
attrib.setMailId(event.getId().intValue());
|
attrib.setMailId(rewardEvent.getId().intValue());
|
||||||
attrib.setStartTime(convertUTCDate(event.getStartDt()));
|
attrib.setStartTime(convertUTCDate(rewardEvent.getStartDt()));
|
||||||
attrib.setEndTime(convertUTCDate(event.getEndDt()));
|
attrib.setEndTime(convertUTCDate(rewardEvent.getEndDt()));
|
||||||
attrib.setSenderNickName(createSystemMessages(event.getMailList(), DynamodbUtil::getSenderByLanguage));
|
attrib.setSenderNickName(createSystemMessages(rewardEvent.getMailList(), DynamodbUtil::getSenderByLanguage));
|
||||||
attrib.setTitle(createSystemMessages(event.getMailList(), Message::getTitle));
|
attrib.setTitle(createSystemMessages(rewardEvent.getMailList(), Message::getTitle));
|
||||||
attrib.setText(createSystemMessages(event.getMailList(), Message::getContent));
|
attrib.setText(createSystemMessages(rewardEvent.getMailList(), Message::getContent));
|
||||||
attrib.setItemList(createMailItems(event.getItemList()));
|
attrib.setItemList(createMailItems(rewardEvent.getItemList()));
|
||||||
|
|
||||||
SystemMetaMailDoc doc = new SystemMetaMailDoc();
|
SystemMetaMailDoc doc = new SystemMetaMailDoc();
|
||||||
doc.setPK(DynamoDBConstants.PK_KEY_SYSTEM_MAIL);
|
doc.setPK(DynamoDBConstants.PK_KEY_SYSTEM_MAIL);
|
||||||
doc.setSK(String.valueOf(event.getId()));
|
doc.setSK(String.valueOf(rewardEvent.getId()));
|
||||||
doc.setDocType(DynamoDBConstants.DOC_SYSTEMMAIL);
|
doc.setDocType(DynamoDBConstants.DOC_SYSTEMMAIL);
|
||||||
doc.setAttribValue(objectMapper.writeValueAsString(attrib));
|
doc.setAttribValue(objectMapper.writeValueAsString(attrib));
|
||||||
doc.setCreatedDateTime(convertUTCDate(nowDate));
|
doc.setCreatedDateTime(convertUTCDate(nowDate));
|
||||||
|
|||||||
@@ -0,0 +1,144 @@
|
|||||||
|
package com.caliverse.admin.dynamodb.repository.Impl;
|
||||||
|
|
||||||
|
import com.caliverse.admin.domain.request.WorldEventRequest;
|
||||||
|
import com.caliverse.admin.dynamodb.domain.atrrib.WorldEventScheduleAttrib;
|
||||||
|
import com.caliverse.admin.dynamodb.domain.doc.WorldEventScheduleDoc;
|
||||||
|
import com.caliverse.admin.dynamodb.entity.DynamodbOperationResult;
|
||||||
|
import com.caliverse.admin.dynamodb.repository.BaseDynamoDBRepository;
|
||||||
|
import com.caliverse.admin.dynamodb.repository.WorldEventScheduleRepository;
|
||||||
|
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.mongodb.service.DynamodbHistoryLogService;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import software.amazon.awssdk.enhanced.dynamodb.Key;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static com.caliverse.admin.global.common.utils.CommonUtils.convertUTCDate;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class WorldEventRepositoryImpl extends BaseDynamoDBRepository<WorldEventScheduleDoc> implements WorldEventScheduleRepository {
|
||||||
|
public WorldEventRepositoryImpl(DynamoDBOperations operations, DynamodbHistoryLogService dynamodbHistoryLogService, ObjectMapper objectMapper) {
|
||||||
|
super(operations, WorldEventScheduleDoc.class, dynamodbHistoryLogService, objectMapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isEvent(Integer sk){
|
||||||
|
Key key = Key.builder()
|
||||||
|
.partitionValue(DynamoDBConstants.PK_KEY_WORLD_EVENT_SCHEDULER)
|
||||||
|
.sortValue(String.valueOf(sk))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
WorldEventScheduleDoc doc = findById(key);
|
||||||
|
|
||||||
|
return doc != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insert(WorldEventRequest worldEventRequest) {
|
||||||
|
if(isEvent(worldEventRequest.getId().intValue())){
|
||||||
|
log.error("insert EventId: {} is duplication", worldEventRequest.getId());
|
||||||
|
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_CONNECTION_ERROR.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
LocalDateTime nowDate = LocalDateTime.now();
|
||||||
|
|
||||||
|
try {
|
||||||
|
WorldEventScheduleAttrib attrib = new WorldEventScheduleAttrib();
|
||||||
|
attrib.setAttribType(DynamoDBConstants.ATTRIB_WORLD_EVENT_SCHEDULER);
|
||||||
|
attrib.setActive(true);
|
||||||
|
attrib.setId(worldEventRequest.getId().intValue());
|
||||||
|
attrib.setStartTime(convertUTCDate(worldEventRequest.getStartDt()));
|
||||||
|
attrib.setEndTime(convertUTCDate(worldEventRequest.getEndDt()));
|
||||||
|
attrib.setGlobalEventContributionPointMax(worldEventRequest.getMaxPoint());
|
||||||
|
attrib.setGlobalEventActionGroupId(worldEventRequest.getGlobalEventActionId());
|
||||||
|
attrib.setPersonalEventActionGroupId(worldEventRequest.getPersonalEventActionId());
|
||||||
|
|
||||||
|
WorldEventScheduleDoc doc = new WorldEventScheduleDoc();
|
||||||
|
doc.setPK(DynamoDBConstants.PK_KEY_WORLD_EVENT_SCHEDULER);
|
||||||
|
doc.setSK(String.valueOf(worldEventRequest.getId()));
|
||||||
|
doc.setDocType(DynamoDBConstants.DOC_WORLD_EVENT_SCHEDULER);
|
||||||
|
doc.setAttribValue(objectMapper.writeValueAsString(attrib));
|
||||||
|
doc.setCreatedDateTime(convertUTCDate(nowDate));
|
||||||
|
doc.setUpdatedDateTime(convertUTCDate(nowDate));
|
||||||
|
doc.setDeletedDateTime(DynamoDBConstants.MIN_DATE);
|
||||||
|
doc.setRestoredDateTime(DynamoDBConstants.MIN_DATE);
|
||||||
|
|
||||||
|
save(doc);
|
||||||
|
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("insert Error: {}", e.getMessage());
|
||||||
|
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_CONNECTION_ERROR.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(WorldEventRequest worldEventRequest) {
|
||||||
|
LocalDateTime nowDate = LocalDateTime.now();
|
||||||
|
|
||||||
|
try {
|
||||||
|
Key key = Key.builder()
|
||||||
|
.partitionValue(DynamoDBConstants.PK_KEY_WORLD_EVENT_SCHEDULER)
|
||||||
|
.sortValue(String.valueOf(worldEventRequest.getId()))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
WorldEventScheduleDoc beforeDoc = findById(key);
|
||||||
|
|
||||||
|
if (beforeDoc != null) {
|
||||||
|
WorldEventScheduleDoc afterDoc = deepCopy(beforeDoc, WorldEventScheduleDoc.class);
|
||||||
|
|
||||||
|
WorldEventScheduleAttrib attrib = objectMapper.readValue(afterDoc.getAttribValue(), WorldEventScheduleAttrib.class);
|
||||||
|
attrib.setActive(true);
|
||||||
|
attrib.setStartTime(convertUTCDate(worldEventRequest.getStartDt()));
|
||||||
|
attrib.setEndTime(convertUTCDate(worldEventRequest.getEndDt()));
|
||||||
|
attrib.setGlobalEventContributionPointMax(worldEventRequest.getMaxPoint());
|
||||||
|
attrib.setGlobalEventActionGroupId(worldEventRequest.getGlobalEventActionId());
|
||||||
|
attrib.setPersonalEventActionGroupId(worldEventRequest.getPersonalEventActionId());
|
||||||
|
|
||||||
|
afterDoc.setAttribValue(objectMapper.writeValueAsString(attrib));
|
||||||
|
afterDoc.setUpdatedDateTime(CommonUtils.convertUTCDate(nowDate));
|
||||||
|
|
||||||
|
update(afterDoc);
|
||||||
|
|
||||||
|
log.info("WorldEventScheduleDoc Update Success: {}", objectMapper.writeValueAsString(afterDoc));
|
||||||
|
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_CONNECTION_ERROR.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DynamodbOperationResult delete(String id) {
|
||||||
|
try{
|
||||||
|
Key key = Key.builder()
|
||||||
|
.partitionValue(DynamoDBConstants.PK_KEY_BATTLE_EVENT)
|
||||||
|
.sortValue(id)
|
||||||
|
.build();
|
||||||
|
WorldEventScheduleDoc doc = findById(key);
|
||||||
|
|
||||||
|
if(doc != null) {
|
||||||
|
Key detailKey = Key.builder()
|
||||||
|
.partitionValue(doc.getPK())
|
||||||
|
.sortValue(doc.getSK())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
delete(detailKey);
|
||||||
|
|
||||||
|
log.info("WorldEventScheduleDoc Delete Success: {}", objectMapper.writeValueAsString(doc));
|
||||||
|
|
||||||
|
return new DynamodbOperationResult(true, "", doc);
|
||||||
|
}
|
||||||
|
return new DynamodbOperationResult(true, "null", null);
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("delete WorldEventScheduleDoc Error: {}", e.getMessage());
|
||||||
|
return new DynamodbOperationResult(false, e.getMessage(), null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.caliverse.admin.dynamodb.repository;
|
||||||
|
|
||||||
|
import com.caliverse.admin.domain.request.RankRequest;
|
||||||
|
import com.caliverse.admin.dynamodb.domain.doc.RankingScheduleDoc;
|
||||||
|
import com.caliverse.admin.dynamodb.entity.DynamodbOperationResult;
|
||||||
|
|
||||||
|
public interface RankingSchedulerRepository extends DynamoDBRepository<RankingScheduleDoc> {
|
||||||
|
void insert(RankRequest rankRequest);
|
||||||
|
void update(RankRequest rankRequest);
|
||||||
|
DynamodbOperationResult delete(String id);
|
||||||
|
}
|
||||||
@@ -1,14 +1,10 @@
|
|||||||
package com.caliverse.admin.dynamodb.repository;
|
package com.caliverse.admin.dynamodb.repository;
|
||||||
|
|
||||||
import com.caliverse.admin.domain.entity.Event;
|
import com.caliverse.admin.domain.entity.RewardEvent;
|
||||||
import com.caliverse.admin.domain.entity.Item;
|
|
||||||
import com.caliverse.admin.domain.entity.Message;
|
|
||||||
import com.caliverse.admin.dynamodb.domain.doc.SystemMetaMailDoc;
|
import com.caliverse.admin.dynamodb.domain.doc.SystemMetaMailDoc;
|
||||||
import com.caliverse.admin.dynamodb.entity.DynamodbOperationResult;
|
import com.caliverse.admin.dynamodb.entity.DynamodbOperationResult;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface SystemMetaMailRepository extends DynamoDBRepository<SystemMetaMailDoc> {
|
public interface SystemMetaMailRepository extends DynamoDBRepository<SystemMetaMailDoc> {
|
||||||
void insert(Event event);
|
void insert(RewardEvent rewardEvent);
|
||||||
DynamodbOperationResult delete(String id);
|
DynamodbOperationResult delete(String id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.caliverse.admin.dynamodb.repository;
|
||||||
|
|
||||||
|
import com.caliverse.admin.domain.request.WorldEventRequest;
|
||||||
|
import com.caliverse.admin.dynamodb.domain.doc.WorldEventScheduleDoc;
|
||||||
|
import com.caliverse.admin.dynamodb.entity.DynamodbOperationResult;
|
||||||
|
|
||||||
|
public interface WorldEventScheduleRepository extends DynamoDBRepository<WorldEventScheduleDoc> {
|
||||||
|
void insert(WorldEventRequest worldEventRequest);
|
||||||
|
void update(WorldEventRequest worldEventRequest);
|
||||||
|
DynamodbOperationResult delete(String id);
|
||||||
|
}
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
package com.caliverse.admin.dynamodb.service;
|
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.datacomponent.MetaDataHandler;
|
||||||
import com.caliverse.admin.domain.entity.Event;
|
import com.caliverse.admin.domain.entity.RewardEvent;
|
||||||
import com.caliverse.admin.domain.entity.SEARCHTYPE;
|
import com.caliverse.admin.domain.entity.SEARCHTYPE;
|
||||||
import com.caliverse.admin.domain.entity.metadata.MetaLandData;
|
import com.caliverse.admin.domain.entity.metadata.MetaLandData;
|
||||||
import com.caliverse.admin.domain.entity.metadata.MetaSystemMailData;
|
import com.caliverse.admin.domain.entity.metadata.MetaSystemMailData;
|
||||||
@@ -15,15 +14,10 @@ import com.caliverse.admin.dynamodb.dto.PageResult;
|
|||||||
import com.caliverse.admin.dynamodb.entity.KeyParam;
|
import com.caliverse.admin.dynamodb.entity.KeyParam;
|
||||||
import com.caliverse.admin.dynamodb.repository.*;
|
import com.caliverse.admin.dynamodb.repository.*;
|
||||||
import com.caliverse.admin.global.common.annotation.DynamoDBTransaction;
|
import com.caliverse.admin.global.common.annotation.DynamoDBTransaction;
|
||||||
import com.caliverse.admin.global.common.constants.AdminConstants;
|
|
||||||
import com.caliverse.admin.global.common.constants.CommonConstants;
|
import com.caliverse.admin.global.common.constants.CommonConstants;
|
||||||
import com.caliverse.admin.global.common.constants.DynamoDBConstants;
|
import com.caliverse.admin.global.common.constants.DynamoDBConstants;
|
||||||
import com.caliverse.admin.global.common.utils.CommonUtils;
|
import com.caliverse.admin.global.common.utils.CommonUtils;
|
||||||
import com.caliverse.admin.global.common.utils.DateUtils;
|
import com.caliverse.admin.global.common.utils.DateUtils;
|
||||||
import com.caliverse.admin.logs.Indicatordomain.StartEndTime;
|
|
||||||
import com.caliverse.admin.logs.logservice.LogServiceHelper;
|
|
||||||
import com.caliverse.admin.logs.logservice.indicators.IndicatorsMoneyService;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -47,8 +41,8 @@ public class DynamodbMailService {
|
|||||||
private final MetaDataHandler metaDataHandler;
|
private final MetaDataHandler metaDataHandler;
|
||||||
|
|
||||||
@DynamoDBTransaction
|
@DynamoDBTransaction
|
||||||
public void insertSystemMail(Event event){
|
public void insertSystemMail(RewardEvent rewardEvent){
|
||||||
systemMetaMailRepository.insert(event);
|
systemMetaMailRepository.insert(rewardEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@DynamoDBTransaction
|
@DynamoDBTransaction
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.caliverse.admin.dynamodb.service;
|
||||||
|
|
||||||
|
import com.caliverse.admin.domain.entity.RankingSchedule;
|
||||||
|
import com.caliverse.admin.domain.request.RankRequest;
|
||||||
|
import com.caliverse.admin.dynamodb.repository.RankingSchedulerRepository;
|
||||||
|
import com.caliverse.admin.global.common.annotation.DynamoDBTransaction;
|
||||||
|
import com.caliverse.admin.global.common.constants.DynamoDBConstants;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import software.amazon.awssdk.enhanced.dynamodb.Key;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
public class DynamodbRankService {
|
||||||
|
private final RankingSchedulerRepository rankingScheduleRepository;
|
||||||
|
|
||||||
|
@DynamoDBTransaction
|
||||||
|
public void insertRankingSchedule(RankRequest rankRequest) {
|
||||||
|
rankingScheduleRepository.insert(rankRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DynamoDBTransaction
|
||||||
|
public void updateRankingSchedule(RankRequest rankRequest) {
|
||||||
|
rankingScheduleRepository.update(rankRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DynamoDBTransaction
|
||||||
|
public void deleteRankingSchedule(RankingSchedule rankingSchedule) {
|
||||||
|
rankingScheduleRepository.delete(rankingSchedule.getGuid());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,42 +2,22 @@ package com.caliverse.admin.dynamodb.service;
|
|||||||
|
|
||||||
import com.caliverse.admin.Indicators.entity.MoneyLogInfo;
|
import com.caliverse.admin.Indicators.entity.MoneyLogInfo;
|
||||||
import com.caliverse.admin.domain.datacomponent.MetaDataHandler;
|
import com.caliverse.admin.domain.datacomponent.MetaDataHandler;
|
||||||
import com.caliverse.admin.domain.entity.Event;
|
import com.caliverse.admin.domain.entity.WorldEvent;
|
||||||
import com.caliverse.admin.domain.entity.SEARCHTYPE;
|
import com.caliverse.admin.domain.request.RankRequest;
|
||||||
import com.caliverse.admin.domain.entity.metadata.MetaLandData;
|
import com.caliverse.admin.domain.request.WorldEventRequest;
|
||||||
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.MoneyAttrib;
|
||||||
import com.caliverse.admin.dynamodb.domain.atrrib.UserNicknameRegistryAttrib;
|
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.*;
|
import com.caliverse.admin.dynamodb.repository.*;
|
||||||
import com.caliverse.admin.global.common.annotation.DynamoDBTransaction;
|
import com.caliverse.admin.global.common.annotation.DynamoDBTransaction;
|
||||||
import com.caliverse.admin.global.common.constants.AdminConstants;
|
import com.caliverse.admin.global.common.constants.AdminConstants;
|
||||||
import com.caliverse.admin.global.common.constants.CommonConstants;
|
|
||||||
import com.caliverse.admin.global.common.constants.DynamoDBConstants;
|
|
||||||
import com.caliverse.admin.global.common.utils.CommonUtils;
|
|
||||||
import com.caliverse.admin.logs.Indicatordomain.StartEndTime;
|
import com.caliverse.admin.logs.Indicatordomain.StartEndTime;
|
||||||
import com.caliverse.admin.logs.logservice.LogServiceHelper;
|
import com.caliverse.admin.logs.logservice.LogServiceHelper;
|
||||||
import com.caliverse.admin.logs.logservice.indicators.IndicatorsMoneyService;
|
import com.caliverse.admin.logs.logservice.indicators.IndicatorsMoneyService;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import software.amazon.awssdk.enhanced.dynamodb.Key;
|
|
||||||
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.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@@ -49,6 +29,7 @@ public class DynamodbService {
|
|||||||
private final SystemMetaMailRepository systemMetaMailRepository;
|
private final SystemMetaMailRepository systemMetaMailRepository;
|
||||||
private final MailRepository mailRepository;
|
private final MailRepository mailRepository;
|
||||||
private final MailJsonRepository mailJsonRepository;
|
private final MailJsonRepository mailJsonRepository;
|
||||||
|
private final WorldEventScheduleRepository worldEventScheduleRepository;
|
||||||
|
|
||||||
private final IndicatorsMoneyService moneyService;
|
private final IndicatorsMoneyService moneyService;
|
||||||
|
|
||||||
@@ -71,4 +52,19 @@ public class DynamodbService {
|
|||||||
log.error(e.getMessage());
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DynamoDBTransaction
|
||||||
|
public void insertWorldEventSchedule(WorldEventRequest worldEventRequest) {
|
||||||
|
worldEventScheduleRepository.insert(worldEventRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DynamoDBTransaction
|
||||||
|
public void updateWorldEventSchedule(WorldEventRequest worldEventRequest) {
|
||||||
|
worldEventScheduleRepository.update(worldEventRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DynamoDBTransaction
|
||||||
|
public void deleteWorldEventSchedule(WorldEvent worldEvent) {
|
||||||
|
worldEventScheduleRepository.delete(worldEvent.getId().toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user