TypeServiceImpl.kt
package io.github.lishangbu.avalon.dataset.service.impl
import io.github.lishangbu.avalon.dataset.entity.dto.SaveTypeInput
import io.github.lishangbu.avalon.dataset.entity.dto.TypeSpecification
import io.github.lishangbu.avalon.dataset.entity.dto.TypeView
import io.github.lishangbu.avalon.dataset.entity.dto.UpdateTypeInput
import io.github.lishangbu.avalon.dataset.repository.TypeRepository
import io.github.lishangbu.avalon.dataset.service.TypeService
import org.babyfish.jimmer.sql.ast.mutation.SaveMode
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
/** 属性服务实现*/
@Service
class TypeServiceImpl(
/** 属性仓储*/
private val typeRepository: TypeRepository,
) : TypeService {
/** 保存属性*/
@Transactional(rollbackFor = [Exception::class])
override fun save(command: SaveTypeInput): TypeView = TypeView(typeRepository.save(command.toEntity(), SaveMode.INSERT_ONLY))
/** 更新属性*/
@Transactional(rollbackFor = [Exception::class])
override fun update(command: UpdateTypeInput): TypeView = TypeView(typeRepository.save(command.toEntity(), SaveMode.UPDATE_ONLY))
/** 按 ID 删除属性*/
@Transactional(rollbackFor = [Exception::class])
override fun removeById(id: Long) {
typeRepository.deleteById(id)
}
/** 按条件查询属性列表*/
override fun listByCondition(specification: TypeSpecification): List<TypeView> = typeRepository.listViews(specification)
}