Skip to content

Commit

Permalink
Merge pull request #302 from techeer-sv/BE/#301
Browse files Browse the repository at this point in the history
BE/# 301 구인 게시글 조회 API 키워드로 검색 안 되는 에러 수정
  • Loading branch information
youKeon committed Nov 22, 2023
2 parents acd257d + 0992ea5 commit 91ff18d
Showing 1 changed file with 17 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
package com.graphy.backend.domain.recruitment.repository.custom;

import static com.graphy.backend.domain.member.domain.QMember.member;
import static com.graphy.backend.domain.project.domain.QTag.tag;
import static com.graphy.backend.domain.recruitment.domain.QRecruitment.recruitment;
import static com.graphy.backend.domain.recruitment.domain.QRecruitmentTag.recruitmentTag;
import static org.springframework.util.StringUtils.hasText;

import com.graphy.backend.domain.recruitment.domain.Position;
import com.graphy.backend.domain.recruitment.domain.Recruitment;
import com.graphy.backend.domain.recruitment.repository.RecruitmentCustomRepository;
import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.types.dsl.BooleanExpression;
import com.querydsl.jpa.impl.JPAQueryFactory;
import java.time.LocalDateTime;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Optional;

import static com.graphy.backend.domain.member.domain.QMember.member;
import static com.graphy.backend.domain.project.domain.QTag.tag;
import static com.graphy.backend.domain.recruitment.domain.QRecruitment.recruitment;
import static com.graphy.backend.domain.recruitment.domain.QRecruitmentTag.recruitmentTag;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;

@RequiredArgsConstructor
public class RecruitmentCustomRepositoryImpl implements RecruitmentCustomRepository {
Expand All @@ -34,6 +37,7 @@ public List<Recruitment> findRecruitments(List<Position> positions,
.where(
tagIn(tags),
positionIn(positions),
recruitmentKeywordContains(keyword)
recruitmentTitleLike(title),
isRecruiting(isRecruiting)
)
Expand Down Expand Up @@ -64,8 +68,13 @@ private BooleanExpression positionIn(List<Position> positions) {
return recruitment.position.in(positions);
}

private BooleanExpression recruitmentTitleLike(String title) {
return title != null ? recruitment.title.like(title) : null;
private BooleanBuilder recruitmentKeywordContains(String keyword) {
BooleanBuilder booleanBuilder = new BooleanBuilder();
if (hasText(keyword)) {
booleanBuilder.or(recruitment.title.contains(keyword));
booleanBuilder.or(recruitment.content.contains(keyword));
}
return booleanBuilder;
}

private BooleanExpression isRecruiting(Boolean isRecruiting) {
Expand Down

0 comments on commit 91ff18d

Please sign in to comment.