- 로그검색 화면 API명으로 검색 할 수 있도록 수정

This commit is contained in:
daekuk
2026-01-23 09:30:40 +09:00
parent 8b4a8bf8c8
commit 33fa30a49b
@@ -44,38 +44,47 @@ public class EAILogRepositoryImpl implements EAILogRepository {
QEAIMessageEntity qeaiMessageEntity = QEAIMessageEntity.eAIMessageEntity; QEAIMessageEntity qeaiMessageEntity = QEAIMessageEntity.eAIMessageEntity;
JPAQuery<?> query = new JPAQueryFactory(em).from(entityPathBase); JPAQuery<?> query = new JPAQueryFactory(em)
appendConditions(eaiLogSearch, qeaiLog, entityPathBase, query); .from(entityPathBase)
.leftJoin(qeaiMessageEntity)
.on(qeaiLog.eaisvcname.eq(qeaiMessageEntity.eaisvcname));
appendConditions(eaiLogSearch, qeaiLog, entityPathBase, query, qeaiMessageEntity);
long totalCount = query.select(qeaiLog.id.msgdpstyms.count()).fetchOne(); long totalCount = query.select(qeaiLog.id.msgdpstyms.count()).fetchOne();
if (totalCount == 0) { if (totalCount == 0) {
return new PageImpl<>(new ArrayList<>(), pageable, 0); return new PageImpl<>(new ArrayList<>(), pageable, 0);
} }
List<EAILogDto> list = query List<EAILogDto> list = query
// .select(Projections.constructor(EAILogDto.class, qeaiLog, qeaiMessageEntity.eaisvcdesc)) // .select(Projections.constructor(EAILogDto.class, qeaiLog, qeaiMessageEntity.eaisvcdesc))
.select(Projections.constructor(EAILogDto.class, .select(Projections.constructor(EAILogDto.class,
qeaiLog.id, qeaiLog.trackasiskey1ctnt, qeaiLog.trackasiskey2ctnt, qeaiLog.keymgtmsgctnt, qeaiLog.id, qeaiLog.trackasiskey1ctnt, qeaiLog.trackasiskey2ctnt, qeaiLog.keymgtmsgctnt,
qeaiLog.eaisvcname, qeaiLog.extbizcd, qeaiLog.refkey, qeaiLog.clientname, qeaiLog.eaisvcname, qeaiLog.extbizcd, qeaiLog.refkey, qeaiLog.clientname,
qeaiLog.orgname, qeaiLog.msgprcssyms, qeaiLog.companycode, qeaiLog.eaierrctnt, qeaiLog.orgname, qeaiLog.msgprcssyms, qeaiLog.companycode, qeaiLog.eaierrctnt,
qeaiMessageEntity.eaisvcdesc)) qeaiMessageEntity.eaisvcdesc))
.from(entityPathBase) // .from(...) --> 이미 위에서 선언했으므로 생략
.leftJoin(qeaiMessageEntity) // .leftJoin(...) --> 이미 위에서 선언했으므로 생략
.on(qeaiLog.eaisvcname.eq(qeaiMessageEntity.eaisvcname)) .orderBy(qeaiLog.id.msgdpstyms.desc(), qeaiLog.id.eaisvcserno.asc(), qeaiLog.id.logprcssserno.asc())
.orderBy(qeaiLog.id.msgdpstyms.desc(), qeaiLog.id.eaisvcserno.asc(), qeaiLog.id.logprcssserno.asc()) .limit(1000)
.limit(1000) .fetch();
.fetch();
return new PageImpl<>(list, pageable, totalCount); return new PageImpl<>(list, pageable, totalCount);
} }
public Map<String, Long> countDetailedTransactions(Class<? extends EAILog> clazz, EAILogSearch eaiLogSearch) { public Map<String, Long> countDetailedTransactions(Class<? extends EAILog> clazz, EAILogSearch eaiLogSearch) {
QEAILog qeaiLog = QEAILog.eAILog; QEAILog qeaiLog = QEAILog.eAILog;
EntityPathBase<?> entityPathBase = new EntityPathBase<>(clazz, qeaiLog.getMetadata().getName()); EntityPathBase<?> entityPathBase = new EntityPathBase<>(clazz, qeaiLog.getMetadata().getName());
QEAIMessageEntity qeaiMessageEntity = QEAIMessageEntity.eAIMessageEntity;
JPAQuery<?> query = new JPAQueryFactory(em).from(entityPathBase); JPAQuery<?> query = new JPAQueryFactory(em)
appendConditions(eaiLogSearch, qeaiLog, entityPathBase, query); .from(entityPathBase)
.leftJoin(qeaiMessageEntity)
.on(qeaiLog.eaisvcname.eq(qeaiMessageEntity.eaisvcname));
appendConditions(eaiLogSearch, qeaiLog, entityPathBase, query, qeaiMessageEntity);
List<Tuple> results = query.select( List<Tuple> results = query.select(
qeaiLog.id.logprcssserno, // 로그 처리 상태 qeaiLog.id.logprcssserno, // 로그 처리 상태
@@ -91,7 +100,7 @@ public class EAILogRepositoryImpl implements EAILogRepository {
return reult; return reult;
} }
private void appendConditions(EAILogSearch eaiLogSearch, QEAILog qeaiLog, EntityPathBase<?> entityPathBase, JPAQuery<?> query) { private void appendConditions(EAILogSearch eaiLogSearch, QEAILog qeaiLog, EntityPathBase<?> entityPathBase, JPAQuery<?> query, QEAIMessageEntity qeaiMessageEntity) {
if (StringUtils.equalsIgnoreCase(eaiLogSearch.getAuthChk(), "Y")) { if (StringUtils.equalsIgnoreCase(eaiLogSearch.getAuthChk(), "Y")) {
QUserBusiness qUserBusiness = QUserBusiness.userBusiness; QUserBusiness qUserBusiness = QUserBusiness.userBusiness;
@@ -127,6 +136,10 @@ public class EAILogRepositoryImpl implements EAILogRepository {
if (StringUtils.isNotBlank(eaiLogSearch.getSearchEaiSvcName())) { if (StringUtils.isNotBlank(eaiLogSearch.getSearchEaiSvcName())) {
query.where(qeaiLog.eaisvcname.containsIgnoreCase(eaiLogSearch.getSearchEaiSvcName())); query.where(qeaiLog.eaisvcname.containsIgnoreCase(eaiLogSearch.getSearchEaiSvcName()));
} }
if (StringUtils.isNotBlank(eaiLogSearch.getSearchEaiSvcDesc())) {
query.where(qeaiMessageEntity.eaisvcdesc.containsIgnoreCase(eaiLogSearch.getSearchEaiSvcDesc()));
}
if (StringUtils.isNotBlank(eaiLogSearch.getSearchKeyMgtMsgCtnt())) { if (StringUtils.isNotBlank(eaiLogSearch.getSearchKeyMgtMsgCtnt())) {
query.where(qeaiLog.keymgtmsgctnt.contains(eaiLogSearch.getSearchKeyMgtMsgCtnt())); query.where(qeaiLog.keymgtmsgctnt.contains(eaiLogSearch.getSearchKeyMgtMsgCtnt()));