package cn.iocoder.yudao.module.configure.service.tracelinkitem;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.configure.controller.admin.tracelinkitem.vo.TraceLinkItemPageReqVO;
import cn.iocoder.yudao.module.configure.dal.dataobject.tracelinkitem.TraceLinkItemDO;
import cn.iocoder.yudao.module.configure.dal.mysql.tracelinkitem.TraceLinkItemMapper;
import cn.iocoder.yudao.module.configure.enums.ErrorCodeConstants;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

import javax.annotation.Resource;

import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;

/**
 * 溯源模板环节item Service 实现类
 *
 * @author 芋道源码
 */
@Service
@Validated
public class TraceLinkItemServiceImpl implements TraceLinkItemService {

    @Resource
    private TraceLinkItemMapper traceLinkItemMapper;

    @Override
    public void deleteTraceLinkItem(Long id) {
        // 校验存在
        validateTraceLinkItemExists(id);
        // 删除
        traceLinkItemMapper.deleteById(id);
    }

    private void validateTraceLinkItemExists(Long id) {
        if (traceLinkItemMapper.selectById(id) == null) {
            throw exception(ErrorCodeConstants.TRACE_LINK_ITEM_NOT_EXISTS);
        }
    }

    @Override
    public TraceLinkItemDO getTraceLinkItem(Long id) {
        return traceLinkItemMapper.selectById(id);
    }

    @Override
    public PageResult<TraceLinkItemDO> getTraceLinkItemPage(TraceLinkItemPageReqVO pageReqVO) {
        return traceLinkItemMapper.selectPage(pageReqVO);
    }

}
