From bd29a9671ea14f28e6f103a036f3c9c849321f9a Mon Sep 17 00:00:00 2001 From: luna156 Date: Thu, 26 Dec 2024 14:44:08 +0900 Subject: [PATCH] =?UTF-8?q?[Fix]=20meeting=20time=20=EC=9D=B4=20null?= =?UTF-8?q?=EC=9D=BC=EB=95=8C=EB=8F=84=20=EA=B0=80=EB=8A=A5=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../post/service/ApplicationService.java | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/likelion/innerjoin/post/service/ApplicationService.java b/src/main/java/com/likelion/innerjoin/post/service/ApplicationService.java index f506d43..2619876 100644 --- a/src/main/java/com/likelion/innerjoin/post/service/ApplicationService.java +++ b/src/main/java/com/likelion/innerjoin/post/service/ApplicationService.java @@ -134,22 +134,26 @@ public ApplicationDto updateApplication( throw new UnauthorizedException("권한이 없습니다."); } - MeetingTime meetingTime = meetingTimeRepository.findByMeetingStartTimeAndRecruiting( - applicationPutRequestDto.getMeetingStartTime(), - application.getRecruiting() - ); - if(meetingTime == null) { - throw new MeetingTimeNotFound("면접시간이 존재하지 않습니다."); + if(applicationPutRequestDto.getMeetingStartTime() == null){ + application.setMeetingTime(null); + }else if(application.getMeetingTime() == null || !application.getMeetingTime().getMeetingStartTime().equals(applicationPutRequestDto.getMeetingStartTime())) { + MeetingTime meetingTime = meetingTimeRepository.findByMeetingStartTimeAndRecruiting( + applicationPutRequestDto.getMeetingStartTime(), + application.getRecruiting() + ); + if(meetingTime == null) { + throw new MeetingTimeNotFound("면접시간이 존재하지 않습니다."); + } + + if(meetingTime.getApplicationList().size() >= meetingTime.getAllowedNum() && !meetingTime.getApplicationList().contains(application)){ + throw new AllowedNumExceededException("허용 인원을 초과하였습니다."); + } + application.setMeetingTime(meetingTime); } application.setFormResult(applicationPutRequestDto.getFormResult()); application.setMeetingResult(applicationPutRequestDto.getMeetingResult()); - if(meetingTime.getApplicationList().size() >= meetingTime.getAllowedNum() && !meetingTime.getApplicationList().contains(application)){ - throw new AllowedNumExceededException("허용 인원을 초과하였습니다."); - } - application.setMeetingTime(meetingTime); - applicationRepository.save(application); return applicationMapper.toApplicationDto(application, false); }