Browse Source

사용자관리 페이징 작업

Test
qkr7828(박재우) 2 years ago
parent
commit
44b9d1fb17
  1. 19
      src/main/java/com/palnet/biz/api/bas/group/controller/BasGroupUserController.java
  2. 4
      src/main/java/com/palnet/biz/api/bas/group/model/BasGroupUserListModel.java
  3. 40
      src/main/java/com/palnet/biz/api/bas/group/service/BasGroupUserService.java
  4. 101
      src/main/java/com/palnet/biz/jpa/repository/pty/PtyGroupQueryRepository.java

19
src/main/java/com/palnet/biz/api/bas/group/controller/BasGroupUserController.java

@ -4,38 +4,29 @@ 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;
import org.springframework.http.ResponseEntity;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryDetailModel;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryModel;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryRqModel;
import com.palnet.biz.api.anls.hstry.service.AnlsHstryService;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaModel;
import com.palnet.biz.api.bas.group.model.BasGroupUserListModel;
import com.palnet.biz.api.bas.group.model.BasGroupUserModel;
import com.palnet.biz.api.bas.group.model.BasGroupUserRqModel;
import com.palnet.biz.api.bas.group.service.BasGroupUserService;
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 com.palnet.comn.utils.JsonUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
@ -54,7 +45,7 @@ public class BasGroupUserController {
@ApiOperation(value = "그룹 사용자 조회")
@Tag(name = "그룹 사용자 컨트롤러", description = "그룹 사용자 관련 API")
public ResponseEntity<? extends BasicResponse> list(BasGroupUserListModel rq) {
List<BasGroupUserModel> result = null;
ComnPagingRs<BasGroupUserModel> result = null;
if(StringUtils.isEmpty(rq.getCstmrSno())) {
return ResponseEntity.status(HttpStatus.OK)
@ -71,7 +62,7 @@ public class BasGroupUserController {
.body(new ErrorResponse("Server Error", "-1"));
}
return ResponseEntity.ok().body(new SuccessResponse<List>(result));
return ResponseEntity.ok().body(new SuccessResponse<>(result));
}

4
src/main/java/com/palnet/biz/api/bas/group/model/BasGroupUserListModel.java

@ -1,9 +1,11 @@
package com.palnet.biz.api.bas.group.model;
import com.palnet.biz.api.comn.model.ComnPagingModel;
import lombok.Data;
@Data
public class BasGroupUserListModel{
public class BasGroupUserListModel extends ComnPagingModel{
private String memberName;

40
src/main/java/com/palnet/biz/api/bas/group/service/BasGroupUserService.java

@ -2,35 +2,25 @@ package com.palnet.biz.api.bas.group.service;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
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 org.springframework.transaction.annotation.Transactional;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryModel;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryRqModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaModel;
import com.palnet.biz.api.bas.group.model.BasGroupJoinModel;
import com.palnet.biz.api.bas.group.model.BasGroupModel;
import com.palnet.biz.api.bas.group.model.BasGroupRqModel;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryRsModel;
import com.palnet.biz.api.bas.group.model.BasGroupUserListModel;
import com.palnet.biz.api.bas.group.model.BasGroupUserModel;
import com.palnet.biz.api.bas.group.model.BasGroupUserRqModel;
import com.palnet.biz.jpa.entity.CtrCntrlBas;
import com.palnet.biz.api.comn.model.ComnPagingRs;
import com.palnet.biz.jpa.entity.PtyCstmrGroup;
import com.palnet.biz.jpa.entity.PtyGroupBas;
import com.palnet.biz.jpa.repository.ctr.CtrCntrlBasRepository;
import com.palnet.biz.jpa.repository.ctr.CtrCntrlQueryRepository;
import com.palnet.biz.jpa.repository.pty.PtyCstmrGroupRepository;
import com.palnet.biz.jpa.repository.pty.PtyGroupBasRepository;
import com.palnet.biz.jpa.repository.pty.PtyGroupQueryRepository;
import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException;
import com.palnet.comn.utils.DateUtils;
@Service
public class BasGroupUserService {
@ -54,12 +44,24 @@ public class BasGroupUserService {
* @param rq
* @return
*/
public List<BasGroupUserModel> list(BasGroupUserListModel rq){
public ComnPagingRs<BasGroupUserModel> list(BasGroupUserListModel rq){
ComnPagingRs<BasGroupUserModel> response = new ComnPagingRs<>();
Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord());
PageImpl<BasGroupUserModel> result = query.userList(rq, pageable);
long total = query.userCount(rq);
long totalPage = total % rq.getRecord() > 0 ? (total/rq.getRecord()) + 1 : total/rq.getRecord();
List<BasGroupUserModel> resultList = query.userList(rq);
response.setItems(result.getContent());
response.setTotal(total);
response.setPage(rq.getPage());
response.setTotalPage(totalPage);
return resultList;
return response;
}

101
src/main/java/com/palnet/biz/jpa/repository/pty/PtyGroupQueryRepository.java

@ -489,7 +489,7 @@ public class PtyGroupQueryRepository{
* @param rq
* @return
*/
public List<BasGroupUserModel> userList(BasGroupUserListModel rq){
public PageImpl<BasGroupUserModel> userList(BasGroupUserListModel rq, Pageable pageable){
QPtyGroupBas bas = QPtyGroupBas.ptyGroupBas;
QPtyCstmrGroup dtl = QPtyCstmrGroup.ptyCstmrGroup;
QPtyCstmrBas cstmr = QPtyCstmrBas.ptyCstmrBas;
@ -555,6 +555,8 @@ public class PtyGroupQueryRepository{
.where(builder)
.orderBy(bas.createDt.desc())
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.fetch();
List<BasGroupUserModel> result = new ArrayList<BasGroupUserModel>();
if(!(rq.getMemberName() == null) && !StringUtils.isEmpty(rq.getMemberName())) {
@ -565,7 +567,7 @@ public class PtyGroupQueryRepository{
result.add(model);
}
}
return result;
return new PageImpl<>(result, pageable, result.size());
}
for(BasGroupUserModel model : queryResult) {
if(!(model.getMemberName() == null)) {
@ -574,9 +576,102 @@ public class PtyGroupQueryRepository{
result.add(model);
}
}
return result;
return new PageImpl<>(result, pageable, result.size());
}
public long userCount(BasGroupUserListModel rq){
QPtyGroupBas bas = QPtyGroupBas.ptyGroupBas;
QPtyCstmrGroup dtl = QPtyCstmrGroup.ptyCstmrGroup;
QPtyCstmrBas cstmr = QPtyCstmrBas.ptyCstmrBas;
QPtyCstmrDtl cstmrDtl = QPtyCstmrDtl.ptyCstmrDtl;
BooleanBuilder builder = new BooleanBuilder();
builder.and(bas.useYn.eq("Y"));
builder.and(dtl.joinYn.eq("Y"));
builder.and(dtl.aprvlYn.eq("Y"));
builder.and(bas.groupId.eq(rq.getGroupId()));
// 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.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(!StringUtils.isEmpty(rq.getMemberName())) {
// builder.and(dtl.aprvlYn.eq(rq.getAprvYn()));
// }
//
List<BasGroupUserModel> queryResult =
query.select(Projections.bean(BasGroupUserModel.class ,
bas.groupId,
bas.groupNm,
bas.groupTypeCd,
bas.updateDt,
bas.createDt,
dtl.cstmrGroupSno,
dtl.cstmrSno,
dtl.joinDt,
dtl.joinYn,
dtl.aprvlDt,
dtl.groupAuthCd,
cstmrDtl.memberName,
cstmr.userId
)).from(bas)
.leftJoin(dtl)
.on(bas.groupId.eq(dtl.groupId))
.leftJoin(cstmr)
.on(dtl.cstmrSno.eq(cstmr.cstmrSno))
.on(cstmr.cstmrStatusCd.eq("A"))
.leftJoin(cstmrDtl)
.on(cstmr.cstmrSno.eq(cstmrDtl.cstmrSno))
.where(builder)
.orderBy(bas.createDt.desc())
.fetch();
long cnt = 0;
List<BasGroupUserModel> result = new ArrayList<BasGroupUserModel>();
if(!(rq.getMemberName() == null) && !StringUtils.isEmpty(rq.getMemberName())) {
for(BasGroupUserModel model : queryResult) {
String memberName = EncryptUtils.decrypt(model.getMemberName());
if(memberName.contains(rq.getMemberName())) {
model.setMemberName(memberName);
result.add(model);
}
}
for(BasGroupUserModel list : result) {
cnt++;
}
return cnt;
}
for(BasGroupUserModel model : queryResult) {
if(!(model.getMemberName() == null)) {
String memberName = EncryptUtils.decrypt(model.getMemberName());
model.setMemberName(memberName);
result.add(model);
}
}
for(BasGroupUserModel list : result) {
cnt++;
}
return cnt;
}
public List<BasGroupModel> groupTop3(int cstmrSno){
QPtyGroupBas bas = QPtyGroupBas.ptyGroupBas;

Loading…
Cancel
Save