diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/calculate/CreatorAdminCalculateService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/calculate/CreatorAdminCalculateService.kt index e4dedeb..56c1b58 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/calculate/CreatorAdminCalculateService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/calculate/CreatorAdminCalculateService.kt @@ -7,7 +7,9 @@ import kr.co.vividnext.sodalive.admin.calculate.GetCumulativeSalesByContentRespo import kr.co.vividnext.sodalive.can.use.CanUsage import kr.co.vividnext.sodalive.content.order.OrderType import kr.co.vividnext.sodalive.member.Member +import org.springframework.cache.annotation.Cacheable import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Transactional import java.time.LocalDate import java.time.ZoneId import java.time.format.DateTimeFormatter @@ -15,6 +17,11 @@ import kotlin.math.roundToInt @Service class CreatorAdminCalculateService(private val repository: CreatorAdminCalculateQueryRepository) { + @Transactional(readOnly = true) + @Cacheable( + cacheNames = ["default"], + key = "'creatorCalculateLive:' + " + "#member + ':' + #startDateStr + ':' + #endDateStr" + ) fun getCalculateLive(startDateStr: String, endDateStr: String, member: Member): List { val dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd") val startDate = LocalDate.parse(startDateStr, dateTimeFormatter).atTime(0, 0, 0) @@ -77,6 +84,11 @@ class CreatorAdminCalculateService(private val repository: CreatorAdminCalculate .toList() } + @Transactional(readOnly = true) + @Cacheable( + cacheNames = ["cache_ttl_3_hours"], + key = "'creatorCalculateContentList:' + " + "#memberId + ':' + #startDateStr + ':' + #endDateStr" + ) fun getCalculateContentList( startDateStr: String, endDateStr: String, @@ -141,6 +153,11 @@ class CreatorAdminCalculateService(private val repository: CreatorAdminCalculate return GetCalculateContentListResponse(totalCount, items) } + @Transactional(readOnly = true) + @Cacheable( + cacheNames = ["cache_ttl_3_hours"], + key = "'creatorCumulativeSalesByContent:' + " + "#memberId + ':' + #offset + ':' + #limit" + ) fun getCumulativeSalesByContent(memberId: Long, offset: Long, limit: Long): GetCumulativeSalesByContentResponse { val totalCount = repository.getCumulativeSalesByContentTotalCount(memberId) val items = repository