package cn.iocoder.yudao.module.label.service.impl;

import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.label.entity.Label;
import cn.iocoder.yudao.module.label.mapper.LabelMapper;
import cn.iocoder.yudao.module.label.service.LabelService;
import cn.iocoder.yudao.module.label.vo.LabelPageReqVO;
import cn.iocoder.yudao.module.label.vo.LabelRespVO;
import cn.iocoder.yudao.module.label.vo.LabelSaveReqVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

import javax.annotation.Resource;

/**
 * 标签库 Service 实现类
 *
 * @author 后台管理员
 */
@Service
@Validated
public class LabelServiceImpl extends ServiceImpl<LabelMapper, Label> implements LabelService {

    @Resource
    private LabelMapper labelMapper;

    /**
     * 创建标签库
     *
     * @param createReqVO LabelSaveReqVO
     * @return java.lang.String
     * @author PQZ
     * @date 14:19 2024/8/4
     **/
    @Override
    public void saveLabel(LabelSaveReqVO createReqVO) {
        // 插入
        Label label = BeanUtils.toBean(createReqVO, Label.class);
        this.saveOrUpdate(label);
    }


    /**
     * 删除标签
     *
     * @param id 标签id
     * @author PQZ
     * @date 14:22 2024/8/4
     **/
    @Override
    public void deleteLabel(String id) {
        this.removeById(id);
    }

    /**
     * 通过标签id获取标签信息
     *
     * @param id 标签id
     * @return cn.iocoder.yudao.module.label.entity.Label
     * @author PQZ
     * @date 14:23 2024/8/4
     **/
    @Override
    public Label getLabel(String id) {
        return labelMapper.selectById(id);
    }

    /**
     * 分页查询标签库
     *
     * @param pageReqVO LabelPageReqVO
     * @param page      Page
     * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.label.vo.LabelRespVO>
     * @author PQZ
     * @date 14:25 2024/8/4
     **/
    @Override
    public IPage<LabelRespVO> queryListPage(LabelPageReqVO pageReqVO, Page<LabelRespVO> page) {
        return labelMapper.selectListPage(pageReqVO, page);
    }


}