Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[fix] #26 - 공고 로그인 Authentication 변경 #92

Merged
merged 1 commit into from
Nov 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public String updateUserApply(UserApplyDTO userApplyDTO) {
return wbUserJobPostingFacade.applyForJob(userApplyDTO);
}

// 2. 공고 조회 - 전체, 회사명, 직무, 지역
// 2. 공고 조회 - 검색 (회사명, 직무, 지역)
@PostMapping()
public List<JobPostingDTO> getJobPostings(Authentication authentication,
@RequestBody(required = false) UserJobPostingReqDTO userJobPostingReqDTO) {
Expand All @@ -42,19 +42,21 @@ public List<JobPostingDTO> getJobPostings(Authentication authentication,
} else {
logger.info("UserJobPostingDTO is null");
}
return wbUserJobPostingFacade.getJobPostings(/*authentication, */userJobPostingReqDTO);
return wbUserJobPostingFacade.getJobPostings(authentication, userJobPostingReqDTO);
}

@GetMapping("/new")
public List<JobPostingDTO> getJobPostingsForNew(UserJobPostingReqDTO userJobPostingReqDTO) {
// 2-1. 공고 조회 - 새로운 일 구하기
@PostMapping("/new")
public List<JobPostingDTO> getJobPostingsForNew(Authentication authentication, @RequestBody UserJobPostingReqDTO userJobPostingReqDTO) {
userJobPostingReqDTO.setViewType("new");
return wbUserJobPostingFacade.getJobPostingsForNew(userJobPostingReqDTO);
return wbUserJobPostingFacade.getJobPostingsForNew(authentication, userJobPostingReqDTO);
}

@GetMapping("/career")
public List<JobPostingDTO> getJobPostingsForCareer(UserJobPostingReqDTO userJobPostingReqDTO) {
// 2-2. 공고 조회 - 경력 살리기
@PostMapping("/career")
public List<JobPostingDTO> getJobPostingsForCareer(Authentication authentication, @RequestBody UserJobPostingReqDTO userJobPostingReqDTO) {
userJobPostingReqDTO.setViewType("career");
return wbUserJobPostingFacade.getJobPostingsForCareer(userJobPostingReqDTO);
return wbUserJobPostingFacade.getJobPostingsForCareer(authentication, userJobPostingReqDTO);
}

// 3. 공고 상세 조회
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@ public class UserJobPostingReqDTO {
private List<String> exJobs;
private String viewType;
// TODO: Temp -> Authentication 으로 변경 필요
private String userId;
// private String userId;
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
import com.wooribound.domain.jobposting.dto.JobPostingDTO;
import com.wooribound.domain.jobposting.dto.JobPostingDetailDTO;
import com.wooribound.domain.userapply.Service.UserApplyService;
import com.wooribound.global.util.AuthenticateUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

Expand All @@ -18,29 +20,33 @@ public class WbUserJobPostingFacade {

private final UserApplyService userApplyService;
private final WbUserJobPostingService wbUserJobPostingService;
// private final AuthenticateUtil authenticateUtil;
private final AuthenticateUtil authenticateUtil;

// 1. 공고 지원
@Transactional
public String applyForJob(UserApplyDTO userApplyDTO) {
return userApplyService.createUserApply(userApplyDTO);
}


// 2. 공고 조회 - 검색
@Transactional(readOnly = true)
public List<JobPostingDTO> getJobPostingsForNew(UserJobPostingReqDTO userJobPostingReqDTO) {
return wbUserJobPostingService.getJobPostingsForNew(userJobPostingReqDTO);
public List<JobPostingDTO> getJobPostings(Authentication authentication, UserJobPostingReqDTO userJobPostingReqDTO) {
String loginId = authenticateUtil.CheckWbUserAuthAndGetUserId(authentication);
return wbUserJobPostingService.getJobPostings(loginId, userJobPostingReqDTO);
}

// 2-1. 공고 조회 - 새로운 일 구하기
@Transactional(readOnly = true)
public List<JobPostingDTO> getJobPostingsForCareer(UserJobPostingReqDTO userJobPostingReqDTO) {
return wbUserJobPostingService.getJobPostingsForCareer(userJobPostingReqDTO);
public List<JobPostingDTO> getJobPostingsForNew(Authentication authentication, UserJobPostingReqDTO userJobPostingReqDTO) {
String loginId = authenticateUtil.CheckWbUserAuthAndGetUserId(authentication);
return wbUserJobPostingService.getJobPostingsForNew(loginId, userJobPostingReqDTO);
}

// 2. 공고 조회 - 전체, 회사명, 직무, 지역
// 2-2. 공고 조회 - 경력 살리기
@Transactional(readOnly = true)
public List<JobPostingDTO> getJobPostings(/*Authentication authentication,*/ UserJobPostingReqDTO userJobPostingReqDTO) {
// String loginUser = authenticateUtil.CheckWbUserAuthAndGetUserId(authentication);
return wbUserJobPostingService.getJobPostings(/*loginUser,*/ userJobPostingReqDTO);
public List<JobPostingDTO> getJobPostingsForCareer(Authentication authentication, UserJobPostingReqDTO userJobPostingReqDTO) {
String loginId = authenticateUtil.CheckWbUserAuthAndGetUserId(authentication);
return wbUserJobPostingService.getJobPostingsForCareer(loginId, userJobPostingReqDTO);
}

// 3. 공고 상세 조회
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public interface JobPostingRepository extends JpaRepository<JobPosting, Long> {
"FROM JobPosting jp")
List<JobPostingProjection> findAllJobPostingProjections();

// TODO: 공고 지역 시~도만 출력되게 변경 필요, 첫번쨰 공백 전까지 문자열 자르기?
// 1. 공고 조회 (검색)
@Query("SELECT jp.enterprise AS enterprise, jp.postId AS postId, jp.enterprise.entName AS entName, jp.postTitle AS postTitle, jp.postImg AS postImg, " +
"jp.startDate AS startDate, jp.endDate AS endDate, jp.job.jobName AS jobName, " +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
import java.util.List;

public interface WbUserJobPostingService {
// 1. 공고 조회 - 전체, 회사명, 직무, 지역
List<JobPostingDTO> getJobPostings(/*String loginUser,*/ UserJobPostingReqDTO userJobPostingReqDTO);
List<JobPostingDTO> getJobPostingsForNew(UserJobPostingReqDTO userJobPostingReqDTO);
List<JobPostingDTO> getJobPostingsForCareer(UserJobPostingReqDTO userJobPostingReqDTO);
// 1. 공고 조회 - 검색, 새로운 일 구하기, 경력 살리기
List<JobPostingDTO> getJobPostings(String loginId, UserJobPostingReqDTO userJobPostingReqDTO);
List<JobPostingDTO> getJobPostingsForNew(String loginId, UserJobPostingReqDTO userJobPostingReqDTO);
List<JobPostingDTO> getJobPostingsForCareer(String loginId, UserJobPostingReqDTO userJobPostingReqDTO);

// 2. 공고 상세 조회
JobPostingDetailDTO getJobPostingDetail(Long postId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public class WbUserJobPostingServiceImpl implements WbUserJobPostingService {
private final WorkHistoryRepository workHistoryRepository;

// 1. 공고 조회 - 검색 (회사명, 직무, 지역)
public List<JobPostingDTO> getJobPostings(UserJobPostingReqDTO userJobPostingReqDTO) {
public List<JobPostingDTO> getJobPostings(String loginId, UserJobPostingReqDTO userJobPostingReqDTO) {
String entName = userJobPostingReqDTO.getEntName();
String jobName = userJobPostingReqDTO.getJobName();
String entAddr1 = userJobPostingReqDTO.getEntAddr1();
Expand All @@ -43,58 +43,58 @@ public List<JobPostingDTO> getJobPostings(UserJobPostingReqDTO userJobPostingReq
}

// 2. 공고 조회 - 새로운 일 구하기
public List<JobPostingDTO> getJobPostingsForNew(UserJobPostingReqDTO userJobPostingReqDTO) {
String userId = userJobPostingReqDTO.getUserId();
public List<JobPostingDTO> getJobPostingsForNew(String loginId, UserJobPostingReqDTO userJobPostingReqDTO) {
// String loginId = userJobPostingReqDTO.getloginId();
List<JobPostingProjection> jobPostingsProjections;
List<String> interestJobs;
List<String> exJobs;

logger.info("새로운 일 구하기 START");
if (userId == null) {
if (loginId == null) {
jobPostingsProjections = jobPostingRepository.findAllJobPostingProjections();
} else {
WbUser user = wbUserRepository.findById(userId)
WbUser user = wbUserRepository.findById(loginId)
.orElseThrow(() -> new NoWbUserException());

logger.info(userId + ", 관심직종 등록 여부 : " + user.getInterestChk() + " 경력직종 등록 여부 : " + user.getExjobChk());
interestJobs = user.getInterestChk() == YN.Y ? interestJobRepository.findJobNamesByUserId(userId) : List.of();
exJobs = user.getExjobChk() == YN.Y ? workHistoryRepository.findJobNamesByUserId(userId) : List.of();
logger.info(userId + " 관심직종 목록 : " + interestJobs + ", 경력직종 목록 : " + exJobs);
logger.info(loginId + ", 관심직종 등록 여부 : " + user.getInterestChk() + " 경력직종 등록 여부 : " + user.getExjobChk());
interestJobs = user.getInterestChk() == YN.Y ? interestJobRepository.findJobNamesByUserId(loginId) : List.of();
exJobs = user.getExjobChk() == YN.Y ? workHistoryRepository.findJobNamesByUserId(loginId) : List.of();
logger.info(loginId + " 관심직종 목록 : " + interestJobs + ", 경력직종 목록 : " + exJobs);

if (interestJobs.isEmpty() && exJobs.isEmpty()) {
jobPostingsProjections = jobPostingRepository.findAllJobPostingProjections();
} else {
logger.info("findJobPostingsNew START :" + userId + " 관심직종 목록 : " + interestJobs + ", 경력직종 목록 : " + exJobs);
logger.info("findJobPostingsNew START :" + loginId + " 관심직종 목록 : " + interestJobs + ", 경력직종 목록 : " + exJobs);
jobPostingsProjections = jobPostingRepository.findJobPostingsNew(exJobs.isEmpty() ? null : exJobs,
interestJobs.isEmpty() ? null : interestJobs);
logger.info(userId + " 새로운 일 공고 : " + jobPostingsProjections);
logger.info(loginId + " 새로운 일 공고 : " + jobPostingsProjections);
}
}
return mapJobPostingsToDTOs(jobPostingsProjections);
}


// 3. 공고 조회 - 경력 살리기
public List<JobPostingDTO> getJobPostingsForCareer(UserJobPostingReqDTO userJobPostingReqDTO) {
String userId = userJobPostingReqDTO.getUserId();
public List<JobPostingDTO> getJobPostingsForCareer(String loginId, UserJobPostingReqDTO userJobPostingReqDTO) {
// String loginId = userJobPostingReqDTO.getloginId();
List<JobPostingProjection> jobPostingsProjections = List.of();

logger.info("경력 살리기 START");
if (userId == null) {
if (loginId == null) {
jobPostingsProjections = jobPostingRepository.findAllJobPostingProjections();
} else {
WbUser user = wbUserRepository.findById(userId)
WbUser user = wbUserRepository.findById(loginId)
.orElseThrow(() -> new NoWbUserException());

logger.info(userId + " 경력직종 등록 여부 : " + user.getExjobChk());
List<String> exJobs = user.getExjobChk() == YN.Y ? workHistoryRepository.findJobNamesByUserId(userId) : List.of();
logger.info(userId + " 경력직종 목록 : " + exJobs);
logger.info(loginId + " 경력직종 등록 여부 : " + user.getExjobChk());
List<String> exJobs = user.getExjobChk() == YN.Y ? workHistoryRepository.findJobNamesByUserId(loginId) : List.of();
logger.info(loginId + " 경력직종 목록 : " + exJobs);

if (exJobs.isEmpty()) {
jobPostingsProjections = jobPostingRepository.findAllJobPostingProjections();
} else {
jobPostingsProjections = jobPostingRepository.findJobPostingsCareer(exJobs);
logger.info(userId + " 경력공고 : " + jobPostingsProjections);
logger.info(loginId + " 경력공고 : " + jobPostingsProjections);
}
}
return mapJobPostingsToDTOs(jobPostingsProjections);
Expand Down
Loading