package cn.iocoder.yudao.module.pms.service.yanfan.var.slave;

import cn.iocoder.yudao.framework.common.exception.ErrorCode;
import cn.iocoder.yudao.module.pms.controller.admin.yanfan.var.slave.vo.IotYfVarTempSalvePageReqVO;
import cn.iocoder.yudao.module.pms.controller.admin.yanfan.var.slave.vo.IotYfVarTempSalveSaveReqVO;
import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.var.slave.IotYfVarTempSalveDO;
import cn.iocoder.yudao.module.pms.dal.mysql.yanfan.var.slave.IotYfVarTempSalveMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;


import javax.annotation.Resource;

import java.util.Collections;
import java.util.List;

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

/**
 * yf变量模板设备从机对象 Service 实现类
 *
 * @author 超级管理员
 */
@Service
@Validated
public class IotVarTempSalveServiceImpl implements IotVarTempSalveService {

    @Resource
    private IotYfVarTempSalveMapper iotYfVarTempSalveMapper;

    @Override
    public List<IotYfVarTempSalveDO> selectVarTempSalveList(IotYfVarTempSalveDO varTempSalve) {
        return iotYfVarTempSalveMapper.selectVarTempSalveList(varTempSalve);
    }

    @Override
    public Long createIotVarTempSalve(IotYfVarTempSalveSaveReqVO createReqVO) {
        // 插入
        IotYfVarTempSalveDO iotVarTempSalve = BeanUtils.toBean(createReqVO, IotYfVarTempSalveDO.class);
        iotYfVarTempSalveMapper.insert(iotVarTempSalve);
        // 返回
        return iotVarTempSalve.getId();
    }

    @Override
    public void updateIotVarTempSalve(IotYfVarTempSalveSaveReqVO updateReqVO) {
        // 校验存在
        validateIotVarTempSalveExists(updateReqVO.getId());
        // 更新
        IotYfVarTempSalveDO updateObj = BeanUtils.toBean(updateReqVO, IotYfVarTempSalveDO.class);
        iotYfVarTempSalveMapper.updateById(updateObj);
    }

    @Override
    public void deleteIotVarTempSalve(Long id) {
        // 校验存在
        validateIotVarTempSalveExists(id);
        // 删除
        iotYfVarTempSalveMapper.deleteById(id);
    }

    private void validateIotVarTempSalveExists(Long id) {
        if (iotYfVarTempSalveMapper.selectById(id) == null) {
            throw exception(new ErrorCode(333,"不存在变量模板设备从机对象"));
        }
    }

    @Override
    public IotYfVarTempSalveDO getIotVarTempSalve(Long id) {
        return iotYfVarTempSalveMapper.selectById(id);
    }

    @Override
    public PageResult<IotYfVarTempSalveDO> getIotVarTempSalvePage(IotYfVarTempSalvePageReqVO pageReqVO) {
        return iotYfVarTempSalveMapper.selectPage(pageReqVO);
    }

}
