package cn.iocoder.yudao.module.research.dal.mysql.application; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.research.controller.admin.application.vo.ResearchApplicationPageReqVO; import cn.iocoder.yudao.module.research.dal.dataobject.application.ResearchApplicationDO; import org.apache.ibatis.annotations.Mapper; @Mapper public interface ResearchApplicationMapper extends BaseMapperX { default ResearchApplicationDO selectByNo(String no) { return selectOne(ResearchApplicationDO::getNo, no); } default PageResult selectPage(ResearchApplicationPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(ResearchApplicationDO::getNo, reqVO.getNo()) .likeIfPresent(ResearchApplicationDO::getTitle, reqVO.getTitle()) .eqIfPresent(ResearchApplicationDO::getGuidelineId, reqVO.getGuidelineId()) .eqIfPresent(ResearchApplicationDO::getCategory, reqVO.getCategory()) .eqIfPresent(ResearchApplicationDO::getMemberId, reqVO.getMemberId()) .eqIfPresent(ResearchApplicationDO::getStatus, reqVO.getStatus()) .betweenIfPresent(ResearchApplicationDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(ResearchApplicationDO::getId)); } /** 某课题指南下的申报单数量(用于删除指南前的占用校验) */ default Long selectCountByGuidelineId(Long guidelineId) { return selectCount(ResearchApplicationDO::getGuidelineId, guidelineId); } }