package com.zt.plat.module.base.dal.dao.materialhasclasses;

import java.util.*;

import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import com.zt.plat.module.base.dal.dataobject.materialhasclasses.MaterialHasClassesDO;
import org.apache.ibatis.annotations.Mapper;
import com.zt.plat.module.base.controller.admin.materialhasclasses.vo.*;

/**
 * 物料持有分类 Mapper
 *
 * @author 后台管理-1
 */
@Mapper
public interface MaterialHasClassesMapper extends BaseMapperX<MaterialHasClassesDO> {

    default PageResult<MaterialHasClassesDO> selectPage(MaterialHasClassesPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<MaterialHasClassesDO>()
                .eqIfPresent(MaterialHasClassesDO::getInfomationId, reqVO.getInfomationId())
                .betweenIfPresent(MaterialHasClassesDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(MaterialHasClassesDO::getClassesId, reqVO.getClassesId())
                .orderByDesc(MaterialHasClassesDO::getId));
    }

    default List<MaterialHasClassesDO> selectByInfoIds(Collection<Long> infoIds) {
        if (infoIds == null || infoIds.isEmpty()) {
            return Collections.emptyList();
        }
        return selectList(new LambdaQueryWrapperX<MaterialHasClassesDO>()
                .in(MaterialHasClassesDO::getInfomationId, infoIds));
    }

}