LocalStatReader.kt

package io.github.lishangbu.avalon.dataset.service.api

import io.github.lishangbu.avalon.dataset.api.service.StatReader
import io.github.lishangbu.avalon.dataset.repository.StatRepository
import org.springframework.stereotype.Service

@Service
class LocalStatReader(
    private val statRepository: StatRepository,
) : StatReader {
    override fun findStatIdsByInternalNames(internalNames: Set<String>): Map<String, Long> =
        statRepository
            .findAll()
            .mapNotNull { stat ->
                val statInternalName = stat.internalName ?: return@mapNotNull null
                if (statInternalName !in internalNames) {
                    return@mapNotNull null
                }
                statInternalName to stat.id
            }.toMap(LinkedHashMap())
}