diff --git a/src/main/java/com/caliverse/admin/domain/datacomponent/MetaDataFileLoader.java b/src/main/java/com/caliverse/admin/domain/datacomponent/MetaDataFileLoader.java index fb4d367..33254ce 100644 --- a/src/main/java/com/caliverse/admin/domain/datacomponent/MetaDataFileLoader.java +++ b/src/main/java/com/caliverse/admin/domain/datacomponent/MetaDataFileLoader.java @@ -45,6 +45,8 @@ public class MetaDataFileLoader { private final List brands; private final List craftings; private final List currencies; + private final List rankings; + private final List eventActionScoreDatas; public MetaDataFileLoader(JsonFileReader jsonFileReader) { this.jsonFileReader = jsonFileReader; @@ -70,6 +72,8 @@ public class MetaDataFileLoader { this.brands = new ArrayList<>(); this.craftings = new ArrayList<>(); this.currencies = new ArrayList<>(); + this.rankings = new ArrayList<>(); + this.eventActionScoreDatas = new ArrayList<>(); } @PostConstruct @@ -112,6 +116,8 @@ public class MetaDataFileLoader { loadWebLinkLocalize(); loadCrafting(); loadCurrency(); + loadRanking(); + loadEventActionScore(); }catch(MetaDataException e){ log.error("Failed to initialize metadata", e); throw e; @@ -253,6 +259,14 @@ public class MetaDataFileLoader { return currencies.stream().filter(data -> data.getId() == id).findFirst(); } + public Optional getMetaRanking(int id) { + if(id == 0) { + return Optional.empty(); + } + + return rankings.stream().filter(data -> data.getId() == id).findFirst(); + } + //////////////// 리스트 조회 public List getMetaLands() { return new ArrayList<>(lands.values()); @@ -292,6 +306,19 @@ public class MetaDataFileLoader { return brands; } + public List getMetaRanking() { + return rankings; + } + + public List getMetaEventActionScore() { + return eventActionScoreDatas.stream() + .collect(Collectors.groupingBy(MetaEventActionScoreData::getGroupId)) // groupId로 그룹화 + .values().stream() + .map(group -> group.get(0)) + .sorted(Comparator.comparing(MetaEventActionScoreData::getGroupId)) // groupId 기준으로 정렬 + .collect(Collectors.toList()); + } + @@ -1045,4 +1072,60 @@ public class MetaDataFileLoader { log.info("loadCurrency {} Load Complete", EMetaData.CURRENCY_DATA.getFileName()); } + + // 랜덤박스 데이터 로드 + public void loadRanking(){ + List> metaList = jsonFileReader.readJsonFile(EMetaData.RANKING_DATA.getFileName()); + if(metaList == null || metaList.isEmpty()) { + log.warn("Ranking data is empty or file not found: {}", EMetaData.RANKING_DATA.getFileName()); + return; + } + + metaList.forEach(meta -> { + MetaRankingData item = new MetaRankingData(); + + item.setId((Integer) meta.get("RankingId")); + item.setDesc((String) meta.get("desc_")); + item.setRankingType((String) meta.get("RankingType")); + item.setTypeId((Integer) meta.get("TypeId")); + item.setTypeValue((Integer) meta.get("TypeValue")); + item.setEventType((String) meta.get("EventType")); + item.setSortType((String) meta.get("SortType")); + item.setScoreType((String) meta.get("ScoreType")); + item.setScoreModifyType((String) meta.get("ScoreModifyType")); + + rankings.add(item); + }); + + log.info("loadRanking {} Load Complete", EMetaData.RANKING_DATA.getFileName()); + } + + //이벤트 스코어 + public void loadEventActionScore(){ + List> metaList = jsonFileReader.readJsonFile(EMetaData.EVENT_ACTION_SCORE_DATA.getFileName()); + if(metaList == null || metaList.isEmpty()) { + log.warn("Event Action Score data is empty or file not found: {}", EMetaData.EVENT_ACTION_SCORE_DATA.getFileName()); + return; + } + + metaList.forEach(meta -> { + MetaEventActionScoreData item = new MetaEventActionScoreData(); + + item.setId((Integer) meta.get("Index")); + item.setDescription((String) meta.get("desc_")); + item.setGroupId((Integer) meta.get("GroupId")); + item.setEventTarget((String) meta.get("EventTarget")); + item.setEvent((String) meta.get("Event")); + item.setEventCondition1((String) meta.get("EventCondition1")); + item.setEventCondition2((String) meta.get("EventCondition2")); + item.setEventCondition3((String) meta.get("EventCondition3")); + item.setScore((Integer) meta.get("Score")); + item.setScoreModifyType((String) meta.get("ScoreModifyType")); + item.setActive((Boolean) meta.get("Active")); + + eventActionScoreDatas.add(item); + }); + + log.info("loadEventActionScore {} Load Complete", EMetaData.EVENT_ACTION_SCORE_DATA.getFileName()); + } } diff --git a/src/main/java/com/caliverse/admin/domain/datacomponent/MetaDataHandler.java b/src/main/java/com/caliverse/admin/domain/datacomponent/MetaDataHandler.java index 1ac073a..91f575d 100644 --- a/src/main/java/com/caliverse/admin/domain/datacomponent/MetaDataHandler.java +++ b/src/main/java/com/caliverse/admin/domain/datacomponent/MetaDataHandler.java @@ -149,6 +149,12 @@ public class MetaDataHandler { public List getMetaBrandListData() { return metadataFileLoader.getMetaBrand(); } + public List getMetaRankingListData() { + return metadataFileLoader.getMetaRanking(); + } + public List getMetaEventActionScoreListData() { + return metadataFileLoader.getMetaEventActionScore(); + } } diff --git a/src/main/java/com/caliverse/admin/domain/entity/CLOTHSMALLTYPE.java b/src/main/java/com/caliverse/admin/domain/entity/CLOTHSMALLTYPE.java index 9ea1e7a..8cd9600 100644 --- a/src/main/java/com/caliverse/admin/domain/entity/CLOTHSMALLTYPE.java +++ b/src/main/java/com/caliverse/admin/domain/entity/CLOTHSMALLTYPE.java @@ -17,6 +17,6 @@ public enum CLOTHSMALLTYPE { NECKLACE, SHOES, SOCKS, - ANKLET, + ANKLET ; } diff --git a/src/main/java/com/caliverse/admin/domain/entity/EMetaData.java b/src/main/java/com/caliverse/admin/domain/entity/EMetaData.java index 079e60d..b564fe7 100644 --- a/src/main/java/com/caliverse/admin/domain/entity/EMetaData.java +++ b/src/main/java/com/caliverse/admin/domain/entity/EMetaData.java @@ -25,7 +25,9 @@ public enum EMetaData { ATTRIBUTE_RANDOM_GROUP_DATA("AttributeRandomGroup", true), CRAFTING_DATA("Crafting", true), CURRENCY_DATA("Currency", true), - GACHA_DATA("Gacha", true) + GACHA_DATA("Gacha", true), + RANKING_DATA("Ranking", true), + EVENT_ACTION_SCORE_DATA("EventActionScore", true) ; diff --git a/src/main/java/com/caliverse/admin/domain/entity/metadata/MetaEventActionScoreData.java b/src/main/java/com/caliverse/admin/domain/entity/metadata/MetaEventActionScoreData.java new file mode 100644 index 0000000..4023eac --- /dev/null +++ b/src/main/java/com/caliverse/admin/domain/entity/metadata/MetaEventActionScoreData.java @@ -0,0 +1,19 @@ +package com.caliverse.admin.domain.entity.metadata; + +import lombok.Data; + +@Data +public class MetaEventActionScoreData { + private int id; + private String description; + private int groupId; + private String eventTarget; + private String event; + private String eventCondition1; + private String eventCondition2; + private String eventCondition3; + private int score; + private String scoreModifyType; + private boolean active; + +} diff --git a/src/main/java/com/caliverse/admin/domain/entity/metadata/MetaRankingData.java b/src/main/java/com/caliverse/admin/domain/entity/metadata/MetaRankingData.java new file mode 100644 index 0000000..f787f08 --- /dev/null +++ b/src/main/java/com/caliverse/admin/domain/entity/metadata/MetaRankingData.java @@ -0,0 +1,17 @@ +package com.caliverse.admin.domain.entity.metadata; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class MetaRankingData { + private int id; + private String desc; + private String rankingType; + private Integer typeId; + private Integer typeValue; + private String eventType; + private String sortType; + private String scoreType; + private String scoreModifyType; +}