메타데이터 호출 추가

This commit is contained in:
2025-09-15 16:04:12 +09:00
parent 77c7870201
commit 6f3263f36a
6 changed files with 129 additions and 2 deletions

View File

@@ -45,6 +45,8 @@ public class MetaDataFileLoader {
private final List<MetaBrandData> brands;
private final List<MetaCraftingData> craftings;
private final List<MetaCurrencyData> currencies;
private final List<MetaRankingData> rankings;
private final List<MetaEventActionScoreData> 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<MetaRankingData> getMetaRanking(int id) {
if(id == 0) {
return Optional.empty();
}
return rankings.stream().filter(data -> data.getId() == id).findFirst();
}
//////////////// 리스트 조회
public List<MetaLandData> getMetaLands() {
return new ArrayList<>(lands.values());
@@ -292,6 +306,19 @@ public class MetaDataFileLoader {
return brands;
}
public List<MetaRankingData> getMetaRanking() {
return rankings;
}
public List<MetaEventActionScoreData> 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<Map<String, Object>> 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<Map<String, Object>> 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());
}
}

View File

@@ -149,6 +149,12 @@ public class MetaDataHandler {
public List<MetaBrandData> getMetaBrandListData() {
return metadataFileLoader.getMetaBrand();
}
public List<MetaRankingData> getMetaRankingListData() {
return metadataFileLoader.getMetaRanking();
}
public List<MetaEventActionScoreData> getMetaEventActionScoreListData() {
return metadataFileLoader.getMetaEventActionScore();
}
}

View File

@@ -17,6 +17,6 @@ public enum CLOTHSMALLTYPE {
NECKLACE,
SHOES,
SOCKS,
ANKLET,
ANKLET
;
}

View File

@@ -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)
;

View File

@@ -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;
}

View File

@@ -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;
}