Deveolpment Study🗂️/Spring Framework

리스트에서 seq뽑아 새로운 로직수행 후 list에 담아 출력하기.

bompeach 2024. 1. 29. 10:32

 

//전체휴가현황리스트
List<VacationApplyVo> list = vacationService.findAllVacationApplyList(vacationApplyVo);
//model.addAttribute("list", list);

for(VacationApplyVo vo : list) {
    int seq = vo.getSeq(); 
    
    //사용일 구하는 로직에 seq담기
    float appDate = vacationService.findAppDateFromVacation(seq);
    vo.setAppDate(appDate);
}

model.addAttribute("list", list);

 

기존 list에 내가 새로 만든 appDate를 추가하려고함.

 

list를 먼저구하고, 반복문으로 list의 seq들을 뽑아내서 vacationService.findAppDateFromVacation에 넣어준다. 로직 돌면서 각 리스트의 appDate를 구한다. 

 

appDate변수를 사용하기 위해 출력용인 appDate변수를 VO에 추가해줌.

/** [출력용] 사용일 */
Float appDate;

 

 

 

.

.

 

 

그럼 로그인유저의 사용일자를 result에 담아서 출력하려면? 
두개의 seq가 필요하다. 로그인유저seq와 휴가신청목록seq.

public ResponseEntity<?> getApplyList(@AuthUser AccntVo authUser){
    if(authUser == null || authUser.getSeq() == null) {
        return ResponseEntity.badRequest().body(ErrorCode.ACCESS_DENIDED.getErrorMessage());
    }


    //이부분부터보면됨
    List<VacationApplyVo> result = vacationService.findVacationApplyList(VacationApplyVo.builder().applyAccntSeq(authUser.getSeq()).build());
    for(VacationApplyVo vo : result) {
        vo.setApplyAccntName(authUser.getName());
        vo.setApplyAccntCentral(authUser.getCentral());
        if(authUser.getCentralDeptSeq() != authUser.getTeamDeptSeq()) {
            vo.setApplyAccntTeam(authUser.getTeam());
        }

        //+ 나의휴가신청내역(신청일수)
        int applyAccntSeq = authUser.getSeq(); //로그인유저seq
        int seq = vo.getSeq(); //휴가신청목록seq
        float appDate = vacationService.findMyAppDateFromVacation(applyAccntSeq, seq); // 개인 휴가 사용일 계산
        vo.setAppDate(appDate); 
    }

    return ResponseEntity.ok(result);
}

 

그럼 나의 휴가사용일( appDate )가 result에 잘 담겨서 출력된다.