package com.iailab.module.system.dal.mysql.dict; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.mybatis.core.mapper.BaseMapperX; import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; import com.iailab.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; import com.iailab.module.system.dal.dataobject.dict.DictDataDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.ibatis.annotations.Mapper; import java.util.Arrays; import java.util.Collection; import java.util.List; @Mapper public interface DictDataMapper extends BaseMapperX { default DictDataDO selectByDictTypeAndValue(String dictType, String value) { return selectOne(DictDataDO::getDictType, dictType, DictDataDO::getValue, value); } default DictDataDO selectByDictTypeAndLabel(String dictType, String label) { return selectOne(DictDataDO::getDictType, dictType, DictDataDO::getLabel, label); } default List selectByDictTypeAndValues(String dictType, Collection values) { return selectList(new LambdaQueryWrapper().eq(DictDataDO::getDictType, dictType) .in(DictDataDO::getValue, values)); } default long selectCountByDictType(String dictType) { return selectCount(DictDataDO::getDictType, dictType); } default PageResult selectPage(DictDataPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(DictDataDO::getLabel, reqVO.getLabel()) .eqIfPresent(DictDataDO::getDictType, reqVO.getDictType()) .eqIfPresent(DictDataDO::getStatus, reqVO.getStatus()) .orderByDesc(Arrays.asList(DictDataDO::getDictType, DictDataDO::getSort))); } default List selectListByStatusAndDictType(Integer status, String dictType) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(DictDataDO::getStatus, status) .eqIfPresent(DictDataDO::getDictType, dictType)); } }