Skip to content

Commit

Permalink
[feat] application 전체보기 sorting 추가 (#88)
Browse files Browse the repository at this point in the history
  • Loading branch information
wjdtkdgns authored Jul 17, 2023
1 parent 8cd8dbb commit 42d96c7
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import ceos.backend.domain.application.dto.request.*;
import ceos.backend.domain.application.dto.response.*;
import ceos.backend.domain.application.enums.SortType;
import ceos.backend.domain.application.service.ApplicationService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
Expand All @@ -26,10 +27,11 @@ public class ApplicationController {

@Operation(summary = "지원자 목록 보기")
@GetMapping
public GetApplications getApplications(@RequestParam("pageNum") int pageNum,
public GetApplications getApplications(@RequestParam("sort")SortType sortType,
@RequestParam("pageNum") int pageNum,
@RequestParam("limit") int limit) {
log.info("지원자 목록 보기");
return applicationService.getApplications(pageNum, limit);
return applicationService.getApplications(pageNum, limit, sortType);
}

@Operation(summary = "지원하기")
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/ceos/backend/domain/application/enums/SortType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package ceos.backend.domain.application.enums;

public enum SortType {
FRONTEND,
BACKEND,
PRODUCT,
DESIGN,
FINALPASS,
FINALFAIL,
DOCPASS,
DOCFAIL
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package ceos.backend.domain.application.repository;

import ceos.backend.domain.application.domain.Application;
import ceos.backend.domain.application.domain.Pass;
import ceos.backend.global.common.entity.Part;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
Expand All @@ -25,4 +29,12 @@ Optional<Application> findByUuidAndEmail(@Param("uuid") String uuid,
@Query("select count(a) > 0 from Application a" +
" where a.applicantInfo.email = :email")
boolean existsByEmail(@Param("email") String email);

@Query("select a from Application a" +
" where a.applicationDetail.part = :part")
Page<Application> findAllByPart(@Param("part")Part part, PageRequest pageRequest);

Page<Application> findAllByFinalPass(Pass fail, PageRequest pageRequest);

Page<Application> findAllByDocumentPass(Pass fail, PageRequest pageRequest);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import ceos.backend.domain.application.domain.*;
import ceos.backend.domain.application.dto.request.*;
import ceos.backend.domain.application.dto.response.*;
import ceos.backend.domain.application.enums.SortType;
import ceos.backend.domain.application.exception.FileCreationFailed;
import ceos.backend.domain.application.helper.ApplicationExcelHelper;
import ceos.backend.domain.application.helper.ApplicationHelper;
Expand Down Expand Up @@ -55,11 +56,22 @@ public class ApplicationService {


@Transactional(readOnly = true)
public GetApplications getApplications(int pageNum, int limit) {
public GetApplications getApplications(int pageNum, int limit, SortType sortType) {
//페이징 요청 정보
PageRequest pageRequest = PageRequest.of(pageNum, limit);

Page<Application> pageManagements = applicationRepository.findAll(pageRequest);
Page<Application> pageManagements = null;
switch (sortType) {
case BACKEND -> pageManagements = applicationRepository.findAllByPart(Part.BACKEND, pageRequest);
case FRONTEND -> pageManagements = applicationRepository.findAllByPart(Part.FRONTEND, pageRequest);
case DESIGN -> pageManagements = applicationRepository.findAllByPart(Part.DESIGN, pageRequest);
case PRODUCT -> pageManagements = applicationRepository.findAllByPart(Part.PRODUCT, pageRequest);
case FINALFAIL -> pageManagements = applicationRepository.findAllByFinalPass(Pass.FAIL, pageRequest);
case FINALPASS -> pageManagements = applicationRepository.findAllByFinalPass(Pass.PASS, pageRequest);
case DOCFAIL -> pageManagements = applicationRepository.findAllByDocumentPass(Pass.FAIL, pageRequest);
case DOCPASS -> pageManagements = applicationRepository.findAllByDocumentPass(Pass.PASS, pageRequest);
}


//페이징 정보
PageInfo pageInfo = PageInfo.of(pageNum, limit, pageManagements.getTotalPages(), pageManagements.getTotalElements());
Expand Down

0 comments on commit 42d96c7

Please sign in to comment.