From 25cc73c33bdbb98c941495e0dc28ecba88300e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?scnoh=28=EB=85=B8=EC=8A=B9=EC=B2=A0=29?= Date: Fri, 23 Sep 2022 14:37:14 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=ED=96=89=EC=9D=B4=EB=A0=A5=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=ED=8E=98=EC=9D=B4=EC=A7=95=20=EC=9E=91?= =?UTF-8?q?=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hstry/controller/AnlsHstryController.java | 14 ++---- .../anls/hstry/model/AnlsHstryGroupModel.java | 4 +- .../anls/hstry/service/AnlsHstryService.java | 21 ++++++-- .../biz/api/comn/model/ComnPagingModel.java | 2 + .../biz/api/comn/model/ComnPagingRs.java | 16 +++++++ .../ctr/CtrCntrlQueryRepository.java | 48 ++++++++++++++----- 6 files changed, 79 insertions(+), 26 deletions(-) create mode 100644 src/main/java/com/palnet/biz/api/comn/model/ComnPagingModel.java create mode 100644 src/main/java/com/palnet/biz/api/comn/model/ComnPagingRs.java diff --git a/src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java b/src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java index c4ad11c..dc598ff 100644 --- a/src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java +++ b/src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java @@ -2,6 +2,7 @@ package com.palnet.biz.api.anls.hstry.controller; import java.util.List; +import com.palnet.biz.api.comn.model.ComnPagingRs; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -38,10 +39,7 @@ public class AnlsHstryController { @GetMapping(value = "/list") public ResponseEntity list(AnlsHstryGroupModel rq) { - List result = null; - - log.debug("JSON>>>>>>>>" , JsonUtils.toJson(rq)); - log.debug("Param" + rq.getStDate() + "::" + rq.getEndDate()); + ComnPagingRs rs; //입력값 검증 if(rq.getStDate() == null || !(rq.getStDate().length() == 10) || rq.getEndDate() ==null || !(rq.getEndDate().length() == 10) ) { @@ -50,20 +48,18 @@ public class AnlsHstryController { } try { - result = service.list(rq); - - + rs = service.list(rq); + } catch (Exception e) { log.error("IGNORE : {}", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(new ErrorResponse("Server Error", "-1")); } - return ResponseEntity.ok().body(new SuccessResponse(result)); + return ResponseEntity.ok().body(new SuccessResponse(rs)); } - @GetMapping(value = "/detail/{id}") public ResponseEntity detail(@PathVariable String id) { AnlsHstryModel result = null; diff --git a/src/main/java/com/palnet/biz/api/anls/hstry/model/AnlsHstryGroupModel.java b/src/main/java/com/palnet/biz/api/anls/hstry/model/AnlsHstryGroupModel.java index 8762c9f..6f189bf 100644 --- a/src/main/java/com/palnet/biz/api/anls/hstry/model/AnlsHstryGroupModel.java +++ b/src/main/java/com/palnet/biz/api/anls/hstry/model/AnlsHstryGroupModel.java @@ -1,9 +1,10 @@ package com.palnet.biz.api.anls.hstry.model; +import com.palnet.biz.api.comn.model.ComnPagingModel; import lombok.Data; @Data -public class AnlsHstryGroupModel { +public class AnlsHstryGroupModel extends ComnPagingModel { private String stDate; @@ -14,4 +15,5 @@ public class AnlsHstryGroupModel { private String searchType1; private String groupId; + } diff --git a/src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java b/src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java index 8437e23..4138414 100644 --- a/src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java +++ b/src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java @@ -4,10 +4,14 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; +import com.palnet.biz.api.comn.model.ComnPagingRs; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel; @@ -42,7 +46,7 @@ public class AnlsHstryService { @Autowired private JwtTokenUtil jwtTokenUtil; - public List list(AnlsHstryGroupModel rq){ + public ComnPagingRs list(AnlsHstryGroupModel rq){ List group = jwtTokenUtil.getGroupAuthByToken(); Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken(); String userAccount = null; @@ -50,10 +54,19 @@ public class AnlsHstryService { if(rq.getGroupId().equals(list.getGroupId())) { userAccount = list.getGroupAuthCd(); } - } - List returnList = query.listCntrlBasRs(rq, cstmrSno, userAccount); + } + + ComnPagingRs response = new ComnPagingRs<>(); + + Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord()); + PageImpl list = query.listCntrlBasRs(rq, cstmrSno, userAccount, pageable); + + response.setItems(list.getContent()); + response.setTotal(list.getTotalElements()); + response.setTotalPage(list.getTotalPages()); + response.setPage(rq.getPage()); - return returnList; + return response; } public AnlsHstryModel detail(String cntrlId) throws Exception{ diff --git a/src/main/java/com/palnet/biz/api/comn/model/ComnPagingModel.java b/src/main/java/com/palnet/biz/api/comn/model/ComnPagingModel.java new file mode 100644 index 0000000..1fa6a3a --- /dev/null +++ b/src/main/java/com/palnet/biz/api/comn/model/ComnPagingModel.java @@ -0,0 +1,2 @@ +package com.palnet.biz.api.comn.model;public class ComnPagingRq { +} diff --git a/src/main/java/com/palnet/biz/api/comn/model/ComnPagingRs.java b/src/main/java/com/palnet/biz/api/comn/model/ComnPagingRs.java new file mode 100644 index 0000000..adcbb2d --- /dev/null +++ b/src/main/java/com/palnet/biz/api/comn/model/ComnPagingRs.java @@ -0,0 +1,16 @@ +package com.palnet.biz.api.comn.model; + +import lombok.Data; + +import java.util.List; + +@Data +public class ComnPagingRs { + + private long total; // 전체 리스트 수 + private long totalPage; // 전체 페이지 수 + private long page; // 현재 페이지 + + private List items; // 현재 페이지 데이터 + +} diff --git a/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java b/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java index b1e14b0..e903872 100644 --- a/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java +++ b/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java @@ -8,8 +8,11 @@ import java.util.List; import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrGroupModel; import com.palnet.biz.jpa.entity.*; import com.palnet.comn.model.GPHistoryModel; +import com.querydsl.core.QueryResults; import com.querydsl.core.Tuple; import org.apache.commons.lang3.StringUtils; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Repository; import com.palnet.biz.api.anls.hstry.model.AnlsHstryDetailModel; @@ -151,7 +154,7 @@ public class CtrCntrlQueryRepository{ return result; } -public List listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSno , String userAccount){ + public PageImpl listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSno , String userAccount, Pageable pageable){ QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas; QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea; @@ -171,19 +174,17 @@ public List listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSn 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)); + 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)); if(!StringUtils.isEmpty(rq.getSearch1())) { builder.and(qCntrlBasEntity.idntfNum.like("%" + rq.getSearch1() + "%")); } - - ArrayList result = new ArrayList(); - + List queryList = query.select( Projections.bean(AnlsHstryRsModel.class , qCntrlBasEntity.cntrlId, @@ -230,8 +231,31 @@ public List listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSn .on(qComArcrftBasEntity.groupId.eq(qPtyCstmrGroupEntity.groupId)) .where(builder) .orderBy(qCntrlBasEntity.cntrlStDt.asc()) + .offset(pageable.getOffset()) + .limit(pageable.getPageSize()) .fetch(); - + + // 전체 카운트 + 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(); + + List result = new ArrayList<>(); for(AnlsHstryRsModel model: queryList) { String addr = ""; @@ -260,7 +284,7 @@ public List listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSn - return result; + return new PageImpl<>(result, pageable, count); } /**