Browse Source

비행이력 paging caching 처리

feature/auth
노승철 2 years ago
parent
commit
b22ccffabd
  1. 8
      src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java
  2. 78
      src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

8
src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java

@ -61,10 +61,14 @@ public class AnlsHstryService {
Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord());
PageImpl<AnlsHstryRsModel> list = query.listCntrlBasRs(rq, cstmrSno, userAccount, pageable);
long total = query.countCntrlBasRs(rq, cstmrSno, userAccount);
long totalPage = total % rq.getRecord() > 0 ? (total/rq.getRecord()) + 1 : total/rq.getRecord();
response.setItems(list.getContent());
response.setTotal(list.getTotalElements());
response.setTotalPage(list.getTotalPages());
response.setTotal(total);
response.setPage(rq.getPage());
response.setTotalPage(totalPage);
return response;
}

78
src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

@ -155,7 +155,56 @@ public class CtrCntrlQueryRepository{
return result;
}
@Cacheable(value = "cntrl-bas")
@Cacheable(value = "cntrl-count")
public long countCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSno, String userAccount) {
QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas;
QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea;
QComIdntfBas qComIdntfBasEntity = QComIdntfBas.comIdntfBas;
QComArcrftBas qComArcrftBasEntity = QComArcrftBas.comArcrftBas;
QFltPlanBas qFltPlanBasEntity = QFltPlanBas.fltPlanBas;
QPtyCstmrGroup qPtyCstmrGroupEntity = QPtyCstmrGroup.ptyCstmrGroup;
BooleanBuilder builder = new BooleanBuilder();
builder.and(qCntrlBasEntity.statusCd.eq("99"));
log.debug("Params ===> " +rq.toString());
if(userAccount.equals("USER")) {
builder.and(qFltPlanBasEntity.cstmrSno.eq(cstmrSno));
builder.and(qComArcrftBasEntity.groupId.eq(rq.getGroupId()));
} else {
builder.and(qComArcrftBasEntity.groupId.eq(rq.getGroupId()));
}
Calendar end = Calendar.getInstance();
end.setTime(DateUtils.stringToDate(rq.getEndDate()));
end.add(Calendar.DATE, 1);
Date endDate = end.getTime();
builder.and(qCntrlBasEntity.cntrlStDt.after(DateUtils.stringToDate(rq.getStDate())));
builder.and(qCntrlBasEntity.cntrlEndDt.before(endDate));
long count = query
.select(qCntrlBasEntity)
.from(qCntrlBasEntity)
.leftJoin(qCntrlHstryAreaEntity)
.on(qCntrlBasEntity.cntrlId.eq(qCntrlHstryAreaEntity.cntrlId))
.on(qCntrlHstryAreaEntity.actnType.eq("01"))
.leftJoin(qComIdntfBasEntity)
.on(qCntrlBasEntity.idntfNum.eq(qComIdntfBasEntity.idntfNum))
.leftJoin(qComArcrftBasEntity)
.on(qComIdntfBasEntity.arcrftSno.eq(qComArcrftBasEntity.arcrftSno))
.leftJoin(qFltPlanBasEntity)
.on(qComArcrftBasEntity.groupId.eq(qFltPlanBasEntity.groupId))
.leftJoin(qPtyCstmrGroupEntity)
.on(qComArcrftBasEntity.groupId.eq(qPtyCstmrGroupEntity.groupId))
.where(builder)
.fetchCount();
return count;
}
@Cacheable(value = "cntrl-list")
public PageImpl<AnlsHstryRsModel> listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSno, String userAccount, Pageable pageable){
QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas;
@ -237,29 +286,6 @@ public class CtrCntrlQueryRepository{
.limit(pageable.getPageSize())
.fetch();
// 전체 카운트
long count = 0;
if(queryList.size() > 0) {
count = query
.select(qCntrlBasEntity)
.from(qCntrlBasEntity)
.leftJoin(qCntrlHstryAreaEntity)
.on(qCntrlBasEntity.cntrlId.eq(qCntrlHstryAreaEntity.cntrlId))
.on(qCntrlHstryAreaEntity.actnType.eq("01"))
.leftJoin(qComIdntfBasEntity)
.on(qCntrlBasEntity.idntfNum.eq(qComIdntfBasEntity.idntfNum))
.leftJoin(qComArcrftBasEntity)
.on(qComIdntfBasEntity.arcrftSno.eq(qComArcrftBasEntity.arcrftSno))
.leftJoin(qFltPlanBasEntity)
.on(qComArcrftBasEntity.groupId.eq(qFltPlanBasEntity.groupId))
.leftJoin(qPtyCstmrGroupEntity)
.on(qComArcrftBasEntity.groupId.eq(qPtyCstmrGroupEntity.groupId))
.where(builder)
.fetchCount();
}
List<AnlsHstryRsModel> result = new ArrayList<>();
for(AnlsHstryRsModel model: queryList) {
String addr = "";
@ -287,9 +313,7 @@ public class CtrCntrlQueryRepository{
result.add(model);
}
return new PageImpl<>(result, pageable, count);
return new PageImpl<>(result, pageable, result.size());
}
/**

Loading…
Cancel
Save