Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package noweekend.core.domain.recommend

import com.fasterxml.jackson.databind.ObjectMapper
import noweekend.client.mcp.recommend.RecommendClient
import noweekend.client.mcp.recommend.model.SandwichRequest
import noweekend.client.mcp.recommend.model.SandwichResponse
Expand Down Expand Up @@ -37,7 +36,6 @@ class RecommendServiceImpl(
private val weatherWriter: WeatherWriter,
private val tagRecommendCacheReader: TagRecommendCacheReader,
private val tagRecommendCacheWriter: TagRecommendCacheWriter,
private val objectMapper: ObjectMapper,
) : RecommendService {

override fun getWeatherRecommend(userId: String): WeatherResponse {
Expand Down Expand Up @@ -104,7 +102,7 @@ class RecommendServiceImpl(
override fun getTagRecommend(userId: String): TagRecommendations {
val userTags = tagReader.getUserTags(userId)
userTagValidation(userTags)
val cached = getTagRecommendCaching(RecommendType.MIXED, userTags)
val cached = getTagRecommendCaching(RecommendType.MIXED, userId)

if (cached != null) {
return cached.recommend
Expand All @@ -131,12 +129,10 @@ class RecommendServiceImpl(
}
}

private fun getTagRecommendCaching(tagRecommendType: RecommendType, userTags: UserTags): TagRecommendCache? {
val tagsJson = objectMapper.writeValueAsString(userTags)
private fun getTagRecommendCaching(tagRecommendType: RecommendType, userId: String): TagRecommendCache? {
return tagRecommendCacheReader.findTodayCache(
recommendType = tagRecommendType,
tagsJson = tagsJson,
searchDate = LocalDate.now(),
userId = userId,
)
}

Expand Down Expand Up @@ -171,7 +167,7 @@ class RecommendServiceImpl(
val userTags = tagReader.getUserTags(userId)
userTagValidation(userTags)

val cached = getTagRecommendCaching(RecommendType.ONLY_NEW, userTags)
val cached = getTagRecommendCaching(RecommendType.ONLY_NEW, userId)
if (cached != null) {
return cached.recommend
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@ class TagRecommendCacheReader(
) {
fun findTodayCache(
recommendType: RecommendType,
tagsJson: String,
searchDate: LocalDate = LocalDate.now(),
userId: String,
): TagRecommendCache? {
return repository.findTodayCache(recommendType, tagsJson, searchDate)
return repository.findTodayCache(recommendType, LocalDate.now(), userId)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ package noweekend.core.domain.tag
import java.time.LocalDate

interface TagRecommendCacheRepository {
fun findTodayCache(recommendType: RecommendType, tagsJson: String, searchDate: LocalDate): TagRecommendCache?
fun findTodayCache(recommendType: RecommendType, searchDate: LocalDate, userId: String): TagRecommendCache?
fun register(tagRecommendCache: TagRecommendCache)
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,15 @@ class TagRecommendCacheCoreRepository(
) : TagRecommendCacheRepository {

private val log = LoggerFactory.getLogger(this::class.java)

override fun findTodayCache(
recommendType: RecommendType,
tagsJson: String,
searchDate: LocalDate,
userId: String,
): TagRecommendCache? {
return jpaRepository.findByRecommendTypeAndSearchDateAndTagsJson(
return jpaRepository.findByUserIdAndSearchDateAndRecommendType(
recommendType = recommendType,
searchDate = searchDate,
tagsJson = tagsJson,
userId = userId,
)?.let { converter.entityToDomain(it) }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import org.springframework.data.jpa.repository.JpaRepository
import java.time.LocalDate

interface TagRecommendCacheJpaRepository : JpaRepository<TagRecommendCacheEntity, String> {
fun findByRecommendTypeAndSearchDateAndTagsJson(
recommendType: RecommendType,
fun findByUserIdAndSearchDateAndRecommendType(
userId: String,
searchDate: LocalDate,
tagsJson: String,
recommendType: RecommendType,
): TagRecommendCacheEntity?
}