package cn.iocoder.yudao.module.crm.dal.mysql.contract; 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.crm.controller.admin.contract.vo.command.CrmContractCommandPageReqVO; import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractCommandDO; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface CrmContractCommandMapper extends BaseMapperX { default PageResult selectPage(CrmContractCommandPageReqVO reqVO) { return selectPage(reqVO, buildQuery(reqVO)); } default List selectListByContractId(Long contractId) { return selectList(new LambdaQueryWrapperX() .eq(CrmContractCommandDO::getContractId, contractId) .orderByDesc(CrmContractCommandDO::getOperateTime)); } private LambdaQueryWrapperX buildQuery(CrmContractCommandPageReqVO reqVO) { return new LambdaQueryWrapperX() .eqIfPresent(CrmContractCommandDO::getContractId, reqVO.getContractId()) .eqIfPresent(CrmContractCommandDO::getCommandType, reqVO.getCommandType()) .eqIfPresent(CrmContractCommandDO::getStatus, reqVO.getStatus()) .likeIfPresent(CrmContractCommandDO::getBizNo, reqVO.getBizNo()) .orderByDesc(CrmContractCommandDO::getOperateTime); } }