30 lines
1.1 KiB
Kotlin
30 lines
1.1 KiB
Kotlin
package kr.co.vividnext.sodalive.point
|
|
|
|
import kr.co.vividnext.sodalive.member.Member
|
|
import org.springframework.stereotype.Service
|
|
import java.time.LocalDateTime
|
|
|
|
@Service
|
|
class PointService(
|
|
private val pointGrantLogRepository: PointGrantLogRepository,
|
|
private val memberPointRepository: MemberPointRepository,
|
|
private val usePointRepository: UsePointRepository
|
|
) {
|
|
fun getPointStatus(member: Member): GetPointStatusResponse {
|
|
return GetPointStatusResponse(
|
|
point = memberPointRepository.findByMemberIdAndExpiresAtAfterOrderByExpiresAtAsc(
|
|
memberId = member.id!!,
|
|
expiresAt = LocalDateTime.now()
|
|
).sumOf { it.point }
|
|
)
|
|
}
|
|
|
|
fun getPointUseStatus(member: Member, timezone: String): List<GetPointUseStatusResponse> {
|
|
return usePointRepository.getPointUseStatusByMemberId(member.id!!, timezone)
|
|
}
|
|
|
|
fun getPointRewardStatus(member: Member, timezone: String): List<GetPointRewardStatusResponse> {
|
|
return pointGrantLogRepository.getPointRewardStatusByMemberId(member.id!!, timezone)
|
|
}
|
|
}
|