Skip to content

Commit

Permalink
🧩 :: (#493) Cache 적용
Browse files Browse the repository at this point in the history
  • Loading branch information
alsdl0629 committed Dec 10, 2023
1 parent 18d8a9e commit e631f86
Show file tree
Hide file tree
Showing 20 changed files with 128 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
public class TotalPageCountResponse {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package team.retum.jobis.domain.application.dto.response;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
@Builder
public class QueryEmploymentCountResponse {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import team.retum.jobis.domain.application.spi.vo.PassedApplicationStudentsVO;
import team.retum.jobis.domain.student.model.SchoolNumber;

import java.util.List;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
public class QueryPassedApplicationStudentsResponse {

Expand All @@ -29,6 +31,8 @@ public static QueryPassedApplicationStudentResponse of(PassedApplicationStudents
}

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
@Builder
public static class QueryPassedApplicationStudentResponse {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
public class QueryRejectionReasonResponse {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,22 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import team.retum.jobis.domain.application.model.ApplicationStatus;

import java.time.LocalDate;
import java.util.List;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
public class TeacherQueryApplicationsResponse {

private final List<TeacherQueryApplicationResponse> applications;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
@Builder
public static class TeacherQueryApplicationResponse {
private final Long applicationId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import team.retum.jobis.domain.code.model.Code;
import team.retum.jobis.domain.code.model.JobType;

import java.util.List;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
public class CodesResponse {

Expand All @@ -23,6 +25,8 @@ public static CodeResponse of(Code code) {
}

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
@Builder
public static class CodeResponse {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
package team.retum.jobis.domain.company.dto.response;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.util.List;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
@Builder
public class QueryCompanyDetailsResponse {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import team.retum.jobis.domain.company.spi.vo.StudentCompaniesVO;

import java.util.List;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
public class StudentQueryCompaniesResponse {
private final List<StudentCompaniesVO> companies;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import team.retum.jobis.domain.company.spi.vo.TeacherEmployCompaniesVO;

import java.util.List;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
public class TeacherQueryEmployCompaniesResponse {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
public class StudentCompaniesVO {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
public class TeacherEmployCompaniesVO {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package team.retum.jobis.domain.recruitment.dto.response;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import team.retum.jobis.domain.recruitment.model.ProgressType;
import team.retum.jobis.domain.recruitment.spi.vo.RecruitmentDetailVO;

Expand All @@ -10,6 +12,8 @@
import java.util.List;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
@Builder
public class QueryRecruitmentDetailResponse {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
@Builder
public class RecruitAreaResponse {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,20 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
public class StudentQueryRecruitmentsResponse {

private final List<StudentRecruitmentResponse> recruitments;

@Getter
@NoArgsConstructor(force = true)
@AllArgsConstructor
@Builder
public static class StudentRecruitmentResponse {
private long id;
Expand Down
3 changes: 3 additions & 0 deletions jobis-infrastructure/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ dependencies {
// jaxb
implementation 'javax.xml.bind:jaxb-api:2.3.0'

// cache
implementation 'org.springframework.boot:spring-boot-starter-cache'

}

test.useJUnitPlatform()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package team.retum.jobis.domain.application.presentation;

import jakarta.validation.Valid;
import jakarta.validation.constraints.Positive;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cache.annotation.Caching;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
Expand All @@ -18,9 +21,9 @@
import team.retum.jobis.common.dto.response.TotalPageCountResponse;
import team.retum.jobis.domain.application.dto.response.CompanyQueryApplicationsResponse;
import team.retum.jobis.domain.application.dto.response.QueryEmploymentCountResponse;
import team.retum.jobis.domain.application.dto.response.QueryMyApplicationsResponse;
import team.retum.jobis.domain.application.dto.response.QueryPassedApplicationStudentsResponse;
import team.retum.jobis.domain.application.dto.response.QueryRejectionReasonResponse;
import team.retum.jobis.domain.application.dto.response.QueryMyApplicationsResponse;
import team.retum.jobis.domain.application.dto.response.TeacherQueryApplicationsResponse;
import team.retum.jobis.domain.application.model.ApplicationStatus;
import team.retum.jobis.domain.application.presentation.dto.request.ChangeApplicationsStatusWebRequest;
Expand All @@ -33,13 +36,17 @@
import team.retum.jobis.domain.application.usecase.CreateApplicationUseCase;
import team.retum.jobis.domain.application.usecase.DeleteApplicationUseCase;
import team.retum.jobis.domain.application.usecase.QueryEmploymentCountUseCase;
import team.retum.jobis.domain.application.usecase.QueryMyApplicationsUseCase;
import team.retum.jobis.domain.application.usecase.QueryPassedApplicationStudentsUseCase;
import team.retum.jobis.domain.application.usecase.QueryRejectionReasonUseCase;
import team.retum.jobis.domain.application.usecase.QueryMyApplicationsUseCase;
import team.retum.jobis.domain.application.usecase.ReapplyUseCase;
import team.retum.jobis.domain.application.usecase.RejectApplicationUseCase;
import team.retum.jobis.domain.application.usecase.TeacherQueryApplicationsUseCase;

import static team.retum.jobis.global.config.cache.CacheName.APPLICATION;
import static team.retum.jobis.global.config.cache.CacheName.COMPANY;

@CacheConfig(cacheNames = APPLICATION)
@RequiredArgsConstructor
@RequestMapping("/applications")
@RestController
Expand All @@ -58,6 +65,13 @@ public class ApplicationWebAdapter {
private final ReapplyUseCase reapplyUseCase;
private final QueryRejectionReasonUseCase queryRejectionReasonUseCase;

@Caching(
evict = {
@CacheEvict(cacheNames = APPLICATION, allEntries = true),
@CacheEvict(cacheNames = COMPANY, allEntries = true)
}
)
@CacheEvict(allEntries = true)
@ResponseStatus(HttpStatus.CREATED)
@PostMapping("/{recruitment-id}")
public void createApplication(
Expand All @@ -67,12 +81,19 @@ public void createApplication(
createApplicationUseCase.execute(request.toDomainRequest(), recruitmentId);
}

@Caching(
evict = {
@CacheEvict(cacheNames = APPLICATION, allEntries = true),
@CacheEvict(cacheNames = COMPANY, allEntries = true)
}
)
@ResponseStatus(HttpStatus.NO_CONTENT)
@DeleteMapping("/{application-id}")
public void deleteApplication(@PathVariable("application-id") Long applicationId) {
deleteApplicationUseCase.execute(applicationId);
}

@Cacheable
@GetMapping
public TeacherQueryApplicationsResponse queryTeacherApplicationList(
@RequestParam(value = "application_status", required = false) ApplicationStatus applicationStatus,
Expand All @@ -82,6 +103,7 @@ public TeacherQueryApplicationsResponse queryTeacherApplicationList(
return queryApplicationListService.execute(applicationStatus, studentName, recruitmentId);
}

@Cacheable
@GetMapping("/count")
public TotalPageCountResponse queryApplicationCount(
@RequestParam(value = "application_status", required = false) ApplicationStatus applicationStatus,
Expand All @@ -100,6 +122,12 @@ public QueryMyApplicationsResponse queryMyApplications() {
return queryMyApplicationsUseCase.execute();
}

@Caching(
evict = {
@CacheEvict(cacheNames = APPLICATION, allEntries = true),
@CacheEvict(cacheNames = COMPANY, allEntries = true)
}
)
@ResponseStatus(HttpStatus.NO_CONTENT)
@PatchMapping("/status")
public void changeApplicationsStatus(@RequestBody @Valid ChangeApplicationsStatusWebRequest request) {
Expand All @@ -109,12 +137,14 @@ public void changeApplicationsStatus(@RequestBody @Valid ChangeApplicationsStatu
);
}

@CacheEvict(allEntries = true)
@ResponseStatus(HttpStatus.NO_CONTENT)
@PatchMapping("/train-date")
public void changeFieldTrainDate(@RequestBody @Valid ChangeFieldTrainDateWebRequest request) {
changeFieldTrainDateUseCase.execute(request.toDomainRequest());
}

@CacheEvict(allEntries = true)
@ResponseStatus(HttpStatus.NO_CONTENT)
@PatchMapping("/rejection/{application-id}")
public void rejectApplication(
Expand All @@ -124,18 +154,21 @@ public void rejectApplication(
rejectApplicationUseCase.execute(applicationId, request.getReason());
}

@Cacheable
@GetMapping("/employment/count")
public QueryEmploymentCountResponse queryEmploymentCount() {
return queryEmploymentCountUseCase.execute();
}

@Cacheable
@GetMapping("/pass/{company-id}")
public QueryPassedApplicationStudentsResponse queryFieldTrainApplication(
@PathVariable("company-id") Long companyId
) {
return queryPassedApplicationStudentsUseCase.execute(companyId);
}

@CacheEvict(allEntries = true)
@ResponseStatus(HttpStatus.NO_CONTENT)
@PutMapping("/{application-id}")
public void reapply(
Expand All @@ -145,6 +178,7 @@ public void reapply(
reapplyUseCase.execute(applicationId, request.toDomainRequest());
}

@Cacheable
@GetMapping("/rejection/{application-id}")
public QueryRejectionReasonResponse queryRejectionReason(@PathVariable("application-id") Long applicationId) {
return queryRejectionReasonUseCase.execute(applicationId);
Expand Down
Loading

0 comments on commit e631f86

Please sign in to comment.