Browse Source

승인관리 목록 페이징

Test
qkr7828(박재우) 2 years ago
parent
commit
eb1300feaa
  1. 9
      src/main/java/com/palnet/biz/api/bas/group/controller/BasGroupAprvController.java
  2. 3
      src/main/java/com/palnet/biz/api/bas/group/model/BasGroupAprvRqModel.java
  3. 26
      src/main/java/com/palnet/biz/api/bas/group/service/BasGroupAprvService.java
  4. 2
      src/main/java/com/palnet/biz/api/comn/model/ComnRqModel.java
  5. 129
      src/main/java/com/palnet/biz/jpa/repository/pty/PtyGroupQueryRepository.java

9
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.List;
import java.util.Map; 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.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; 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.BasGroupAprvModel;
import com.palnet.biz.api.bas.group.model.BasGroupAprvRqModel; import com.palnet.biz.api.bas.group.model.BasGroupAprvRqModel;
import com.palnet.biz.api.bas.group.service.BasGroupAprvService; 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.BasicResponse;
import com.palnet.biz.api.comn.response.ErrorResponse; import com.palnet.biz.api.comn.response.ErrorResponse;
import com.palnet.biz.api.comn.response.SuccessResponse; import com.palnet.biz.api.comn.response.SuccessResponse;
import com.palnet.comn.code.RSErrorCode; import com.palnet.comn.code.RSErrorCode;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
@ -47,7 +48,7 @@ public class BasGroupAprvController {
@ApiOperation(value = "승인요청 조회") @ApiOperation(value = "승인요청 조회")
@Tag(name = "그룹 승인 컨트롤러", description = "그룹 가입 승인 관련 API") @Tag(name = "그룹 승인 컨트롤러", description = "그룹 가입 승인 관련 API")
public ResponseEntity<? extends BasicResponse> list(BasGroupAprvRqModel rq) { public ResponseEntity<? extends BasicResponse> list(BasGroupAprvRqModel rq) {
List<BasGroupAprvModel> result = null; ComnPagingRs<BasGroupAprvModel> result = null;
// log.debug(">>>>" + rq.toString()); // log.debug(">>>>" + rq.toString());
if(StringUtils.isEmpty(rq.getCstmrSno())) { if(StringUtils.isEmpty(rq.getCstmrSno())) {
@ -66,7 +67,7 @@ public class BasGroupAprvController {
.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<>(result));
} }

3
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; import lombok.Data;
@Data @Data
public class BasGroupAprvRqModel extends ComnRqModel{ public class BasGroupAprvRqModel extends ComnRqModel {
private String groupNm; private String groupNm;
@ -17,5 +17,4 @@ public class BasGroupAprvRqModel extends ComnRqModel{
private String groupId; private String groupId;
} }

26
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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
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.anls.hstry.model.AnlsHstryRsModel;
import com.palnet.biz.api.bas.group.model.BasGroupAprvModel; 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.BasGroupAprvRqModel;
import com.palnet.biz.api.comn.model.ComnPagingRs;
import com.palnet.biz.jpa.entity.PtyCstmrGroup; import com.palnet.biz.jpa.entity.PtyCstmrGroup;
import com.palnet.biz.jpa.repository.pty.PtyCstmrGroupRepository; import com.palnet.biz.jpa.repository.pty.PtyCstmrGroupRepository;
import com.palnet.biz.jpa.repository.pty.PtyGroupQueryRepository; import com.palnet.biz.jpa.repository.pty.PtyGroupQueryRepository;
@ -34,10 +39,25 @@ public class BasGroupAprvService {
* @param rq * @param rq
* @return * @return
*/ */
public List<BasGroupAprvModel> mylist(BasGroupAprvRqModel rq){ public ComnPagingRs<BasGroupAprvModel> mylist(BasGroupAprvRqModel rq){
List<BasGroupAprvModel> resultList = query.aprvList(rq);
return resultList; ComnPagingRs<BasGroupAprvModel> response = new ComnPagingRs<>();
Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord());
PageImpl<BasGroupAprvModel> 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;
} }

2
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; import lombok.Data;
@Data @Data
public class ComnRqModel { public class ComnRqModel extends ComnPagingModel {
private String stDate; private String stDate;
private String endDate; private String endDate;

129
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.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.QPtyCstmrBas;
import com.palnet.biz.jpa.entity.QPtyCstmrDtl; import com.palnet.biz.jpa.entity.QPtyCstmrDtl;
import com.palnet.biz.jpa.entity.QPtyCstmrGroup; 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.palnet.comn.utils.EncryptUtils;
import com.querydsl.core.BooleanBuilder; import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.types.Projections; import com.querydsl.core.types.Projections;
import com.querydsl.jpa.JPAExpressions;
import com.querydsl.jpa.impl.JPAQueryFactory; import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; 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 @Log4j2
@Repository @Repository
@ -252,7 +261,7 @@ public class PtyGroupQueryRepository{
} }
public List<BasGroupAprvModel> aprvList(BasGroupAprvRqModel rq){ public PageImpl<BasGroupAprvModel> aprvList(BasGroupAprvRqModel rq, Pageable pageable){
QPtyGroupBas bas = QPtyGroupBas.ptyGroupBas; QPtyGroupBas bas = QPtyGroupBas.ptyGroupBas;
QPtyCstmrGroup dtl = QPtyCstmrGroup.ptyCstmrGroup; QPtyCstmrGroup dtl = QPtyCstmrGroup.ptyCstmrGroup;
QPtyCstmrBas cstmr = QPtyCstmrBas.ptyCstmrBas; QPtyCstmrBas cstmr = QPtyCstmrBas.ptyCstmrBas;
@ -322,6 +331,8 @@ public class PtyGroupQueryRepository{
// .where(dtl.groupAuthCd.ne("CREATER")) // .where(dtl.groupAuthCd.ne("CREATER"))
.where(dtl.groupAuthCd.ne("MASTER")) .where(dtl.groupAuthCd.ne("MASTER"))
.orderBy(bas.createDt.desc()) .orderBy(bas.createDt.desc())
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.fetch(); .fetch();
List<BasGroupAprvModel> result = new ArrayList<BasGroupAprvModel>(); List<BasGroupAprvModel> result = new ArrayList<BasGroupAprvModel>();
@ -333,16 +344,110 @@ public class PtyGroupQueryRepository{
result.add(model); result.add(model);
} }
} }
return result; return new PageImpl<>(result, pageable, result.size());
} }
for(BasGroupAprvModel model : queryResult) { for(BasGroupAprvModel model : queryResult) {
model.setMemberName(EncryptUtils.decrypt(model.getMemberName())); model.setMemberName(EncryptUtils.decrypt(model.getMemberName()));
result.add(model); 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<BasGroupAprvModel> 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<BasGroupAprvModel> result = new ArrayList<BasGroupAprvModel>();
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 * @param cstmrSno

Loading…
Cancel
Save