Browse Source

비행이력 목록 페이징 작업

feature/auth
노승철 2 years ago
parent
commit
25cc73c33b
  1. 14
      src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java
  2. 4
      src/main/java/com/palnet/biz/api/anls/hstry/model/AnlsHstryGroupModel.java
  3. 21
      src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java
  4. 2
      src/main/java/com/palnet/biz/api/comn/model/ComnPagingModel.java
  5. 16
      src/main/java/com/palnet/biz/api/comn/model/ComnPagingRs.java
  6. 48
      src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

14
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 java.util.List;
import com.palnet.biz.api.comn.model.ComnPagingRs;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
@ -38,10 +39,7 @@ public class AnlsHstryController {
@GetMapping(value = "/list") @GetMapping(value = "/list")
public ResponseEntity<? extends BasicResponse> list(AnlsHstryGroupModel rq) { public ResponseEntity<? extends BasicResponse> list(AnlsHstryGroupModel rq) {
List<AnlsHstryRsModel> result = null; ComnPagingRs<AnlsHstryRsModel> rs;
log.debug("JSON>>>>>>>>" , JsonUtils.toJson(rq));
log.debug("Param" + rq.getStDate() + "::" + rq.getEndDate());
//입력값 검증 //입력값 검증
if(rq.getStDate() == null || !(rq.getStDate().length() == 10) || rq.getEndDate() ==null || !(rq.getEndDate().length() == 10) ) { if(rq.getStDate() == null || !(rq.getStDate().length() == 10) || rq.getEndDate() ==null || !(rq.getEndDate().length() == 10) ) {
@ -50,20 +48,18 @@ public class AnlsHstryController {
} }
try { try {
result = service.list(rq); rs = service.list(rq);
} catch (Exception e) { } catch (Exception e) {
log.error("IGNORE : {}", e); log.error("IGNORE : {}", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
} }
return ResponseEntity.ok().body(new SuccessResponse<List>(result)); return ResponseEntity.ok().body(new SuccessResponse(rs));
} }
@GetMapping(value = "/detail/{id}") @GetMapping(value = "/detail/{id}")
public ResponseEntity<? extends BasicResponse> detail(@PathVariable String id) { public ResponseEntity<? extends BasicResponse> detail(@PathVariable String id) {
AnlsHstryModel result = null; AnlsHstryModel result = null;

4
src/main/java/com/palnet/biz/api/anls/hstry/model/AnlsHstryGroupModel.java

@ -1,9 +1,10 @@
package com.palnet.biz.api.anls.hstry.model; package com.palnet.biz.api.anls.hstry.model;
import com.palnet.biz.api.comn.model.ComnPagingModel;
import lombok.Data; import lombok.Data;
@Data @Data
public class AnlsHstryGroupModel { public class AnlsHstryGroupModel extends ComnPagingModel {
private String stDate; private String stDate;
@ -14,4 +15,5 @@ public class AnlsHstryGroupModel {
private String searchType1; private String searchType1;
private String groupId; private String groupId;
} }

21
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.List;
import java.util.Optional; import java.util.Optional;
import com.palnet.biz.api.comn.model.ComnPagingRs;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; 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.stereotype.Service;
import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel; import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel;
@ -42,7 +46,7 @@ public class AnlsHstryService {
@Autowired @Autowired
private JwtTokenUtil jwtTokenUtil; private JwtTokenUtil jwtTokenUtil;
public List<AnlsHstryRsModel> list(AnlsHstryGroupModel rq){ public ComnPagingRs<AnlsHstryRsModel> list(AnlsHstryGroupModel rq){
List<JwtGroupModel> group = jwtTokenUtil.getGroupAuthByToken(); List<JwtGroupModel> group = jwtTokenUtil.getGroupAuthByToken();
Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken(); Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken();
String userAccount = null; String userAccount = null;
@ -50,10 +54,19 @@ public class AnlsHstryService {
if(rq.getGroupId().equals(list.getGroupId())) { if(rq.getGroupId().equals(list.getGroupId())) {
userAccount = list.getGroupAuthCd(); userAccount = list.getGroupAuthCd();
} }
} }
List<AnlsHstryRsModel> returnList = query.listCntrlBasRs(rq, cstmrSno, userAccount);
ComnPagingRs<AnlsHstryRsModel> response = new ComnPagingRs<>();
Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord());
PageImpl<AnlsHstryRsModel> 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{ public AnlsHstryModel detail(String cntrlId) throws Exception{

2
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 {
}

16
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<T> {
private long total; // 전체 리스트 수
private long totalPage; // 전체 페이지 수
private long page; // 현재 페이지
private List<T> items; // 현재 페이지 데이터
}

48
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.api.acnt.cstmr.model.AcntCstmrGroupModel;
import com.palnet.biz.jpa.entity.*; import com.palnet.biz.jpa.entity.*;
import com.palnet.comn.model.GPHistoryModel; import com.palnet.comn.model.GPHistoryModel;
import com.querydsl.core.QueryResults;
import com.querydsl.core.Tuple; import com.querydsl.core.Tuple;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryDetailModel; import com.palnet.biz.api.anls.hstry.model.AnlsHstryDetailModel;
@ -151,7 +154,7 @@ public class CtrCntrlQueryRepository{
return result; return result;
} }
public List<AnlsHstryRsModel> listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSno , String userAccount){ public PageImpl<AnlsHstryRsModel> listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSno , String userAccount, Pageable pageable){
QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas; QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas;
QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea; QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea;
@ -171,19 +174,17 @@ public List<AnlsHstryRsModel> listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSn
builder.and(qComArcrftBasEntity.groupId.eq(rq.getGroupId())); builder.and(qComArcrftBasEntity.groupId.eq(rq.getGroupId()));
} }
Calendar end = Calendar.getInstance(); Calendar end = Calendar.getInstance();
end.setTime(DateUtils.stringToDate(rq.getEndDate())); end.setTime(DateUtils.stringToDate(rq.getEndDate()));
end.add(Calendar.DATE, 1); end.add(Calendar.DATE, 1);
Date endDate = end.getTime(); Date endDate = end.getTime();
builder.and(qCntrlBasEntity.cntrlStDt.after(DateUtils.stringToDate(rq.getStDate()))); builder.and(qCntrlBasEntity.cntrlStDt.after(DateUtils.stringToDate(rq.getStDate())));
builder.and(qCntrlBasEntity.cntrlEndDt.before(endDate)); builder.and(qCntrlBasEntity.cntrlEndDt.before(endDate));
if(!StringUtils.isEmpty(rq.getSearch1())) { if(!StringUtils.isEmpty(rq.getSearch1())) {
builder.and(qCntrlBasEntity.idntfNum.like("%" + rq.getSearch1() + "%")); builder.and(qCntrlBasEntity.idntfNum.like("%" + rq.getSearch1() + "%"));
} }
ArrayList<AnlsHstryRsModel> result = new ArrayList<AnlsHstryRsModel>();
List<AnlsHstryRsModel> queryList = query.select( List<AnlsHstryRsModel> queryList = query.select(
Projections.bean(AnlsHstryRsModel.class , Projections.bean(AnlsHstryRsModel.class ,
qCntrlBasEntity.cntrlId, qCntrlBasEntity.cntrlId,
@ -230,8 +231,31 @@ public List<AnlsHstryRsModel> listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSn
.on(qComArcrftBasEntity.groupId.eq(qPtyCstmrGroupEntity.groupId)) .on(qComArcrftBasEntity.groupId.eq(qPtyCstmrGroupEntity.groupId))
.where(builder) .where(builder)
.orderBy(qCntrlBasEntity.cntrlStDt.asc()) .orderBy(qCntrlBasEntity.cntrlStDt.asc())
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.fetch(); .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<AnlsHstryRsModel> result = new ArrayList<>();
for(AnlsHstryRsModel model: queryList) { for(AnlsHstryRsModel model: queryList) {
String addr = ""; String addr = "";
@ -260,7 +284,7 @@ public List<AnlsHstryRsModel> listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSn
return result; return new PageImpl<>(result, pageable, count);
} }
/** /**

Loading…
Cancel
Save