This commit is contained in:
@@ -102,9 +102,15 @@ public class EAILogRepositoryImpl implements EAILogRepository {
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(eaiLogSearch.getSearchGuid())) {
|
||||
query
|
||||
.where(qeaiLog.pguid.eq(eaiLogSearch.getSearchGuid()))
|
||||
.where(qeaiLog.id.logprcssserno.eq(eaiLogSearch.getSearchLogPrcssSerno()));
|
||||
query.where(qeaiLog.pguid.eq(eaiLogSearch.getSearchGuid()));
|
||||
|
||||
// 처리단계(logprcssserno)를 명시적으로 선택한 경우에만 추가로 좁힌다.
|
||||
// 하나의 GUID는 처리단계(100/200/300/400)별로 여러 로그 행에 걸쳐 존재하므로,
|
||||
// 선택하지 않았으면 해당 GUID의 모든 단계를 조회한다.
|
||||
if (StringUtils.isNotBlank(eaiLogSearch.getSearchLogPrcssSerno())) {
|
||||
query.where(qeaiLog.id.logprcssserno.eq(eaiLogSearch.getSearchLogPrcssSerno()));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.eactive.eai.common.util.UUIDGenerator;
|
||||
import com.eactive.eai.data.RollingTable;
|
||||
import com.eactive.eai.data.entity.onl.logger.EAILog;
|
||||
import com.eactive.eai.data.entity.onl.logger.EAILogId;
|
||||
@@ -38,19 +39,36 @@ public class EAILogServiceImpl implements EAILogService {
|
||||
|
||||
@Override
|
||||
public Page<EAILogDto> findAll(Pageable pageable, EAILogSearch eaiLogSearch) {
|
||||
long time = CommonUtil.getCalendar(eaiLogSearch.getSearchStartTime()).getTimeInMillis();
|
||||
long time = CommonUtil.getCalendar(resolveTableDate(eaiLogSearch)).getTimeInMillis();
|
||||
EAILog eaiLog = (EAILog) applicationContext.getBean(RollingTable.class, EAILog.class, time);
|
||||
Page<EAILogDto> eaiLogDtos = eaiLogRepository.findAll(eaiLog.getClass(), pageable, eaiLogSearch);
|
||||
return eaiLogDtos;
|
||||
}
|
||||
|
||||
public Map<String, Long> getTransactionCounts(EAILogSearch eaiLogSearch) {
|
||||
long time = CommonUtil.getCalendar(eaiLogSearch.getSearchStartTime()).getTimeInMillis();
|
||||
long time = CommonUtil.getCalendar(resolveTableDate(eaiLogSearch)).getTimeInMillis();
|
||||
EAILog eaiLog = (EAILog) applicationContext.getBean(RollingTable.class, EAILog.class, time);
|
||||
Map<String, Long> detailedCounts = eaiLogRepository.countDetailedTransactions(eaiLog.getClass(), eaiLogSearch);
|
||||
return detailedCounts;
|
||||
}
|
||||
|
||||
// GUID로 조회하는 경우, 대상 롤링 테이블을 검색시간이 아닌 GUID 자체에 포함된 시각으로 특정한다.
|
||||
// GUID 포맷/오프셋은 UUIDGenerator.GUID_DATE_POSITION 기준.
|
||||
private String resolveTableDate(EAILogSearch eaiLogSearch) {
|
||||
String guid = eaiLogSearch.getSearchGuid();
|
||||
|
||||
if (StringUtils.isNotBlank(guid)) {
|
||||
int start = UUIDGenerator.GUID_DATE_POSITION;
|
||||
int end = start + 14; // yyyyMMddHHmmss
|
||||
|
||||
if (guid.length() >= end) {
|
||||
return guid.substring(start, end);
|
||||
}
|
||||
}
|
||||
|
||||
return eaiLogSearch.getSearchStartTime();
|
||||
}
|
||||
|
||||
@Override
|
||||
public EAILogDto getById(EAILogId eaiLogId) {
|
||||
long time = CommonUtil.getCalendar(eaiLogId.getMsgdpstyms()).getTimeInMillis();
|
||||
|
||||
Reference in New Issue
Block a user