package cn.iocoder.yudao.module.qcreport.dal.mysql.version; 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.qcreport.controller.admin.version.vo.QcReportTemplateVersionPageReqVO; import cn.iocoder.yudao.module.qcreport.dal.dataobject.version.QcReportTemplateVersionDO; import org.apache.ibatis.annotations.Mapper; import java.util.Collection; import java.util.List; @Mapper public interface QcReportTemplateVersionMapper extends BaseMapperX { default PageResult selectPage(QcReportTemplateVersionPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(QcReportTemplateVersionDO::getTemplateId, reqVO.getTemplateId()) .likeIfPresent(QcReportTemplateVersionDO::getVersion, reqVO.getVersion()) .eqIfPresent(QcReportTemplateVersionDO::getStatus, reqVO.getStatus()) .betweenIfPresent(QcReportTemplateVersionDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(QcReportTemplateVersionDO::getId)); } default List selectListByTemplateId(Long templateId) { return selectList(new LambdaQueryWrapperX() .eq(QcReportTemplateVersionDO::getTemplateId, templateId) .orderByDesc(QcReportTemplateVersionDO::getId)); } default List selectListByTemplateIdsAndStatus(Collection templateIds, Integer status) { return selectList(new LambdaQueryWrapperX() .in(QcReportTemplateVersionDO::getTemplateId, templateIds) .eq(QcReportTemplateVersionDO::getStatus, status)); } default QcReportTemplateVersionDO selectByTemplateIdAndVersion(Long templateId, String version) { return selectOne(new LambdaQueryWrapperX() .eq(QcReportTemplateVersionDO::getTemplateId, templateId) .eq(QcReportTemplateVersionDO::getVersion, version)); } /** * 查询模板的最新一个版本(按 id 倒序取第一条) */ default QcReportTemplateVersionDO selectLatestByTemplateId(Long templateId) { List list = selectList(new LambdaQueryWrapperX() .eq(QcReportTemplateVersionDO::getTemplateId, templateId) .orderByDesc(QcReportTemplateVersionDO::getId) .last("LIMIT 1")); return list.isEmpty() ? null : list.get(0); } }