From eb1300feaae82613abb384acf3729445e5b82267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?qkr7828=28=EB=B0=95=EC=9E=AC=EC=9A=B0=29?= <박재우@DESKTOP-EF7ECBO> Date: Fri, 7 Oct 2022 18:09:47 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8A=B9=EC=9D=B8=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=ED=8E=98=EC=9D=B4=EC=A7=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BasGroupAprvController.java | 9 +- .../bas/group/model/BasGroupAprvRqModel.java | 5 +- .../group/service/BasGroupAprvService.java | 26 +++- .../biz/api/comn/model/ComnRqModel.java | 2 +- .../pty/PtyGroupQueryRepository.java | 131 ++++++++++++++++-- 5 files changed, 149 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/palnet/biz/api/bas/group/controller/BasGroupAprvController.java b/src/main/java/com/palnet/biz/api/bas/group/controller/BasGroupAprvController.java index 42fd7ad..1848c94 100644 --- a/src/main/java/com/palnet/biz/api/bas/group/controller/BasGroupAprvController.java +++ b/src/main/java/com/palnet/biz/api/bas/group/controller/BasGroupAprvController.java @@ -4,8 +4,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -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; @@ -20,11 +18,14 @@ import org.springframework.web.bind.annotation.RestController; import com.palnet.biz.api.bas.group.model.BasGroupAprvModel; import com.palnet.biz.api.bas.group.model.BasGroupAprvRqModel; import com.palnet.biz.api.bas.group.service.BasGroupAprvService; +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 io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -47,7 +48,7 @@ public class BasGroupAprvController { @ApiOperation(value = "승인요청 조회") @Tag(name = "그룹 승인 컨트롤러", description = "그룹 가입 승인 관련 API") public ResponseEntity list(BasGroupAprvRqModel rq) { - List result = null; + ComnPagingRs result = null; // log.debug(">>>>" + rq.toString()); if(StringUtils.isEmpty(rq.getCstmrSno())) { @@ -66,7 +67,7 @@ public class BasGroupAprvController { .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/group/model/BasGroupAprvRqModel.java b/src/main/java/com/palnet/biz/api/bas/group/model/BasGroupAprvRqModel.java index cb6bbaa..9f89ec0 100644 --- a/src/main/java/com/palnet/biz/api/bas/group/model/BasGroupAprvRqModel.java +++ b/src/main/java/com/palnet/biz/api/bas/group/model/BasGroupAprvRqModel.java @@ -5,7 +5,7 @@ import com.palnet.biz.api.comn.model.ComnRqModel; import lombok.Data; @Data -public class BasGroupAprvRqModel extends ComnRqModel{ +public class BasGroupAprvRqModel extends ComnRqModel { private String groupNm; @@ -16,6 +16,5 @@ public class BasGroupAprvRqModel extends ComnRqModel{ private Integer cstmrSno; private String groupId; - - + } diff --git a/src/main/java/com/palnet/biz/api/bas/group/service/BasGroupAprvService.java b/src/main/java/com/palnet/biz/api/bas/group/service/BasGroupAprvService.java index 0f75e8f..33afeec 100644 --- a/src/main/java/com/palnet/biz/api/bas/group/service/BasGroupAprvService.java +++ b/src/main/java/com/palnet/biz/api/bas/group/service/BasGroupAprvService.java @@ -6,10 +6,15 @@ import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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.anls.hstry.model.AnlsHstryRsModel; import com.palnet.biz.api.bas.group.model.BasGroupAprvModel; import com.palnet.biz.api.bas.group.model.BasGroupAprvRqModel; +import com.palnet.biz.api.comn.model.ComnPagingRs; import com.palnet.biz.jpa.entity.PtyCstmrGroup; import com.palnet.biz.jpa.repository.pty.PtyCstmrGroupRepository; import com.palnet.biz.jpa.repository.pty.PtyGroupQueryRepository; @@ -34,10 +39,25 @@ public class BasGroupAprvService { * @param rq * @return */ - public List mylist(BasGroupAprvRqModel rq){ - List resultList = query.aprvList(rq); + public ComnPagingRs mylist(BasGroupAprvRqModel rq){ - return resultList; + ComnPagingRs response = new ComnPagingRs<>(); + + + Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord()); + + PageImpl result = query.aprvList(rq, pageable); + + long total = query.aprvCount(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/api/comn/model/ComnRqModel.java b/src/main/java/com/palnet/biz/api/comn/model/ComnRqModel.java index 85df564..fc13439 100644 --- a/src/main/java/com/palnet/biz/api/comn/model/ComnRqModel.java +++ b/src/main/java/com/palnet/biz/api/comn/model/ComnRqModel.java @@ -3,7 +3,7 @@ package com.palnet.biz.api.comn.model; import lombok.Data; @Data -public class ComnRqModel { +public class ComnRqModel extends ComnPagingModel { private String stDate; private String endDate; diff --git a/src/main/java/com/palnet/biz/jpa/repository/pty/PtyGroupQueryRepository.java b/src/main/java/com/palnet/biz/jpa/repository/pty/PtyGroupQueryRepository.java index 03c5a8e..5b12f0b 100644 --- a/src/main/java/com/palnet/biz/jpa/repository/pty/PtyGroupQueryRepository.java +++ b/src/main/java/com/palnet/biz/jpa/repository/pty/PtyGroupQueryRepository.java @@ -2,9 +2,24 @@ package com.palnet.biz.jpa.repository.pty; -import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Repository; + import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; -import com.palnet.biz.api.bas.group.model.*; +import com.palnet.biz.api.bas.group.model.BasGroupAprvModel; +import com.palnet.biz.api.bas.group.model.BasGroupAprvRqModel; +import com.palnet.biz.api.bas.group.model.BasGroupJoinModel; +import com.palnet.biz.api.bas.group.model.BasGroupJoinRqModel; +import com.palnet.biz.api.bas.group.model.BasGroupModel; +import com.palnet.biz.api.bas.group.model.BasGroupRqModel; +import com.palnet.biz.api.bas.group.model.BasGroupUserListModel; +import com.palnet.biz.api.bas.group.model.BasGroupUserModel; import com.palnet.biz.jpa.entity.QPtyCstmrBas; import com.palnet.biz.jpa.entity.QPtyCstmrDtl; import com.palnet.biz.jpa.entity.QPtyCstmrGroup; @@ -12,16 +27,10 @@ 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; import com.querydsl.jpa.impl.JPAQueryFactory; + import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Repository; - -import java.util.ArrayList; -import java.util.List; @Log4j2 @Repository @@ -252,7 +261,7 @@ public class PtyGroupQueryRepository{ } - public List aprvList(BasGroupAprvRqModel rq){ + public PageImpl aprvList(BasGroupAprvRqModel rq, Pageable pageable){ QPtyGroupBas bas = QPtyGroupBas.ptyGroupBas; QPtyCstmrGroup dtl = QPtyCstmrGroup.ptyCstmrGroup; QPtyCstmrBas cstmr = QPtyCstmrBas.ptyCstmrBas; @@ -322,6 +331,8 @@ public class PtyGroupQueryRepository{ // .where(dtl.groupAuthCd.ne("CREATER")) .where(dtl.groupAuthCd.ne("MASTER")) .orderBy(bas.createDt.desc()) + .offset(pageable.getOffset()) + .limit(pageable.getPageSize()) .fetch(); List result = new ArrayList(); @@ -333,16 +344,110 @@ public class PtyGroupQueryRepository{ result.add(model); } } - return result; + return new PageImpl<>(result, pageable, result.size()); } for(BasGroupAprvModel model : queryResult) { model.setMemberName(EncryptUtils.decrypt(model.getMemberName())); result.add(model); } - return result; + return new PageImpl<>(result, pageable, result.size()); + } + public long aprvCount(BasGroupAprvRqModel rq){ + QPtyGroupBas bas = QPtyGroupBas.ptyGroupBas; + QPtyCstmrGroup dtl = QPtyCstmrGroup.ptyCstmrGroup; + QPtyCstmrBas cstmr = QPtyCstmrBas.ptyCstmrBas; + QPtyCstmrDtl cstmrDtl = QPtyCstmrDtl.ptyCstmrDtl; + + BooleanBuilder builder = new BooleanBuilder(); + + String appAuth = jwtTokenUtil.getUserAuthByToken(); + + if(!StringUtils.isEmpty(rq.getGroupNm())) { + builder.and(bas.groupNm.like("%" + rq.getGroupNm() + "%")); + } + +// if(!StringUtils.isEmpty(rq.getMemberName())) { +// String memberName = EncryptUtils.encrypt(rq.getMemberName()); +// builder.and(cstmrDtl.memberName.eq(memberName)); +// } + +// if(appAuth.equals("USER") || appAuth.equals("ROLE_USER")) { +// builder.and(bas.groupId.in( +// JPAExpressions +// .select(bas.groupId) +// .from(bas) +// .leftJoin(dtl) +// .on(bas.groupId.eq(dtl.groupId)) +// .where(bas.useYn.eq("Y")) +// .where(dtl.cstmrSno.eq(rq.getCstmrSno())) +// .where(dtl.groupAuthCd.eq("MASTER").or(dtl.groupAuthCd.eq("LEADER"))) +// +// )); +// } + if(!StringUtils.isEmpty(rq.getAprvYn())) { + builder.and(dtl.aprvlYn.eq(rq.getAprvYn())); + } + builder.and(bas.groupId.eq(rq.getGroupId())); + + builder.and(dtl.joinYn.eq("Y")); + + List queryResult = + query.select(Projections.bean(BasGroupAprvModel.class , + bas.groupId, + bas.groupNm, + bas.groupTypeCd, + dtl.cstmrGroupSno, + dtl.cstmrSno, + bas.updateDt, + bas.createDt, + dtl.aprvlYn, + dtl.joinYn, + dtl.joinDt, + dtl.aprvlDt, + dtl.groupAuthCd, + dtl.aprvlUserId, + cstmrDtl.memberName, + cstmr.userId + )).from(bas) + .join(dtl) + .on(bas.groupId.eq(dtl.groupId)) + .join(cstmr) + .on(dtl.cstmrSno.eq(cstmr.cstmrSno)) + .on(cstmr.cstmrStatusCd.eq("A")) + .join(cstmrDtl) + .on(cstmr.cstmrSno.eq(cstmrDtl.cstmrSno)) + .where(builder) + + .where(dtl.cstmrSno.ne(rq.getCstmrSno())) +// .where(dtl.groupAuthCd.ne("CREATER")) + .where(dtl.groupAuthCd.ne("MASTER")) + .orderBy(bas.createDt.desc()) + .fetch(); + long cnt = 0; + List result = new ArrayList(); + if(!(rq.getMemberName() == null) && !StringUtils.isEmpty(rq.getMemberName())) { + for(BasGroupAprvModel model : queryResult) { + String memberName = EncryptUtils.decrypt(model.getMemberName()); + if(memberName.contains(rq.getMemberName())) { + model.setMemberName(memberName); + result.add(model); + } + } + for(BasGroupAprvModel list : result) { + cnt++; + } + return cnt; + } + for(BasGroupAprvModel model : queryResult) { + model.setMemberName(EncryptUtils.decrypt(model.getMemberName())); + result.add(model); + } + for(BasGroupAprvModel list : result) { + cnt++; + } + return cnt; } - /** * 참여 했는지 여부체크 * @param cstmrSno