diff --git a/src/main/java/com/palnet/biz/api/bas/dron/controller/BasDronController.java b/src/main/java/com/palnet/biz/api/bas/dron/controller/BasDronController.java index e369a11..c16b0a8 100644 --- a/src/main/java/com/palnet/biz/api/bas/dron/controller/BasDronController.java +++ b/src/main/java/com/palnet/biz/api/bas/dron/controller/BasDronController.java @@ -1,15 +1,9 @@ package com.palnet.biz.api.bas.dron.controller; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import com.palnet.comn.utils.EncryptUtils; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -22,21 +16,23 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; import com.palnet.biz.api.bas.dron.model.BasDronModel; import com.palnet.biz.api.bas.dron.model.BasDronRqModel; import com.palnet.biz.api.bas.dron.model.BasIdntfModel; import com.palnet.biz.api.bas.dron.model.BasIdntfRqModel; import com.palnet.biz.api.bas.dron.service.BasDronService; +import com.palnet.biz.api.comn.model.ComnPagingRs; import com.palnet.biz.api.comn.response.BasicResponse; import com.palnet.biz.api.comn.response.ErrorResponse; import com.palnet.biz.api.comn.response.SuccessResponse; import com.palnet.comn.code.RSErrorCode; import com.palnet.comn.exception.CustomException; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -60,7 +56,7 @@ public class BasDronController { @ApiOperation(value = "드론 목록 조회") @Tag(name = "드론 컨트롤러", description = "드론 관련 API") public ResponseEntity list(BasDronRqModel rq) { - List result = null; + ComnPagingRs result = null; //입력값 검증 if(StringUtils.isEmpty(rq.getGroupId())) { @@ -78,7 +74,7 @@ public class BasDronController { .body(new ErrorResponse("Server Error", "-1")); } - return ResponseEntity.ok().body(new SuccessResponse(result)); + return ResponseEntity.ok().body(new SuccessResponse<>(result)); } diff --git a/src/main/java/com/palnet/biz/api/bas/dron/model/BasDronRqModel.java b/src/main/java/com/palnet/biz/api/bas/dron/model/BasDronRqModel.java index 37611cc..4807ee3 100644 --- a/src/main/java/com/palnet/biz/api/bas/dron/model/BasDronRqModel.java +++ b/src/main/java/com/palnet/biz/api/bas/dron/model/BasDronRqModel.java @@ -1,11 +1,11 @@ package com.palnet.biz.api.bas.dron.model; -import java.util.Date; +import com.palnet.biz.api.comn.model.ComnPagingModel; import lombok.Data; @Data -public class BasDronRqModel { +public class BasDronRqModel extends ComnPagingModel { private String groupId; diff --git a/src/main/java/com/palnet/biz/api/bas/dron/service/BasDronService.java b/src/main/java/com/palnet/biz/api/bas/dron/service/BasDronService.java index efbd808..740eba9 100644 --- a/src/main/java/com/palnet/biz/api/bas/dron/service/BasDronService.java +++ b/src/main/java/com/palnet/biz/api/bas/dron/service/BasDronService.java @@ -3,17 +3,21 @@ package com.palnet.biz.api.bas.dron.service; import java.util.List; import java.util.Optional; -import com.palnet.comn.utils.EncryptUtils; 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 org.springframework.transaction.annotation.Transactional; import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; +import com.palnet.biz.api.anls.hstry.model.AnlsHstryRsModel; import com.palnet.biz.api.bas.dron.model.BasDronModel; import com.palnet.biz.api.bas.dron.model.BasDronRqModel; import com.palnet.biz.api.bas.dron.model.BasIdntfModel; import com.palnet.biz.api.bas.dron.model.BasIdntfRqModel; +import com.palnet.biz.api.comn.model.ComnPagingRs; import com.palnet.biz.jpa.entity.ComArcrftBas; import com.palnet.biz.jpa.entity.ComIdntfBas; import com.palnet.biz.jpa.repository.com.ComArcrftBasRepository; @@ -22,6 +26,7 @@ import com.palnet.biz.jpa.repository.pty.PtyDronQueryRepository; import com.palnet.comn.code.ErrorCode; import com.palnet.comn.exception.CustomException; import com.palnet.comn.utils.DateUtils; +import com.palnet.comn.utils.EncryptUtils; import lombok.extern.log4j.Log4j2; @@ -46,9 +51,25 @@ public class BasDronService { * @param rq * @return */ - public List list(BasDronRqModel rq){ - List resultList = query.list(rq); - return resultList; + public ComnPagingRs list(BasDronRqModel rq){ + + ComnPagingRs response = new ComnPagingRs<>(); + + Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord()); + + PageImpl result = query.list(rq, pageable); + + long total = query.listCount(rq); + + long totalPage = total % rq.getRecord() > 0 ? (total/rq.getRecord()) + 1 : total/rq.getRecord(); + + response.setItems(result.getContent()); + response.setTotal(total); + response.setPage(rq.getPage()); + response.setTotalPage(totalPage); + + return response; + } /** diff --git a/src/main/java/com/palnet/biz/jpa/repository/pty/PtyDronQueryRepository.java b/src/main/java/com/palnet/biz/jpa/repository/pty/PtyDronQueryRepository.java index 5af3a2d..9606bb4 100644 --- a/src/main/java/com/palnet/biz/jpa/repository/pty/PtyDronQueryRepository.java +++ b/src/main/java/com/palnet/biz/jpa/repository/pty/PtyDronQueryRepository.java @@ -1,10 +1,11 @@ package com.palnet.biz.jpa.repository.pty; -import java.util.ArrayList; import java.util.List; 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.bas.dron.model.BasDronModel; @@ -15,7 +16,6 @@ import com.palnet.biz.jpa.entity.QComArcrftBas; import com.palnet.biz.jpa.entity.QComIdntfBas; import com.palnet.biz.jpa.entity.QPtyCstmrGroup; import com.palnet.biz.jpa.entity.QPtyGroupBas; -import com.palnet.comn.utils.EncryptUtils; import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.Projections; import com.querydsl.jpa.JPAExpressions; @@ -35,7 +35,7 @@ public class PtyDronQueryRepository{ * @param rq * @return */ - public List list(BasDronRqModel rq){ + public PageImpl list(BasDronRqModel rq, Pageable pageable){ QComArcrftBas bas = QComArcrftBas.comArcrftBas; QComIdntfBas idnt = QComIdntfBas.comIdntfBas; @@ -81,6 +81,8 @@ public class PtyDronQueryRepository{ )).from(bas) .where(builder) .orderBy(bas.createDt.desc()) + .offset(pageable.getOffset()) + .limit(pageable.getPageSize()) .fetch(); // List result = new ArrayList(); @@ -93,9 +95,71 @@ public class PtyDronQueryRepository{ // result.add(model); // } - return result; + return new PageImpl<>(result, pageable, result.size()); + } + public long listCount(BasDronRqModel rq){ + + QComArcrftBas bas = QComArcrftBas.comArcrftBas; + QComIdntfBas idnt = QComIdntfBas.comIdntfBas; + + + BooleanBuilder builder = new BooleanBuilder(); + + if(!StringUtils.isEmpty(rq.getArcrftModelNm())) { + builder.and(bas.arcrftModelNm.like('%' + rq.getArcrftModelNm() + '%')); + } + + if(!StringUtils.isEmpty(rq.getGroupId())) { + builder.and(bas.groupId.eq(rq.getGroupId())); + } + + if(!StringUtils.isEmpty(rq.getArcrftTypeCd())) { + builder.and(bas.arcrftTypeCd.eq(rq.getArcrftTypeCd())); + } + + builder.and(bas.useYn.eq("Y")); + + List result = + query.select(Projections.bean(BasDronModel.class , + bas.groupId, + bas.arcrftSno, + bas.arcrftHght, + bas.arcrftLngth, + bas.arcrftModelNm, + bas.arcrftTypeCd, + bas.arcrftWdth, + bas.arcrftWght, + bas.cameraYn, + bas.createDt, + bas.createUserId, + bas.insrncYn, + bas.prdctCmpnNm, + bas.prdctDate, + bas.prdctNum, + bas.takeoffWght, + bas.updateDt, + bas.updateUserId, + bas.wghtTypeCd + )).from(bas) + .where(builder) + .orderBy(bas.createDt.desc()) + .fetch(); + +// List result = new ArrayList(); +// +// for(BasDronModel model : queryResult) { +//// if(!StringUtils.isEmpty(model.getOwnerNm())) { +//// model.setOwnerNm(EncryptUtils.decrypt(model.getOwnerNm())); +//// } +// +// result.add(model); +// } + long cnt = 0; + for(BasDronModel list : result) { + cnt++; + } + return cnt; } - /** * 식별번호 조회 * @param arcrftSno