diff --git a/.github/workflows/CD-develop.yml b/.github/workflows/CD-develop.yml index 71f4ab3..9f87516 100644 --- a/.github/workflows/CD-develop.yml +++ b/.github/workflows/CD-develop.yml @@ -15,15 +15,15 @@ jobs: working-directory: ./ steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up JDK 17 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: '17' distribution: 'adopt' - name: Cache Gradle packages - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | ~/.gradle/caches @@ -53,7 +53,7 @@ jobs: rm -f ~/.gradle/caches/modules-2/gc.properties - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} diff --git a/.github/workflows/CD-prod.yml b/.github/workflows/CD-prod.yml index ff0c40e..b13fdcf 100644 --- a/.github/workflows/CD-prod.yml +++ b/.github/workflows/CD-prod.yml @@ -16,15 +16,15 @@ jobs: APPLICATION: ${{ secrets.APPLICATION_PROD }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up JDK 17 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: '17' distribution: 'adopt' - name: Cache Gradle packages - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | ~/.gradle/caches @@ -52,7 +52,7 @@ jobs: rm -f ~/.gradle/caches/modules-2/gc.properties - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} diff --git a/.github/workflows/CI-develop.yml b/.github/workflows/CI-develop.yml index 742d99d..4597c95 100644 --- a/.github/workflows/CI-develop.yml +++ b/.github/workflows/CI-develop.yml @@ -16,15 +16,15 @@ jobs: APPLICATION: ${{ secrets.APPLICATION_DEV }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up JDK 17 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: '17' distribution: 'adopt' - name: Cache Gradle packages - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | ~/.gradle/caches diff --git a/.github/workflows/CI-prod.yml b/.github/workflows/CI-prod.yml index b24e8b9..72d0446 100644 --- a/.github/workflows/CI-prod.yml +++ b/.github/workflows/CI-prod.yml @@ -16,15 +16,15 @@ jobs: APPLICATION: ${{ secrets.APPLICATION_PROD}} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up JDK 17 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: '17' distribution: 'adopt' - name: Cache Gradle packages - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | ~/.gradle/caches diff --git a/src/main/java/com/yedu/backend/admin/domain/service/AdminGetService.java b/src/main/java/com/yedu/backend/admin/domain/service/AdminGetService.java index b81c3f8..1633cd7 100644 --- a/src/main/java/com/yedu/backend/admin/domain/service/AdminGetService.java +++ b/src/main/java/com/yedu/backend/admin/domain/service/AdminGetService.java @@ -42,7 +42,7 @@ public List allApplication() { } public List allMatching(ApplicationForm applicationForm) { - return classMatchingRepository.findAllByApplicationForm(applicationForm); + return classMatchingRepository.allByApplicationForm(applicationForm); } public ApplicationForm applicationFormById(String applicationFormId) { diff --git a/src/main/java/com/yedu/backend/domain/matching/domain/repository/ClassMatchingDslRepository.java b/src/main/java/com/yedu/backend/domain/matching/domain/repository/ClassMatchingDslRepository.java new file mode 100644 index 0000000..e4269ee --- /dev/null +++ b/src/main/java/com/yedu/backend/domain/matching/domain/repository/ClassMatchingDslRepository.java @@ -0,0 +1,10 @@ +package com.yedu.backend.domain.matching.domain.repository; + +import com.yedu.backend.domain.matching.domain.entity.ClassMatching; +import com.yedu.backend.domain.parents.domain.entity.ApplicationForm; + +import java.util.List; + +public interface ClassMatchingDslRepository { + List allByApplicationForm(ApplicationForm applicationForm); +} diff --git a/src/main/java/com/yedu/backend/domain/matching/domain/repository/ClassMatchingDslRepositoryImpl.java b/src/main/java/com/yedu/backend/domain/matching/domain/repository/ClassMatchingDslRepositoryImpl.java new file mode 100644 index 0000000..1bc8fc5 --- /dev/null +++ b/src/main/java/com/yedu/backend/domain/matching/domain/repository/ClassMatchingDslRepositoryImpl.java @@ -0,0 +1,38 @@ +package com.yedu.backend.domain.matching.domain.repository; + +import com.querydsl.core.types.OrderSpecifier; +import com.querydsl.core.types.dsl.CaseBuilder; +import com.querydsl.jpa.impl.JPAQueryFactory; +import com.yedu.backend.domain.matching.domain.entity.ClassMatching; +import com.yedu.backend.domain.matching.domain.entity.constant.MatchingStatus; +import com.yedu.backend.domain.parents.domain.entity.ApplicationForm; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; + +import static com.yedu.backend.domain.matching.domain.entity.QClassMatching.classMatching; + +@RequiredArgsConstructor +@Repository +public class ClassMatchingDslRepositoryImpl implements ClassMatchingDslRepository{ + private final JPAQueryFactory queryFactory; + + @Override + public List allByApplicationForm(ApplicationForm applicationForm) { + return queryFactory.selectFrom(classMatching) + .where(classMatching.applicationForm.eq(applicationForm)) + .orderBy(statusOrderSpecifier()) + .fetch(); + } + + private OrderSpecifier statusOrderSpecifier() { + return new CaseBuilder() + .when(classMatching.matchStatus.eq(MatchingStatus.수락)).then(1) + .when(classMatching.matchStatus.eq(MatchingStatus.거절)).then(2) + .when(classMatching.matchStatus.eq(MatchingStatus.대기)).then(3) + .when(classMatching.matchStatus.eq(MatchingStatus.전송)).then(4) + .otherwise(Integer.MAX_VALUE) + .asc(); + } +} diff --git a/src/main/java/com/yedu/backend/domain/matching/domain/repository/ClassMatchingRepository.java b/src/main/java/com/yedu/backend/domain/matching/domain/repository/ClassMatchingRepository.java index 3493b66..e4e0583 100644 --- a/src/main/java/com/yedu/backend/domain/matching/domain/repository/ClassMatchingRepository.java +++ b/src/main/java/com/yedu/backend/domain/matching/domain/repository/ClassMatchingRepository.java @@ -7,7 +7,7 @@ import java.util.List; import java.util.Optional; -public interface ClassMatchingRepository extends JpaRepository { +public interface ClassMatchingRepository extends JpaRepository , ClassMatchingDslRepository{ List findAllByApplicationForm(ApplicationForm applicationForm); Optional findByApplicationForm_ApplicationFormIdAndTeacher_TeacherIdAndTeacher_TeacherInfo_PhoneNumber(String applicationFormId, long teacherId, String phoneNumber); }