Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
ae5ebec
chore ( #64 ) : UpdateApplicationArrivalUseCase 미사용 로직 주석처리
coehgns Oct 10, 2025
0104c5d
refactor ( #64 ) : status 모델과 중복되는 필드 제거
coehgns Oct 10, 2025
4ee27e8
refactor ( #64 ) : ApplicationMapper status 모델과 중복되는 필드 제거
coehgns Oct 10, 2025
8db92ba
chore ( #64 ) : ApplicationJpaRepository 미사용 로직 제거
coehgns Oct 10, 2025
e12ab94
chore ( #64 ) : ApplicationContract 미사용 로직 제거
coehgns Oct 10, 2025
f28849d
chore ( #64 ) : ApplicationPersistenceAdapter 미사용 로직 제거
coehgns Oct 10, 2025
c8fe341
chore ( #64 ) : ApplicationPersistenceService status와 중복 필드 제거
coehgns Oct 10, 2025
d22a4b4
chore ( #64 ) : ApplicationQueryApiDocument 미사용 로직 제거
coehgns Oct 10, 2025
f1a808f
chore ( #64 ) : ApplicationQueryController 미사용 로직 제거
coehgns Oct 10, 2025
04228e1
refactor ( #64 ) : ApplicationQueryUseCase status 서비스로부터 가져오도록 수정
coehgns Oct 10, 2025
bd58ed9
chore ( #64 ) : ApplicationSubmissionUseCase 미사용 로직 주석 처리
coehgns Oct 10, 2025
ce82b9d
refactor ( #64 ) : CancelApplicationUseCase kafka를 통해 원서 제출 취소 시 stat…
coehgns Oct 10, 2025
5c0a25b
refactor ( #64 ) : CompleteApplicationUseCase kafka를 통해 status에서 원서 상…
coehgns Oct 10, 2025
afcd577
refactor ( #64 ) : GetFinalApplicationPdfUseCase 외부 status 사용하도록 수정
coehgns Oct 10, 2025
220cb20
chore ( #64 ) : status 중복 필드 제거
coehgns Oct 10, 2025
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 @@ -22,7 +22,6 @@ data class Application(
val birthDate: String?,
val applicationType: ApplicationType,
val educationalStatus: EducationalStatus,
val status: ApplicationStatus,
val streetAddress: String?,
val submittedAt: LocalDateTime,
val reviewedAt: LocalDateTime?,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,5 @@ interface ApplicationContract : QueryAllFirstRoundPassedApplicationContract {

fun getApplicationByReceiptCode(receiptCode: Long): Application?

fun updateApplicationStatus(receiptCode: Long, status: hs.kr.entrydsm.domain.status.values.ApplicationStatus)

fun delete(application: Application)
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,22 +75,6 @@ class ApplicationPersistenceAdapter(
.orElse(null)
}

/**
* 원서 상태를 업데이트합니다.
*
* @param receiptCode 접수번호
* @param status 변경할 상태
*/
override fun updateApplicationStatus(
receiptCode: Long,
status: hs.kr.entrydsm.domain.status.values.ApplicationStatus,
) {
applicationJpaRepository.findByReceiptCode(receiptCode).ifPresent { applicationEntity ->
applicationEntity.status = status
applicationJpaRepository.save(applicationEntity)
}
}

override fun delete(application: Application) {
applicationJpaRepository.delete(applicationMapper.toEntity(application))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import java.util.UUID
indexes = [
Index(name = "idx_user_id", columnList = "user_id"),
Index(name = "idx_receipt_code", columnList = "receipt_code"),
Index(name = "idx_status", columnList = "status"),
Index(name = "idx_application_type", columnList = "application_type"),
Index(name = "idx_submitted_at", columnList = "submitted_at"),
],
Expand Down Expand Up @@ -57,13 +56,8 @@ class ApplicationJpaEntity(
@Enumerated(EnumType.STRING)
@Column(name = "educational_status", nullable = false, length = 50)
val educationalStatus: EducationalStatus,
@Enumerated(EnumType.STRING)
@Column(name = "status", nullable = false, length = 20)
var status: ApplicationStatus,
@Column(name = "is_daejeon", nullable = false)
val isDaejeon: Boolean,
@Column(name = "is_arrived", nullable = false)
var isArrived: Boolean = false,
// ===== 보호자 및 주소 정보 =====
@Column(name = "parent_name", length = 100)
val parentName: String?,
Expand Down Expand Up @@ -125,9 +119,7 @@ class ApplicationJpaEntity(
birthDate = null,
applicationType = ApplicationType.COMMON,
educationalStatus = EducationalStatus.PROSPECTIVE_GRADUATE,
status = ApplicationStatus.SUBMITTED,
isDaejeon = false,
isArrived = false,
parentName = null,
parentTel = null,
parentRelation = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,7 @@ class ApplicationMapper(
birthDate = model.birthDate,
applicationType = model.applicationType,
educationalStatus = model.educationalStatus,
status = model.status,
isDaejeon = model.isDaejeon ?: false,
isArrived = false,
parentName = model.parentName,
parentTel = model.parentTel,
parentRelation = model.parentRelation,
Expand Down Expand Up @@ -134,7 +132,6 @@ class ApplicationMapper(
birthDate = entity.birthDate,
applicationType = entity.applicationType,
educationalStatus = entity.educationalStatus,
status = entity.status,
streetAddress = null,
submittedAt = entity.submittedAt,
reviewedAt = entity.reviewedAt,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,6 @@ interface ApplicationJpaRepository : JpaRepository<ApplicationJpaEntity, UUID> {
isDaejeon: Boolean,
): List<ApplicationJpaEntity>

/**
* 상태별 원서 목록 조회
*/
fun findAllByStatus(status: ApplicationStatus): List<ApplicationJpaEntity>

/**
* 수험번호로 원서 조회
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import java.util.UUID
class ApplicationQueryController(
private val applicationQueryUseCase: ApplicationQueryUseCase,
private val applicationPdfGenerator: ApplicationPdfGenerator,
private val updateApplicationArrivalUseCase: UpdateApplicationArrivalUseCase,
private val getPreviewApplicationPdfUseCase: GetPreviewApplicationPdfUseCase,
) : ApplicationQueryApiDocument {
@GetMapping("/applications/{applicationId}")
Expand Down Expand Up @@ -91,29 +90,30 @@ class ApplicationQueryController(
.body(pdfBytes)
}

@PatchMapping("/applications/{applicationId}/arrival")
override fun updateArrivalStatus(
@PathVariable applicationId: String,
@RequestParam isArrived: Boolean,
): ResponseEntity<UpdateApplicationArrivalResponse> {
if (applicationId.isBlank()) {
throw ApplicationValidationException("원서 ID가 필요합니다")
}

val uuid =
try {
UUID.fromString(applicationId)
} catch (e: IllegalArgumentException) {
throw ApplicationValidationException("올바르지 않은 원서 ID 형식입니다")
}

updateApplicationArrivalUseCase.updateArrivalStatus(uuid, isArrived)

return ResponseEntity.ok(
UpdateApplicationArrivalResponse(
success = true,
message = "학교 도착 여부가 업데이트되었습니다.",
),
)
}
// 이거 status에서 해줌
// @PatchMapping("/applications/{applicationId}/arrival")
// override fun updateArrivalStatus(
// @PathVariable applicationId: String,
// @RequestParam isArrived: Boolean,
// ): ResponseEntity<UpdateApplicationArrivalResponse> {
// if (applicationId.isBlank()) {
// throw ApplicationValidationException("원서 ID가 필요합니다")
// }
//
// val uuid =
// try {
// UUID.fromString(applicationId)
// } catch (e: IllegalArgumentException) {
// throw ApplicationValidationException("올바르지 않은 원서 ID 형식입니다")
// }
//
// updateApplicationArrivalUseCase.updateArrivalStatus(uuid, isArrived)
//
// return ResponseEntity.ok(
// UpdateApplicationArrivalResponse(
// success = true,
// message = "학교 도착 여부가 업데이트되었습니다.",
// ),
// )
// }
}
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,6 @@ class ApplicationPersistenceService(
birthDate = extractStringValue(applicationData, "birthDate"),
applicationType = applicationType,
educationalStatus = educationalStatus,
status = ApplicationStatus.SUBMITTED,
isDaejeon = extractBooleanValue(applicationData, "isDaejeon") ?: false,
parentName = extractStringValue(applicationData, "parentName"),
parentTel = extractStringValue(applicationData, "parentTel"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ class ApplicationQueryUseCase(
applicationRepository.findById(uuid)
.orElseThrow { ApplicationNotFoundException("원서를 찾을 수 없습니다: $applicationId") }

// val status = applicationQueryStatusContract.queryStatusByReceiptCode(application.receiptCode)
// ?: throw StatusExceptions.StatusNotFoundException()
val status = applicationQueryStatusContract.queryStatusByReceiptCode(application.receiptCode)
?: throw StatusExceptions.StatusNotFoundException()

val photoPath = photoJpaRepository.findByUserId(application.userId)?.photo

Expand All @@ -65,7 +65,7 @@ class ApplicationQueryUseCase(
birthDate = application.birthDate,
applicationType = application.applicationType.name,
educationalStatus = application.educationalStatus.name,
status = application.status.name,
status = status.applicationStatus.name,
submittedAt = application.submittedAt,
reviewedAt = application.reviewedAt,
createdAt = application.createdAt,
Expand Down Expand Up @@ -158,12 +158,11 @@ class ApplicationQueryUseCase(
applicantName = app.applicantName,
applicationType = app.applicationType.name,
educationalStatus = app.educationalStatus.name,
status = app.status.toString(),
status = getApplicationStatus(app),
submittedAt = app.submittedAt,
isDaejeon = app.isDaejeon,
isSubmitted = true,
isArrived = false // 임시 하드 코딩
// isArrived = isArrivedDocuments(app),
isArrived = isArrivedDocuments(app),
)
},
total = totalElements,
Expand All @@ -174,37 +173,6 @@ class ApplicationQueryUseCase(
)
}

fun getUserApplications(userId: String): ApplicationListResponse {
val uuid = UUID.fromString(userId)
val applications = applicationRepository.findAllByUserId(uuid)

return ApplicationListResponse(
success = true,
data =
ApplicationListResponse.ApplicationListData(
applications =
applications.map { app ->
ApplicationListResponse.ApplicationSummary(
applicationId = app.applicationId.toString(),
receiptCode = app.receiptCode,
applicantName = app.applicantName,
applicationType = app.applicationType.name,
educationalStatus = app.educationalStatus.name,
status = app.status.toString(),
submittedAt = app.submittedAt,
isDaejeon = app.isDaejeon,
isSubmitted = true,
isArrived = app.isArrived,
)
},
total = applications.size,
page = 0,
size = applications.size,
totalPages = 1,
),
)
}

fun getApplicationScores(applicationId: String): ApplicationScoresResponse {
val uuid = UUID.fromString(applicationId)
val application =
Expand Down Expand Up @@ -289,7 +257,6 @@ class ApplicationQueryUseCase(
birthDate = entity.birthDate,
applicationType = entity.applicationType,
educationalStatus = entity.educationalStatus,
status = entity.status,
streetAddress = scores["streetAddress"] as? String,
submittedAt = entity.submittedAt ?: entity.createdAt,
reviewedAt = entity.reviewedAt,
Expand Down Expand Up @@ -370,4 +337,11 @@ class ApplicationQueryUseCase(
else -> false
}
}

private fun getApplicationStatus(application: ApplicationJpaEntity): String {
val status = applicationQueryStatusContract.queryStatusByReceiptCode(application.receiptCode)
?: throw StatusExceptions.StatusNotFoundException()

return status.applicationStatus.name
}
}
Loading
Loading