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

import java.util.*;

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.category.vo.IotYfCategoryPageReqVO;
import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.category.IotYfCategoryDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * yf产品分类 Mapper
 *
 * @author 超级管理员
 */
@Mapper
public interface IotYfCategoryMapper extends BaseMapperX<IotYfCategoryDO> {

    default PageResult<IotYfCategoryDO> selectPage(IotYfCategoryPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<IotYfCategoryDO>()
                .likeIfPresent(IotYfCategoryDO::getCategoryName, reqVO.getCategoryName())
                .likeIfPresent(IotYfCategoryDO::getTenantName, reqVO.getTenantName())
                .eqIfPresent(IotYfCategoryDO::getIsSys, reqVO.getIsSys())
                .eqIfPresent(IotYfCategoryDO::getParentId, reqVO.getParentId())
                .eqIfPresent(IotYfCategoryDO::getOrderNum, reqVO.getOrderNum())
                .eqIfPresent(IotYfCategoryDO::getDelFlag, reqVO.getDelFlag())
                .eqIfPresent(IotYfCategoryDO::getCreateBy, reqVO.getCreateBy())
                .betweenIfPresent(IotYfCategoryDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(IotYfCategoryDO::getUpdateBy, reqVO.getUpdateBy())
                .eqIfPresent(IotYfCategoryDO::getRemark, reqVO.getRemark())
                .eqIfPresent(IotYfCategoryDO::getDeptId, reqVO.getDeptId())
                .orderByDesc(IotYfCategoryDO::getCategoryId));
    }


    default List<IotYfCategoryDO> selectList(IotYfCategoryPageReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<IotYfCategoryDO>()
                .likeIfPresent(IotYfCategoryDO::getCategoryName, reqVO.getCategoryName())
                .likeIfPresent(IotYfCategoryDO::getTenantName, reqVO.getTenantName())
                .eqIfPresent(IotYfCategoryDO::getIsSys, reqVO.getIsSys())
                .eqIfPresent(IotYfCategoryDO::getParentId, reqVO.getParentId())
                .eqIfPresent(IotYfCategoryDO::getOrderNum, reqVO.getOrderNum())
                .eqIfPresent(IotYfCategoryDO::getDelFlag, reqVO.getDelFlag())
                .eqIfPresent(IotYfCategoryDO::getCreateBy, reqVO.getCreateBy())
                .betweenIfPresent(IotYfCategoryDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(IotYfCategoryDO::getUpdateBy, reqVO.getUpdateBy())
                .eqIfPresent(IotYfCategoryDO::getRemark, reqVO.getRemark())
                .eqIfPresent(IotYfCategoryDO::getDeptId, reqVO.getDeptId())
                .orderByDesc(IotYfCategoryDO::getCategoryId));
    }
}
