Skip to content

Commit

Permalink
feat: 드디어 백신 인증서고쳤다
Browse files Browse the repository at this point in the history
  • Loading branch information
HyungJu committed Mar 23, 2024
1 parent 6d6f725 commit b1541c1
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,13 @@ class InoculationService(
): List<InoculationDetailResponse> {
val validatedVaccinationType = VaccinationType.valueOf(vaccinationType.uppercase())
val inoculations = (
inoculationRepository.findInoculationsByMemberIdAndVaccinationTypeAndDiseaseName(
memberId,
validatedVaccinationType,
request.name,
)
?: throw BusinessException(GlobalError.GLOBAL_NOT_FOUND)
)
inoculationRepository.findInoculationsByMemberIdAndVaccinationTypeAndDiseaseName(
memberId,
validatedVaccinationType,
request.name,
)
?: throw BusinessException(GlobalError.GLOBAL_NOT_FOUND)
)

return inoculations.map {
InoculationDetailResponse(
Expand All @@ -92,16 +92,25 @@ class InoculationService(
}

fun getCertificates(memberId: UUID): List<InoculationCertificateResponse> {
val inoculations = inoculationRepository.findDistinctLatestInoculationsByMemberId(memberId)
val sortedByDescending = inoculations.sortedByDescending { it.date }
return sortedByDescending.map {
val inoculations1 = inoculationRepository.findInoculationsByMemberId(memberId)
val diseases = inoculations1.map { it.vaccination.diseaseName }.toSet()

val map: MutableMap<String, Inoculation> = mutableMapOf()

inoculations1.forEach {
if (!map.containsKey(it.vaccination.diseaseName)) {
map[it.vaccination.diseaseName] = it
}
}

return map.map {
InoculationCertificateResponse(
memberId.toString(),
it.vaccination.id.toString(),
it.vaccination.diseaseName,
it.vaccination.vaccineName,
it.date,
it.vaccination.certificationIcon,
it.value.vaccination.id.toString(),
it.value.vaccination.diseaseName,
it.value.vaccination.vaccineName,
it.value.date,
it.value.vaccination.certificationIcon,
)
}.toList()
}
Expand All @@ -111,20 +120,23 @@ class InoculationService(
val member =
memberRepository.findMemberByNickname(Nickname(name)) ?: throw BusinessException(MemberError.NOT_FOUND)

val eventVaccination = vaccinationRepository.findById(UUID.fromString("30784537-3331-3646-3734-453738383131"))
.orElseThrow { BusinessException(GlobalError.GLOBAL_NOT_FOUND) }
val eventVaccination =
vaccinationRepository.findById(UUID.fromString("30784537-3331-3646-3734-453738383131"))
.orElseThrow { BusinessException(GlobalError.GLOBAL_NOT_FOUND) }

inoculationRepository.save(Inoculation(
1,
"이벤트",
LocalDate.now(),
"백신아 곰아워!",
"이벤트 백신",
"아프지 말라곰",
"https://vacgom.co.kr",
member,
eventVaccination
))
inoculationRepository.save(
Inoculation(
1,
"이벤트",
LocalDate.now(),
"백신아 곰아워!",
"이벤트 백신",
"아프지 말라곰",
"https://vacgom.co.kr",
member,
eventVaccination,
),
)
notificationService.sendNotification(member.id!!, "이벤트 백신 접종 증명서가 발신되었어요!", "ㅎㅅㅎ")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ import org.springframework.data.jpa.repository.Query
import java.util.*

interface InoculationRepository : JpaRepository<Inoculation, UUID> {
@Query(
"select i " +
"from Inoculation i " +
"where i.member.id = :memberId " +
"order by i.date desc",
)
fun findInoculationsByMemberId(memberId: UUID): List<Inoculation>

@Query(
"select i " +
"from Inoculation i " +
Expand Down Expand Up @@ -41,8 +49,7 @@ interface InoculationRepository : JpaRepository<Inoculation, UUID> {
@Query(
"SELECT i " +
"FROM Inoculation i JOIN i.vaccination v " +
"GROUP BY i.vaccination.id " +
"HAVING i.member.id = :memberId " +
"WHERE i.member.id = :memberId " +
"ORDER BY i.inoculationOrder DESC",
)
fun findDistinctLatestInoculationsByMemberId(memberId: UUID): List<Inoculation>
Expand Down

0 comments on commit b1541c1

Please sign in to comment.