1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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<ResearchApplicationDO> {
 
    default ResearchApplicationDO selectByNo(String no) {
        return selectOne(ResearchApplicationDO::getNo, no);
    }
 
    default PageResult<ResearchApplicationDO> selectPage(ResearchApplicationPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<ResearchApplicationDO>()
                .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);
    }
 
}