Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package hs.kr.entrydsm.status.domain.status.adapter.`in`.web
import hs.kr.entrydsm.status.domain.status.application.port.`in`.AnnounceResultUseCase
import hs.kr.entrydsm.status.domain.status.application.port.`in`.CancelApplicationSubmitUseCase
import hs.kr.entrydsm.status.domain.status.application.port.`in`.StartScreeningUseCase
import hs.kr.entrydsm.status.domain.status.application.port.`in`.UpdateIsNotPrintsArrivedUseCase
import hs.kr.entrydsm.status.domain.status.application.port.`in`.UpdateIsPrintsArrivedUseCase
import hs.kr.entrydsm.status.global.document.status.AdminStatusApiDocument
import org.springframework.web.bind.annotation.PatchMapping
Expand All @@ -26,6 +27,7 @@ class AdminWebController(
private val cancelApplicationSubmitUseCase: CancelApplicationSubmitUseCase,
private val startScreeningUseCase: StartScreeningUseCase,
private val announceResultUseCase: AnnounceResultUseCase,
private val updateIsNotPrintsArrivedUseCase: UpdateIsNotPrintsArrivedUseCase
) : AdminStatusApiDocument {
/**
* 지원서 제출을 취소합니다.
Expand Down Expand Up @@ -53,6 +55,19 @@ class AdminWebController(
updateIsPrintsArrivedUseCase.execute(receiptCode)
}

/**
* 서류 도착을 수정합니다.
* 서류의 도착 여부를 관리자가 확인하여 상태를 서류 도착 대기 상태로 변경합니다.
*
* @param receiptCode 접수번호
*/
@PatchMapping("/prints-not-arrived/{receipt-code}")
override fun updateIsNotPrintsArrivedService(
@PathVariable("receipt-code") receiptCode: Long,
) {
updateIsNotPrintsArrivedUseCase.execute(receiptCode)
}

/**
* 전형을 시작합니다.
* 서류 검토가 완료된 후 1차 또는 2차 전형을 시작합니다.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package hs.kr.entrydsm.status.domain.status.application.port.`in`

/**
* 서류 미도착 수정 유스케이스 인터페이스입니다.
*/
interface UpdateIsNotPrintsArrivedUseCase {
/**
* 서류 접수 완료 상태에서 서류 도착 대기 상태로 변경합니다.
*
* @param receiptCode 접수번호
*/
fun execute(receiptCode: Long)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package hs.kr.entrydsm.status.domain.status.application.service

import hs.kr.entrydsm.status.domain.status.application.port.`in`.UpdateIsNotPrintsArrivedUseCase
import hs.kr.entrydsm.status.domain.status.application.port.out.QueryStatusPort
import hs.kr.entrydsm.status.domain.status.application.port.out.SaveStatusPort
import hs.kr.entrydsm.status.domain.status.exception.StatusNotFoundException
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional

/**
* 서류 미도착 상태 업데이트 서비스 클래스입니다.
*
* @property queryStatusPort 상태 조회 포트
* @property saveStatusPort 상태 저장 포트
*/
@Transactional
@Service
class UpdateIsNotPrintsArrivedService(
private val queryStatusPort: QueryStatusPort,
private val saveStatusPort: SaveStatusPort,
) : UpdateIsNotPrintsArrivedUseCase {

/**
* 서류 미도착 상태를 업데이트합니다.
* 서류 접수 완료에서 서류 도착 대기 상태로 변경합니다.
*
* @param receiptCode 접수번호
* @throws StatusNotFoundException 해당 접수번호의 상태가 존재하지 않는 경우
*/
override fun execute(receiptCode: Long) {
val status =
queryStatusPort.findByReceiptCode(receiptCode)
?: throw StatusNotFoundException

val updatedStatus = status.markDocumentsNotArrived()
saveStatusPort.save(updatedStatus)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,15 @@ data class Status(
return copy(applicationStatus = ApplicationStatus.DOCUMENTS_RECEIVED)
}

/**
* 서류가 도착했음을 미표시하고 서류 도착 대기 상태로 변경합니다.
*
* @return 서류 도착 대기 상태로 변경된 Status 인스턴스
*/
fun markDocumentsNotArrived(): Status {
return copy(applicationStatus = ApplicationStatus.WAITING_DOCUMENTS)
}

/**
* 전형을 시작하고 전형 진행 중 상태로 변경합니다.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,30 @@ interface AdminStatusApiDocument {
@PathVariable("receipt-code") receiptCode: Long,
)

/**
* 등기우편으로 제출된 서류의 도착을 수정합니다.
*/
@Operation(
summary = "서류 도착 수정",
description = "서류 접수 완료 상태에서 서류 도착 대기 상태로 변경합니다.",
)
@ApiResponses(
ApiResponse(
responseCode = "204",
description = "서류 도착 수정 성공",
content = arrayOf(Content()),
),
ApiResponse(
responseCode = "404",
description = "상태를 찾을 수 없음 - Status Not Found",
content = arrayOf(Content()),
),
)
fun updateIsNotPrintsArrivedService(
@Parameter(description = "접수번호", required = true)
@PathVariable("receipt-code") receiptCode: Long,
)

/**
* 서류 검토 완료 후 1차 또는 2차 전형을 시작합니다.
*/
Expand Down
Loading