SystemMailMeta 데이터 로드 추가

This commit is contained in:
2025-03-14 18:22:59 +09:00
parent 8b316bd5a3
commit e1cb55871b
6 changed files with 49 additions and 16 deletions

View File

@@ -29,6 +29,7 @@ public class MetaDataFileLoader {
private final Map<Integer, MetaLandData> lands;
private final Map<Integer, MetaBattleConfigData> battleConfigs;
private final Map<Integer, MetaBattleRewardData> battleRewards;
private final Map<String, MetaSystemMailData> systemMails;
public MetaDataFileLoader(JsonFileReader jsonFileReader) {
this.jsonFileReader = jsonFileReader;
@@ -42,6 +43,7 @@ public class MetaDataFileLoader {
this.lands = new ConcurrentHashMap<>();
this.battleConfigs = new ConcurrentHashMap<>();
this.battleRewards = new ConcurrentHashMap<>();
this.systemMails = new ConcurrentHashMap<>();
}
@PostConstruct
@@ -72,6 +74,7 @@ public class MetaDataFileLoader {
loadClothType();
loadBattleConfig();
loadBattleReward();
loadSystemMail();
}catch(MetaDataException e){
log.error("Failed to initialize metadata", e);
throw e;
@@ -152,6 +155,9 @@ public class MetaDataFileLoader {
.sorted(Comparator.comparing(MetaBattleRewardData::getGroupID)) // groupId 기준으로 정렬
.collect(Collectors.toList());
}
public List<MetaSystemMailData> getMetaSystemMail() {
return new ArrayList<>(systemMails.values());
}
@@ -329,6 +335,7 @@ public class MetaDataFileLoader {
item.setLandDesc((String)meta.get("LandDesc"));
item.setLandSize((String)meta.get("LandSize"));
item.setLandType((String)meta.get("LandType"));
item.setLinkedItem((Integer)meta.get("LinkedItem"));
item.setCityType((String)meta.get("CityType"));
item.setBuildingArea((String)meta.get("BuildingArea"));
item.setBuildingId((Integer)meta.get("BuildingId"));
@@ -385,4 +392,24 @@ public class MetaDataFileLoader {
log.info("loadBattleReward {} Load Complete", EMetaData.BATTLE_REWARD_DATA.getFileName());
}
// 시스템메일 데이터 로드
public void loadSystemMail(){
List<Map<String, Object>> metaList = jsonFileReader.readJsonFile(EMetaData.SYSTEM_MAIL_DATA.getFileName(), MetadataConstants.JSON_LIST_SYSTEM_META);
if(metaList == null || metaList.isEmpty()) {
log.warn("System Mail data is empty or file not found: {}", EMetaData.SYSTEM_MAIL_DATA.getFileName());
return;
}
metaList.forEach(meta -> {
MetaSystemMailData item = new MetaSystemMailData();
item.setKey((String)meta.get("Key"));
item.setMailTitle((String)meta.get("Mail_Title"));
item.setMailDesc((String)meta.get("Mail_Desc"));
item.setSender((String)meta.get("Sender"));
systemMails.put((String)meta.get("Key"), item);
});
log.info("loadSystemMail {} Load Complete", EMetaData.SYSTEM_MAIL_DATA.getFileName());
}
}

View File

@@ -78,5 +78,9 @@ public class MetaDataHandler {
public List<MetaBattleRewardData> getMetaBattleRewardsListData() {
return metadataFileLoader.getMetaBattleRewards();
}
public List<MetaSystemMailData> getMetaSystemMailListData() {
return metadataFileLoader.getMetaSystemMail();
}
}

View File

@@ -1,15 +0,0 @@
package com.caliverse.admin.domain.datacomponent;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
public class MetaQuestKey {
private Integer qeustId;
private Integer taskNum;
}

View File

@@ -12,7 +12,8 @@ public enum EMetaData {
LAND_DATA("LandData.json", true),
BUILDING_DATA("BuildingData.json", true),
BATTLE_CONFIG_DATA("BattleFFAConfigData.json", true),
BATTLE_REWARD_DATA("BattleFFARewardData.json", true)
BATTLE_REWARD_DATA("BattleFFARewardData.json", true),
SYSTEM_MAIL_DATA("SystemMailData.json", true)
;

View File

@@ -8,6 +8,7 @@ public class MetaLandData {
private Integer landId;
private String owner;
private String editor;
private Integer linkedItem;
private boolean nonAuction;
private boolean rentalStateSwitch;
private boolean rentalAvailable;

View File

@@ -0,0 +1,15 @@
package com.caliverse.admin.domain.entity.metadata;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@Getter @Setter
public class MetaSystemMailData {
private String key;
@JsonProperty("mail_title")
private String mailTitle;
@JsonProperty("mail_desc")
private String mailDesc;
private String sender;
}