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.supplier.vo.SrmSupplierPageReqVO; import cn.iocoder.yudao.module.srm.dal.dataobject.SrmSupplierDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.Collection; import java.util.List; @Mapper public interface SrmSupplierMapper extends BaseMapperX { default PageResult selectPage(SrmSupplierPageReqVO reqVO) { LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX() .likeIfPresent(SrmSupplierDO::getCode, reqVO.getCode()) .likeIfPresent(SrmSupplierDO::getName, reqVO.getName()) .eqIfPresent(SrmSupplierDO::getType, reqVO.getType()) .eqIfPresent(SrmSupplierDO::getStatus, reqVO.getStatus()) .likeIfPresent(SrmSupplierDO::getContactName, reqVO.getContactName()) .likeIfPresent(SrmSupplierDO::getContactMobile, reqVO.getContactMobile()) .orderByDesc(SrmSupplierDO::getId); if (Boolean.TRUE.equals(reqVO.getApproved())) { wrapper.apply("id IN (SELECT supplier_id FROM srm_supplier_apply WHERE apply_status = 40 AND supplier_id IS NOT NULL AND deleted = 0)"); } return selectPage(reqVO, wrapper); } default SrmSupplierDO selectByCode(String code) { return selectOne(SrmSupplierDO::getCode, code); } default List selectListByStatus(Integer status) { return selectList(SrmSupplierDO::getStatus, status); } @Select("SELECT DISTINCT s.* FROM srm_supplier s " + "INNER JOIN srm_supplier_apply a ON a.supplier_id = s.id " + "WHERE a.apply_status = 40 AND s.status = 0 AND s.deleted = 0") List selectApprovedList(); }