interceptor 랭킹스케줄, 월드이벤트 추가

This commit is contained in:
2025-10-20 17:57:27 +09:00
parent a1006417ac
commit bc94a38566
2 changed files with 86 additions and 18 deletions

View File

@@ -124,6 +124,7 @@ public class MysqlLoggingInterceptor implements Interceptor {
if (sqlId.contains("Calium")) return MysqlConstants.TABLE_NAME_CALIUM_REQUEST;
if (sqlId.contains("Data")) return MysqlConstants.TABLE_NAME_DATA_INIT;
if (sqlId.contains("Battle")) return MysqlConstants.TABLE_NAME_BATTLE_EVENT;
if (sqlId.contains("WorldEvent")) return MysqlConstants.TABLE_NAME_WORLD_EVENT;
if (sqlId.contains("Event")) return MysqlConstants.TABLE_NAME_EVENT;
if (sqlId.contains("GroupAuth")) return MysqlConstants.TABLE_NAME_GROUP_AUTH;
if (sqlId.contains("Group")) return MysqlConstants.TABLE_NAME_GROUP;
@@ -131,6 +132,7 @@ public class MysqlLoggingInterceptor implements Interceptor {
if (sqlId.contains("Notice")) return MysqlConstants.TABLE_NAME_NOTICE;
if (sqlId.contains("LandAuction")) return MysqlConstants.TABLE_NAME_LAND_AUCTION;
if (sqlId.contains("LandOwner")) return MysqlConstants.TABLE_NAME_LAND_OWNER_CHANGE;
if (sqlId.contains("RankingSchedule")) return MysqlConstants.TABLE_NAME_RANKING_SCHEDULE;
return "unknown";
}

View File

@@ -1,7 +1,6 @@
package com.caliverse.admin.global.component.manager;
import com.caliverse.admin.domain.dao.admin.*;
import com.caliverse.admin.domain.dao.total.WalletUserMapper;
import com.caliverse.admin.domain.entity.*;
import com.caliverse.admin.domain.request.*;
import com.caliverse.admin.global.common.utils.CommonUtils;
@@ -9,9 +8,11 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.stream.Collectors;
@Component
@Slf4j
@@ -22,11 +23,13 @@ public class BeforeDataResolver {
private final BattleMapper battleMapper;
private final BlackListMapper blackListMapper;
private final CaliumMapper caliumMapper;
private final EventMapper eventMapper;
private final RewardEventMapper rewardEventMapper;
private final GroupMapper groupMapper;
private final MailMapper mailMapper;
private final NoticeMapper noticeMapper;
private final DataMapper dataMapper;
private final WorldEventMapper worldEventMapper;
private final RankMapper rankMapper;
public BeforeDataResolver(@Lazy AdminMapper adminMapper,
@Lazy MenuMapper menuMapper,
@@ -34,11 +37,13 @@ public class BeforeDataResolver {
@Lazy BattleMapper battleMapper,
@Lazy BlackListMapper blackListMapper,
@Lazy CaliumMapper caliumMapper,
@Lazy EventMapper eventMapper,
@Lazy RewardEventMapper rewardEventMapper,
@Lazy GroupMapper groupMapper,
@Lazy MailMapper mailMapper,
@Lazy NoticeMapper noticeMapper,
@Lazy DataMapper dataMapper
@Lazy DataMapper dataMapper,
@Lazy WorldEventMapper worldEventMapper,
@Lazy RankMapper rankMapper
) {
this.adminMapper = adminMapper;
this.menuMapper = menuMapper;
@@ -46,11 +51,13 @@ public class BeforeDataResolver {
this.battleMapper = battleMapper;
this.blackListMapper = blackListMapper;
this.caliumMapper = caliumMapper;
this.eventMapper = eventMapper;
this.rewardEventMapper = rewardEventMapper;
this.groupMapper = groupMapper;
this.mailMapper = mailMapper;
this.noticeMapper = noticeMapper;
this.dataMapper = dataMapper;
this.worldEventMapper = worldEventMapper;
this.rankMapper = rankMapper;
}
private static final Map<String, Function<BeforeDataResolver, BiFunction<String, Object, Object>>> RESOLVER_MAP = Map.ofEntries(
@@ -59,12 +66,14 @@ public class BeforeDataResolver {
Map.entry("BattleMapper", resolver -> resolver::resolveBattleBeforeData),
Map.entry("BlackListMapper", resolver -> resolver::resolveBlackListBeforeData),
Map.entry("CaliumMapper", resolver -> resolver::resolveCaliumBeforeData),
Map.entry("EventMapper", resolver -> resolver::resolveEventBeforeData),
Map.entry("WorldEventMapper", resolver -> resolver::resolveWorldEventBeforeData),
Map.entry("RewardEventMapper", resolver -> resolver::resolveRewardEventBeforeData),
Map.entry("MailMapper", resolver -> resolver::resolveMailBeforeData),
Map.entry("NoticeMapper", resolver -> resolver::resolveNoticeBeforeData),
Map.entry("LandMapper", resolver -> resolver::resolveLandBeforeData),
Map.entry("DataMapper", resolver -> resolver::resolveDataBeforeData),
Map.entry("GroupMapper", resolver -> resolver::resolveGroupBeforeData)
Map.entry("GroupMapper", resolver -> resolver::resolveGroupBeforeData),
Map.entry("RankMapper", resolver -> resolver::resolveRankingScheduleBeforeData)
);
public Object resolveBeforeData(String sqlId, Object parameter) {
@@ -104,7 +113,8 @@ public class BeforeDataResolver {
Map<String, Object> params = (Map<String, Object>) parameter;
if (params.containsKey("groupId")) {
return groupMapper.getGroupAuth(Long.parseLong((String) params.get("groupId")));
List<Authority> authList = groupMapper.getGroupAuth(Long.parseLong((String) params.get("groupId")));
return wrapAuthList(authList, (String) params.get("groupId"));
}
}
@@ -123,6 +133,30 @@ public class BeforeDataResolver {
return null;
}
private Object wrapAuthList(List<Authority> authList, String groupId) {
if (authList == null || authList.isEmpty()) {
return Map.of(
"groupId", groupId,
"authCount", 0,
"authorities", "none"
);
}
// Authority 리스트를 요약 정보로 변환
List<String> authIds = authList.stream()
.map(auth -> String.valueOf(auth.getId())) // Authority 객체의 ID 필드명에 맞게 수정
.collect(Collectors.toList());
return Map.of(
"groupId", groupId,
"authCount", authList.size(),
"authIds", String.join(",", authIds),
"authorities", authList.stream()
.map(auth -> auth.getAuthName()) // Authority 객체의 이름 필드명에 맞게 수정
.collect(Collectors.joining(","))
);
}
private Object resolveDataBeforeData(String sqlId, Object parameter) {
if (parameter instanceof Map) {
Map<String, Object> params = (Map<String, Object>) parameter;
@@ -291,7 +325,7 @@ public class BeforeDataResolver {
return null;
}
private Object resolveEventBeforeData(String sqlId, Object parameter) {
private Object resolveRewardEventBeforeData(String sqlId, Object parameter) {
if (sqlId.contains("postEvent") || sqlId.contains("updateEvent")) {
return null;
}
@@ -301,19 +335,19 @@ public class BeforeDataResolver {
if (params.containsKey("id")) {
Long id = (Long) params.get("id");
Event event = eventMapper.getEventDetail(id);
event.setMailList(eventMapper.getMessage(id));
event.setItemList(eventMapper.getItem(id));
return event;
RewardEvent rewardEvent = rewardEventMapper.getEventDetail(id);
rewardEvent.setMailList(rewardEventMapper.getMessage(id));
rewardEvent.setItemList(rewardEventMapper.getItem(id));
return rewardEvent;
}
}
if (parameter instanceof EventRequest params) {
if (parameter instanceof RewardEventRequest params) {
Long id = params.getId();
Event event = eventMapper.getEventDetail(id);
event.setMailList(eventMapper.getMessage(id));
event.setItemList(eventMapper.getItem(id));
return event;
RewardEvent rewardEvent = rewardEventMapper.getEventDetail(id);
rewardEvent.setMailList(rewardEventMapper.getMessage(id));
rewardEvent.setItemList(rewardEventMapper.getItem(id));
return rewardEvent;
}
return null;
@@ -378,4 +412,36 @@ public class BeforeDataResolver {
return null;
}
private Object resolveWorldEventBeforeData(String sqlId, Object parameter) {
if (parameter instanceof Map) {
Map<String, Object> params = (Map<String, Object>) parameter;
if (params.containsKey("id")) {
return worldEventMapper.getWorldEventDetail((Long) params.get("id"));
}
}
if (parameter instanceof WorldEventRequest params) {
return worldEventMapper.getWorldEventDetail(params.getId());
}
return null;
}
private Object resolveRankingScheduleBeforeData(String sqlId, Object parameter) {
if (parameter instanceof Map) {
Map<String, Object> params = (Map<String, Object>) parameter;
if (params.containsKey("id")) {
return rankMapper.getRankingScheduleDetail((Long) params.get("id"));
}
}
if (parameter instanceof RankRequest params) {
return rankMapper.getRankingScheduleDetail(params.getId());
}
return null;
}
}