Skip to content

Commit

Permalink
fix: 리크루트 오류 수정
Browse files Browse the repository at this point in the history
fix: 리크루트 목록조회 category null 처리
fix: 리크루트 등록 시  question 빈값 처리
fix: 리크루트 질문 등록 예외처리 로직 수정
fix: 사용자 참여중 리크루트 조회시 로그인 유저는 항상 볼수있도록 수정
fix: 리크루트 참여 목록 조회시 로그인 id적용되도록 수정
fix: 질문이 없는 리크루트 신청 조회를 위한 left join 변경 및 생성자를 이용한 projection 관련 버그 수정
fix: 리크루트 신청 프로젝션 방식 변경
  • Loading branch information
khs960616 committed Oct 14, 2023
1 parent 12488b8 commit b4726e4
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public EnvelopeResponse<GetRecruitsResDto> getMemberJoinedRecruits(GetMemberJoi
@GetMapping("/applied")
public EnvelopeResponse<GetMemberAppliedRecruitsResDto> getMemberAppliedRecruits(GetMemberAppliedRecruitsReqDto recruitsReqDto, @Authentication AuthenticatedMember memberInfo) {
return EnvelopeResponse.<GetMemberAppliedRecruitsResDto>builder()
.data(recruitService.getMemberAppliedRecruits(recruitsReqDto, 1L))
.data(recruitService.getMemberAppliedRecruits(recruitsReqDto, memberInfo.getMemberId()))
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import java.util.List;
import java.util.stream.Collectors;

import org.springframework.util.StringUtils;

@Getter
@NoArgsConstructor
@AllArgsConstructor
Expand Down Expand Up @@ -68,7 +70,9 @@ public Recruit to() {
private void setRecruitQuestions (Recruit recruit) {
if(questions == null) return;

List<RecruitQuestion> recruitQuestions = questions.stream().map((question)-> RecruitQuestion.builder()
List<RecruitQuestion> recruitQuestions = questions.stream()
.filter(StringUtils::hasText)
.map((question)-> RecruitQuestion.builder()
.recruit(recruit)
.content(question)
.build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ public Slice<Recruit> findRecruitByGetRecruitsReqDto(GetRecruitsReqDto dto, Page

// recruit types limitation
List<String> recruitTypes = dto.getRecruitTypes();
if(dto.getCategory().toUpperCase().equals(Category.PROJECT.name()) && recruitTypes!=null && !recruitTypes.isEmpty()) {
if(dto.getCategory() != null && dto.getCategory().toUpperCase().equals(Category.PROJECT.name()) && recruitTypes!=null && !recruitTypes.isEmpty()) {
String metaDataType = MetaDataType.RECRUIT_TYPE.name();
List<MetaData> containRecruitTypes = recruitTypes.stream()
.map(recruitType->metaDataConsumer.getMetaData(metaDataType, recruitType))
Expand Down Expand Up @@ -153,7 +153,7 @@ public Slice<AppliedRecruit> findMemberAppliedRecruits(Long memberId, Long curso
BooleanExpression matchStatusEq = (matchStatus == null) ? null : recruitApplication.matchStatus.eq(MatchStatus.valueOf(matchStatus.toUpperCase()));

List<AppliedRecruit> recruits = jpaQueryFactory.select(
Projections.fields(
Projections.constructor(
AppliedRecruit.class,
recruit,
recruitApplication.matchStatus,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,8 @@ public void expiredRecruit(Long recruitId, Long memberId) {
public GetRecruitsResDto getMemberJoinRecruits(GetMemberJoinRecruitsReqDto recruitsReqDto, Long loginMemberId) {
Long memberId = recruitsReqDto.getMemberId();
Member member = memberRepository.findById(memberId).orElseThrow(()->new ResourceNotFoundException(GlobalErrorInfo.NOT_FOUND));
if(!member.getPublicProfile()) {

if(!memberId.equals(loginMemberId) && !member.getPublicProfile()) {
throw new MemberException(MemberErrorInfo.MEMBER_PROFILE_SECRET);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,11 @@ public RecruitApplicationElement findTopByRecruitIdAndMemberId(Long recruitId, L
try {
return jpaQueryFactory.select(
Projections
.fields(
.constructor(
RecruitApplicationElement.class,
recruit.id,
recruitApplication.id,
recruitApplication.type,
recruitApplication.matchStatus,
member,
recruitQuestionReply.content,
Expand All @@ -42,8 +43,8 @@ public RecruitApplicationElement findTopByRecruitIdAndMemberId(Long recruitId, L
.from(recruitApplication)
.innerJoin(recruitApplication.member, member)
.innerJoin(recruitApplication.recruit, recruit)
.join(recruitQuestion).on(recruitQuestion.recruit.id.eq(recruit.id))
.join(recruitQuestionReply).on(recruitQuestionReply.question.id.eq(recruitQuestion.id))
.leftJoin(recruitQuestion).on(recruitQuestion.recruit.id.eq(recruit.id))
.leftJoin(recruitQuestionReply).on(recruitQuestionReply.question.id.eq(recruitQuestion.id))
.where(recruit.id.eq(recruitId), member.id.eq(memberId), recruitApplication.matchStatus.eq(MatchStatus.PENDING))
.orderBy(recruitApplication.id.desc())
.limit(1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,10 @@ public PatchRecruitApplicationStatusResDto saveRecruitApplication(Long recruitId
metaDataConsumer.getMetaData(MetaDataType.RECRUIT_TYPE.name(), recruitType));
List<RecruitQuestionReply> participantAnswers = makeRecruitQuestionReplies(postRecruitApplicationReqDto, recruit, recruitApplication);
recruitApplicationRepository.save(recruitApplication);
recruitQuestionReplyRepository.saveAll(participantAnswers);

if(participantAnswers.size() != 0) {
recruitQuestionReplyRepository.saveAll(participantAnswers);
}
return new PatchRecruitApplicationStatusResDto(recruitApplication.getId(), MatchStatus.PENDING.name());
}

Expand Down Expand Up @@ -211,7 +214,7 @@ private List<RecruitQuestionReply> makeRecruitQuestionReplies(PostRecruitApplic
List<String> answers = dto.getContents();

int len = recruitQuestion.size();
if(answers.size() != len) {
if(len!=0 && answers.size() != len) {
throw new RecruitException(RecruitErrorInfo.NOT_SAME_LENGTH_RECRUIT_QUESTION_ANSWER);
}

Expand All @@ -224,7 +227,7 @@ private List<RecruitQuestionReply> makeRecruitQuestionReplies(PostRecruitApplic
RecruitQuestionReply.builder()
.application(recruitApplication)
.question(recruitQuestion.get(i))
.content(dto.getContents().get(i))
.content(answers.get(i))
.build()
);
}
Expand Down

0 comments on commit b4726e4

Please sign in to comment.