Skip to content

Commit

Permalink
feat: (#788) student name 필터링 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
ilyoil2 committed Oct 15, 2024
1 parent b77e030 commit 7f283c0
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ interface GetOutingService {

fun getOutingApplicationById(outingApplicationId: UUID): OutingApplication

fun getAllOutingApplicationVOsBetweenStartAndEnd(start: LocalDate, end: LocalDate): List<OutingApplicationVO>
fun getAllOutingApplicationVOsBetweenStartAndEnd(name: String?, start: LocalDate, end: LocalDate): List<OutingApplicationVO>

fun getCurrentOutingApplication(studentId: UUID): CurrentOutingApplicationVO

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class GetOutingServiceImpl(
queryOutingApplicationPort.queryOutingApplicationById(outingApplicationId)
?: throw OutingApplicationNotFoundException

override fun getAllOutingApplicationVOsBetweenStartAndEnd(start: LocalDate, end: LocalDate) =
override fun getAllOutingApplicationVOsBetweenStartAndEnd(name: String?, start: LocalDate, end: LocalDate) =
queryOutingApplicationPort.queryAllOutingApplicationVOsBetweenStartAndEnd(start, end)

override fun getCurrentOutingApplication(studentId: UUID): CurrentOutingApplicationVO {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ interface QueryOutingApplicationPort {

fun queryOutingApplicationById(outingApplicationId: UUID): OutingApplication?

fun queryAllOutingApplicationVOsBetweenStartAndEnd(start: LocalDate, end: LocalDate): List<OutingApplicationVO>
fun queryAllOutingApplicationVOsBetweenStartAndEnd(name: String?, start: LocalDate, end: LocalDate): List<OutingApplicationVO>

fun queryCurrentOutingApplicationVO(studentId: UUID): CurrentOutingApplicationVO?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class ExportAllOutingApplicationsUseCase(

fun execute(start: LocalDate, end: LocalDate): ExportAllOutingApplicationsResponse {

val outingApplicationExcelVOs = outingService.getAllOutingApplicationVOsBetweenStartAndEnd(start, end)
val outingApplicationExcelVOs = outingService.getAllOutingApplicationVOsBetweenStartAndEnd(null, start, end)

val file = fileService.writeOutingApplicationExcelFile(outingApplicationExcelVOs)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class GetOutingApplicationHistoriesUseCase(

fun execute(studentName: String?, date: LocalDate): OutingApplicationHistoriesResponse {

val outingApplications = outingService.getAllOutingApplicationVOsBetweenStartAndEnd(date, date)
val outingApplications = outingService.getAllOutingApplicationVOsBetweenStartAndEnd(studentName, date, date)

val outingApplicationInfoSet = outingApplications.flatMap { outingApplication ->
val outingApplicationInfoList = mutableListOf(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package team.aliens.dms.persistence.outing

import com.querydsl.core.group.GroupBy.groupBy
import com.querydsl.core.group.GroupBy.list
import com.querydsl.core.types.dsl.BooleanExpression
import com.querydsl.jpa.JPAExpressions.selectOne
import com.querydsl.jpa.impl.JPAQueryFactory
import org.springframework.data.repository.findByIdOrNull
Expand Down Expand Up @@ -40,6 +41,7 @@ class OutingApplicationPersistenceAdapter(
)

override fun queryAllOutingApplicationVOsBetweenStartAndEnd(
name: String?,
start: LocalDate,
end: LocalDate
): List<OutingApplicationVO> {
Expand All @@ -52,7 +54,10 @@ class OutingApplicationPersistenceAdapter(
.leftJoin(outingCompanionJpaEntity)
.on(outingApplicationJpaEntity.id.eq(outingCompanionJpaEntity.outingApplication.id))
.leftJoin(outingCompanionJpaEntity.student, outingCompanionStudentJpaEntity)
.where(outingApplicationJpaEntity.outingDate.between(start, end))
.where(
containsName(name),
outingApplicationJpaEntity.outingDate.between(start, end)
)
.orderBy(outingApplicationJpaEntity.outingDate.asc())
.transform(
groupBy(outingApplicationJpaEntity.id)
Expand Down Expand Up @@ -157,4 +162,8 @@ class OutingApplicationPersistenceAdapter(

return result != null
}

private fun containsName(name: String?): BooleanExpression? {
return name?.let { outingApplicationJpaEntity.student.name.contains(it) }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,9 @@ class OutingWebAdapter(
fun updateOutingStatus(
@PathVariable("outing-application-id") @NotNull outingApplicationId: UUID,
@RequestParam("is_approved", required = false) isApproved: Boolean,
@RequestParam("is_comeback", required = false) isComeback: Boolean,
@RequestParam("is_returned", required = false) isReturned: Boolean,
) {
updateOutingStatusUseCase.execute(outingApplicationId, isApproved, isComeback)
updateOutingStatusUseCase.execute(outingApplicationId, isApproved, isReturned)
}

@GetMapping("/files")
Expand Down

0 comments on commit 7f283c0

Please sign in to comment.