Skip to content

Commit

Permalink
fix: category를 enum으로 찾도록 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
koosco committed Dec 5, 2024
1 parent c447a14 commit 25d2e11
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 22 deletions.
6 changes: 4 additions & 2 deletions src/main/java/com/groom/orbit/goal/app/MemberGoalService.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.groom.orbit.goal.dao.MemberGoalRepository;
import com.groom.orbit.goal.dao.QuestRepository;
import com.groom.orbit.goal.dao.entity.Goal;
import com.groom.orbit.goal.dao.entity.GoalCategory;
import com.groom.orbit.goal.dao.entity.MemberGoal;
import com.groom.orbit.goal.dao.entity.Quest;
import com.groom.orbit.member.app.MemberQueryService;
Expand Down Expand Up @@ -301,12 +302,13 @@ public Page<MemberGoal> findMemberGoalInMemberId(

Pageable customPageable =
Pageable.ofSize(pageable.getPageSize()).withPage(pageable.getPageNumber());
GoalCategory goalCategory = GoalCategory.from(category);

if (order.equals("latest")) {
return memberGoalRepository.findByMemberIdsAndCategoryCreatedAtDesc(
memberIds, category, customPageable);
memberIds, goalCategory, customPageable);
}
return memberGoalRepository.findByMemberIdsAndCategoryCountDesc(
memberIds, category, customPageable);
memberIds, goalCategory, customPageable);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import com.groom.orbit.goal.dao.entity.MemberGoal;
import com.groom.orbit.goal.dao.entity.Quest;
import com.groom.orbit.job.app.InterestJobService;
import com.groom.orbit.member.dao.jpa.entity.Member;

import lombok.RequiredArgsConstructor;

Expand Down Expand Up @@ -58,8 +57,9 @@ private static Goal findGoal(List<MemberGoal> memberGoals) {

public Page<GoalSearchResponseDto> searchGoals(
Long memberId, String category, List<Long> jobIds, Pageable pageable) {
List<Member> members = interestJobService.findMemberInInterestJob(jobIds); // 관심 직무가 같은 사용자 조회
List<Long> memberIds = new ArrayList<>(members.stream().map(Member::getId).toList());
List<Long> memberIds =
new ArrayList<>(
interestJobService.findMemberInInterestJob(jobIds).stream().distinct().toList());
memberIds.remove(memberId);
Page<MemberGoal> memberGoals =
memberGoalService.findMemberGoalInMemberId(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import com.groom.orbit.goal.dao.entity.GoalCategory;
import com.groom.orbit.goal.dao.entity.MemberGoal;

public interface MemberGoalRepository extends JpaRepository<MemberGoal, Long> {
Expand Down Expand Up @@ -54,7 +55,7 @@ List<MemberGoal> findAllByMemberIdAndIsCompleteFalseAndSequenceGreaterThan(
+ " order by g.count desc")
Page<MemberGoal> findByMemberIdsAndCategoryCountDesc(
@Param("member_ids") List<Long> memberIds,
@Param("category") String category,
@Param("category") GoalCategory category,
Pageable pageable);

@Query(
Expand All @@ -66,6 +67,6 @@ Page<MemberGoal> findByMemberIdsAndCategoryCountDesc(
+ " order by g.createdAt desc")
Page<MemberGoal> findByMemberIdsAndCategoryCreatedAtDesc(
@Param("member_ids") List<Long> memberIds,
@Param("category") String category,
@Param("category") GoalCategory category,
Pageable pageable);
}
14 changes: 5 additions & 9 deletions src/main/java/com/groom/orbit/goal/dao/entity/GoalCategory.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,26 @@
import java.util.Arrays;
import java.util.List;

import com.groom.orbit.common.exception.CommonException;
import com.groom.orbit.common.exception.ErrorCode;
import lombok.Getter;

@Getter
public enum GoalCategory {
CERTIFICATION("자격·어학·수상"),
EXPERIENCE("경험·활동·교육"),
CAREER("경력"),
ETC("기타");

private String category;
private final String category;

GoalCategory(String category) {
this.category = category;
}

public String getCategory() {
return category;
}

public static GoalCategory from(String category) {
return Arrays.stream(GoalCategory.values())
.filter(goalCategory -> goalCategory.getCategory().equals(category))
.filter(goalCategory -> goalCategory.name().equalsIgnoreCase(category))
.findFirst()
.orElseThrow(() -> new CommonException(ErrorCode.NOT_FOUND_GOAL_CATEGORY));
.orElseGet(() -> null);
}

public static List<String> getAll() {
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/com/groom/orbit/job/app/InterestJobService.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,8 @@ public List<JobDetailResponseDto> findJobsByMemberId(Long memberId) {
.toList();
}

public List<Member> findMemberInInterestJob(List<Long> interestJobIds) {
List<InterestJob> interestJobs = interestJobRepository.findByJobNames(interestJobIds);
return interestJobs.stream().map(InterestJob::getMember).toList();
public List<Long> findMemberInInterestJob(List<Long> interestJobIds) {
return interestJobRepository.findByJobNames(interestJobIds);
}

public void saveInterestJob(Long memberId, List<Job> jobs) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ public interface InterestJobRepository extends JpaRepository<InterestJob, Intere
List<InterestJob> findAllByMemberId(@Param("memberId") Long memberId);

@Query(
"select ij from InterestJob ij"
+ " join fetch ij.member m"
"select ij.memberId from InterestJob ij"
+ " join ij.member m"
+ " where ij.jobId in :interest_job_names")
List<InterestJob> findByJobNames(@Param("interest_job_names") List<Long> interestJobNames);
List<Long> findByJobNames(@Param("interest_job_names") List<Long> interestJobNames);
}

0 comments on commit 25d2e11

Please sign in to comment.