package cn.iocoder.yudao.module.srm.dal.mysql; 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.srm.controller.admin.inquiry.vo.SrmInquiryPageReqVO; import cn.iocoder.yudao.module.srm.dal.dataobject.SrmInquiryDO; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface SrmInquiryMapper extends BaseMapperX { default PageResult selectPage(SrmInquiryPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(SrmInquiryDO::getNo, reqVO.getNo()) .likeIfPresent(SrmInquiryDO::getTitle, reqVO.getTitle()) .eqIfPresent(SrmInquiryDO::getStatus, reqVO.getStatus()) .geIfPresent(SrmInquiryDO::getInquiryDate, reqVO.getInquiryDateStart()) .leIfPresent(SrmInquiryDO::getInquiryDate, reqVO.getInquiryDateEnd()) .orderByDesc(SrmInquiryDO::getId)); } default SrmInquiryDO selectByNo(String no) { return selectOne(SrmInquiryDO::getNo, no); } default List selectListByStatus(Integer status) { return selectList(SrmInquiryDO::getStatus, status); } /** * 按当前状态条件更新,避免并发重复确认 */ default int updateByIdAndStatus(Long id, Integer whereStatus, SrmInquiryDO updateObj) { return update(updateObj, new com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper() .eq(SrmInquiryDO::getId, id) .eq(SrmInquiryDO::getStatus, whereStatus)); } }