package cn.iocoder.yudao.module.pms.dal.mysql.yanfan.var;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.pms.controller.admin.yanfan.var.vo.IotYfVarTempPageReqVO;
import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.var.IotYfVarTempDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * yf设备采集变量模板对象 Mapper
 *
 * @author 超级管理员
 */
@Mapper
public interface IotYfVarTempMapper extends BaseMapperX<IotYfVarTempDO> {

    default PageResult<IotYfVarTempDO> selectPage(IotYfVarTempPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<IotYfVarTempDO>()
                .likeIfPresent(IotYfVarTempDO::getTemplateName, reqVO.getTemplateName())
                .eqIfPresent(IotYfVarTempDO::getType, reqVO.getType())
                .eqIfPresent(IotYfVarTempDO::getPollingMethod, reqVO.getPollingMethod())
                .eqIfPresent(IotYfVarTempDO::getUserId, reqVO.getUserId())
                .eqIfPresent(IotYfVarTempDO::getSlaveTotal, reqVO.getSlaveTotal())
                .eqIfPresent(IotYfVarTempDO::getPointTotal, reqVO.getPointTotal())
                .eqIfPresent(IotYfVarTempDO::getShare, reqVO.getShare())
                .betweenIfPresent(IotYfVarTempDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(IotYfVarTempDO::getDeptId, reqVO.getDeptId())
                .orderByDesc(IotYfVarTempDO::getTemplateId));
    }

    IotYfVarTempDO selectVarTempByProductId(Long productId);
}
