오디션 투표 - 횟수 계산 방식 수정
- 오디션 지원자별 하루 10개 -> 전체 투표 횟수 하루 10개
This commit is contained in:
parent
64d9f3e362
commit
1ddd40948e
|
@ -9,9 +9,8 @@ import java.time.LocalDateTime
|
||||||
interface AuditionVoteRepository : JpaRepository<AuditionVote, Long>, AuditionVoteQueryRepository
|
interface AuditionVoteRepository : JpaRepository<AuditionVote, Long>, AuditionVoteQueryRepository
|
||||||
|
|
||||||
interface AuditionVoteQueryRepository {
|
interface AuditionVoteQueryRepository {
|
||||||
fun countByMemberIdAndApplicantIdAndVoteDateRange(
|
fun countByMemberIdAndVoteDateRange(
|
||||||
memberId: Long,
|
memberId: Long,
|
||||||
applicantId: Long,
|
|
||||||
startDate: LocalDateTime,
|
startDate: LocalDateTime,
|
||||||
endDate: LocalDateTime
|
endDate: LocalDateTime
|
||||||
): Int
|
): Int
|
||||||
|
@ -20,9 +19,8 @@ interface AuditionVoteQueryRepository {
|
||||||
class AuditionVoteQueryRepositoryImpl(
|
class AuditionVoteQueryRepositoryImpl(
|
||||||
private val queryFactory: JPAQueryFactory
|
private val queryFactory: JPAQueryFactory
|
||||||
) : AuditionVoteQueryRepository {
|
) : AuditionVoteQueryRepository {
|
||||||
override fun countByMemberIdAndApplicantIdAndVoteDateRange(
|
override fun countByMemberIdAndVoteDateRange(
|
||||||
memberId: Long,
|
memberId: Long,
|
||||||
applicantId: Long,
|
|
||||||
startDate: LocalDateTime,
|
startDate: LocalDateTime,
|
||||||
endDate: LocalDateTime
|
endDate: LocalDateTime
|
||||||
): Int {
|
): Int {
|
||||||
|
@ -31,7 +29,6 @@ class AuditionVoteQueryRepositoryImpl(
|
||||||
.from(auditionVote)
|
.from(auditionVote)
|
||||||
.where(
|
.where(
|
||||||
auditionVote.member.id.eq(memberId)
|
auditionVote.member.id.eq(memberId)
|
||||||
.and(auditionVote.applicant.id.eq(applicantId))
|
|
||||||
.and(auditionVote.createdAt.between(startDate, endDate))
|
.and(auditionVote.createdAt.between(startDate, endDate))
|
||||||
)
|
)
|
||||||
.fetch()
|
.fetch()
|
||||||
|
|
|
@ -36,15 +36,14 @@ class AuditionVoteService(
|
||||||
val startDate = startOfDayClient.withZoneSameInstant(ZoneOffset.UTC).toLocalDateTime()
|
val startDate = startOfDayClient.withZoneSameInstant(ZoneOffset.UTC).toLocalDateTime()
|
||||||
val endDate = endOfDayClient.withZoneSameInstant(ZoneOffset.UTC).toLocalDateTime()
|
val endDate = endOfDayClient.withZoneSameInstant(ZoneOffset.UTC).toLocalDateTime()
|
||||||
|
|
||||||
val voteCount = repository.countByMemberIdAndApplicantIdAndVoteDateRange(
|
val voteCount = repository.countByMemberIdAndVoteDateRange(
|
||||||
memberId = member.id!!,
|
memberId = member.id!!,
|
||||||
applicantId = applicantId,
|
|
||||||
startDate = startDate,
|
startDate = startDate,
|
||||||
endDate = endDate
|
endDate = endDate
|
||||||
)
|
)
|
||||||
|
|
||||||
if (voteCount > 10) {
|
if (voteCount > 10) {
|
||||||
throw SodaException("오늘 해당 지원자에게 할 수 있는 최대 투표수를 초과하였습니다.\n내일 다시 투표해 주세요.")
|
throw SodaException("오늘 응원은 여기까지!\n하루 최대 10회까지 응원이 가능합니다.\n내일 다시 이용해주세요.")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (voteCount > 0) {
|
if (voteCount > 0) {
|
||||||
|
|
Loading…
Reference in New Issue