package cn.iocoder.yudao.module.crm.dal.mysql.refund; 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.refund.vo.CrmRefundPageReqVO; import cn.iocoder.yudao.module.crm.dal.dataobject.refund.CrmRefundDO; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface CrmRefundMapper extends BaseMapperX { default PageResult selectPage(CrmRefundPageReqVO reqVO) { return selectPage(reqVO, buildQuery(reqVO)); } default List selectList(CrmRefundPageReqVO reqVO) { return selectList(buildQuery(reqVO)); } default CrmRefundDO selectByRefundNo(String refundNo) { return selectOne(new LambdaQueryWrapperX().eq(CrmRefundDO::getRefundNo, refundNo)); } private LambdaQueryWrapperX buildQuery(CrmRefundPageReqVO reqVO) { return new LambdaQueryWrapperX() .likeIfPresent(CrmRefundDO::getRefundNo, reqVO.getRefundNo()) .eqIfPresent(CrmRefundDO::getCustomerId, reqVO.getCustomerId()) .eqIfPresent(CrmRefundDO::getRefundType, reqVO.getRefundType()) .eqIfPresent(CrmRefundDO::getAuditStatus, reqVO.getAuditStatus()) .orderByDesc(CrmRefundDO::getId); } }