diff --git a/src/main/java/com/wooribound/domain/enterprise/service/AdminEnterpriseServiceImpl.java b/src/main/java/com/wooribound/domain/enterprise/service/AdminEnterpriseServiceImpl.java index 1bf4099..94770ab 100644 --- a/src/main/java/com/wooribound/domain/enterprise/service/AdminEnterpriseServiceImpl.java +++ b/src/main/java/com/wooribound/domain/enterprise/service/AdminEnterpriseServiceImpl.java @@ -6,6 +6,7 @@ import com.wooribound.domain.enterprise.dto.AdminEnterpriseDTO; import com.wooribound.domain.enterprise.dto.AdminEnterpriseDetailDTO; import com.wooribound.domain.enterprise.dto.AdminPendingEnterpriseDTO; +import com.wooribound.global.exception.NoEnterpriseException; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -38,19 +39,23 @@ public List getEnterprises(AdminEnterpriseReqDTO adminEnterp @Override public AdminEnterpriseDetailDTO getEnterpriseInfo(String entId) { - Enterprise enterprise = enterpriseRepository.findByEntId(entId); + try { + Enterprise enterprise = enterpriseRepository.findByEntId(entId); - return AdminEnterpriseDetailDTO.builder() - .entId(enterprise.getEntId()) - .ceoName(enterprise.getCeoName()) - .entName(enterprise.getEntName()) - .regNum(enterprise.getRegNum()) - .entAddr1(enterprise.getEntAddr1()) - .entAddr2(enterprise.getEntAddr2()) - .entSize(enterprise.getEntSize()) - .entField(enterprise.getEntField()) - .revenue(enterprise.getRevenue()) - .build(); + return AdminEnterpriseDetailDTO.builder() + .entId(enterprise.getEntId()) + .ceoName(enterprise.getCeoName()) + .entName(enterprise.getEntName()) + .regNum(enterprise.getRegNum()) + .entAddr1(enterprise.getEntAddr1()) + .entAddr2(enterprise.getEntAddr2()) + .entSize(enterprise.getEntSize()) + .entField(enterprise.getEntField()) + .revenue(enterprise.getRevenue()) + .build(); + } catch (Exception e) { + throw new NoEnterpriseException("해당 기업 ID를 찾을 수 없습니다: " + entId, e); + } } @Override diff --git a/src/main/java/com/wooribound/domain/jobposting/Service/AdminJobPostingServiceImpl.java b/src/main/java/com/wooribound/domain/jobposting/Service/AdminJobPostingServiceImpl.java index d133d5d..1f3ae6f 100644 --- a/src/main/java/com/wooribound/domain/jobposting/Service/AdminJobPostingServiceImpl.java +++ b/src/main/java/com/wooribound/domain/jobposting/Service/AdminJobPostingServiceImpl.java @@ -37,9 +37,25 @@ public List getAllJobPostings(AdminJobPostingReqDTO adminJobPosti @Override public JobPostingDetailDTO getJobPostingDetail(Long postId) { - JobPosting jobPosting = jobPostingRepository.findJobPostingByPostId(postId); + try { + JobPosting jobPosting = jobPostingRepository.findJobPostingByPostId(postId); + + if (jobPosting == null) { + throw new NoJobPostingException("해당 공고 ID를 찾을 수 없습니다: " + postId); + } - return JobPostingDetailDTO.builder().postTitle(jobPosting.getPostTitle()).entName(jobPosting.getEnterprise().getEntName()).postImg(jobPosting.getPostImg()).startDate(jobPosting.getStartDate()).endDate(jobPosting.getEndDate()).jobName(jobPosting.getJob().getJobName()).entAddr1(jobPosting.getEnterprise().getEntAddr1()).build(); + return JobPostingDetailDTO.builder() + .postTitle(jobPosting.getPostTitle()) + .entName(jobPosting.getEnterprise().getEntName()) + .postImg(jobPosting.getPostImg()) + .startDate(jobPosting.getStartDate()) + .endDate(jobPosting.getEndDate()) + .jobName(jobPosting.getJob().getJobName()) + .entAddr1(jobPosting.getEnterprise().getEntAddr1()) + .build(); + } catch (Exception e) { + throw new NoJobPostingException("채용공고 정보를 가져오는 도중 에러가 발생했습니다: " + postId, e); + } } @Override diff --git a/src/main/java/com/wooribound/domain/knowhow/service/WbUserKnowhowServiceImpl.java b/src/main/java/com/wooribound/domain/knowhow/service/WbUserKnowhowServiceImpl.java index 58fa157..8407a77 100644 --- a/src/main/java/com/wooribound/domain/knowhow/service/WbUserKnowhowServiceImpl.java +++ b/src/main/java/com/wooribound/domain/knowhow/service/WbUserKnowhowServiceImpl.java @@ -36,7 +36,7 @@ public WbUserKnowhowDTO getShareKnowhowDetail(Long knowhowId) { Optional knowhowOptional = knowhowRepository.findById(knowhowId); if (knowhowOptional.isEmpty()) { - throw new KnowhowNotFoundException(String.format("%d는 없는 게시물 입니다.: ", knowhowId)); + throw new KnowhowNotFoundException(String.format("%d는 없는 게시물 입니다.", knowhowId)); } Knowhow knowhow = knowhowOptional.get(); diff --git a/src/main/java/com/wooribound/domain/resume/ResumeServiceImpl.java b/src/main/java/com/wooribound/domain/resume/ResumeServiceImpl.java index 4cc9024..4693615 100644 --- a/src/main/java/com/wooribound/domain/resume/ResumeServiceImpl.java +++ b/src/main/java/com/wooribound/domain/resume/ResumeServiceImpl.java @@ -1,12 +1,12 @@ package com.wooribound.domain.resume; -import com.amazonaws.services.s3.AmazonS3Client; import com.wooribound.domain.resume.dto.ResumeDTO; import com.wooribound.domain.resume.dto.ResumeDetailDTO; import com.wooribound.domain.wbuser.WbUser; import com.wooribound.domain.wbuser.WbUserRepository; import com.wooribound.domain.workhistory.WorkHistory; import com.wooribound.domain.workhistory.WorkHistoryRepository; +import com.wooribound.global.exception.NoWbUserException; import com.wooribound.global.exception.NotEntityException; import com.wooribound.global.util.AuthenticateUtil; import com.wooribound.global.util.S3Util; @@ -148,25 +148,31 @@ public ResumeDTO updateResume(Authentication authentication, MultipartFile userI @Override public ResumeDetailDTO getWbUserResume(String userId) { - - Resume resume = resumeRepository.findByUserId(userId).orElseThrow(); - List workHistoryList = workHistoryRepository.findByUserId(userId); - - List jobs = workHistoryList.stream() - .map(workHistory -> workHistory.getJob().getJobName()) // jobName만 추출 - .collect(Collectors.toList()); - - return ResumeDetailDTO.builder() - .userName(resume.getWbUser().getName()) - .jobPoint(resume.getWbUser().getJobPoint()) - .phone(resume.getWbUser().getPhone()) - .addrCity(resume.getWbUser().getAddrCity()) - .addrProvince(resume.getWbUser().getAddrProvince()) - .userIntro(resume.getUserIntro()) - .userImg(resume.getUserImg()) - .resumeEmail(resume.getResumeEmail()) - .jobList(jobs) - .build(); + try { + WbUser byIdWbUser = wbUserRepository.findById(userId) + .orElseThrow(() -> new NoWbUserException("해당 사용자 ID를 찾을 수 없습니다: " + userId)); + + Resume resume = resumeRepository.findByUserId(userId).orElseThrow(); + List workHistoryList = workHistoryRepository.findByUserId(userId); + + List jobs = workHistoryList.stream() + .map(workHistory -> workHistory.getJob().getJobName()) // jobName만 추출 + .collect(Collectors.toList()); + + return ResumeDetailDTO.builder() + .userName(resume.getWbUser().getName()) + .jobPoint(resume.getWbUser().getJobPoint()) + .phone(resume.getWbUser().getPhone()) + .addrCity(resume.getWbUser().getAddrCity()) + .addrProvince(resume.getWbUser().getAddrProvince()) + .userIntro(resume.getUserIntro()) + .userImg(resume.getUserImg()) + .resumeEmail(resume.getResumeEmail()) + .jobList(jobs) + .build(); + } catch (NoWbUserException e) { + throw e; + } } private String createFileName(String fileName){ diff --git a/src/main/java/com/wooribound/global/exception/NoEnterpriseException.java b/src/main/java/com/wooribound/global/exception/NoEnterpriseException.java new file mode 100644 index 0000000..cbf534c --- /dev/null +++ b/src/main/java/com/wooribound/global/exception/NoEnterpriseException.java @@ -0,0 +1,11 @@ +package com.wooribound.global.exception; + +import lombok.experimental.StandardException; + +@StandardException +public class NoEnterpriseException extends RuntimeException{ + + public NoEnterpriseException() { + super("기업회원이 존재하지 않습니다"); + } +} diff --git a/src/main/java/com/wooribound/global/handler/GlobalExceptionHandler.java b/src/main/java/com/wooribound/global/handler/GlobalExceptionHandler.java index bde29f1..db3b90a 100644 --- a/src/main/java/com/wooribound/global/handler/GlobalExceptionHandler.java +++ b/src/main/java/com/wooribound/global/handler/GlobalExceptionHandler.java @@ -99,6 +99,11 @@ public ResponseEntity handleNotValidPasswordException(NotValidPasswordEx public ResponseEntity handleNoApproveStatusException(NoApproveStatusException e) { return ResponseEntity.status(400).body(e.getMessage()); } + + @ExceptionHandler(NoEnterpriseException.class) + public ResponseEntity handleNoEnterpriseException(NoEnterpriseException e) { + return ResponseEntity.status(400).body(e.getMessage()); + } }