package cn.iocoder.yudao.module.crm.dal.mysql.credit;
|
|
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.credit.vo.CrmCreditRatingPageReqVO;
|
import cn.iocoder.yudao.module.crm.dal.dataobject.credit.CrmCreditRatingDO;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.util.List;
|
|
@Mapper
|
public interface CrmCreditRatingMapper extends BaseMapperX<CrmCreditRatingDO> {
|
|
default PageResult<CrmCreditRatingDO> selectPage(CrmCreditRatingPageReqVO reqVO) {
|
return selectPage(reqVO, buildQuery(reqVO));
|
}
|
|
default List<CrmCreditRatingDO> selectList(CrmCreditRatingPageReqVO reqVO) {
|
return selectList(buildQuery(reqVO));
|
}
|
|
default CrmCreditRatingDO selectLatestByCustomerId(Long customerId) {
|
return selectOne(new LambdaQueryWrapperX<CrmCreditRatingDO>()
|
.eq(CrmCreditRatingDO::getCustomerId, customerId)
|
.orderByDesc(CrmCreditRatingDO::getOperateTime)
|
.orderByDesc(CrmCreditRatingDO::getId)
|
.last("LIMIT 1"));
|
}
|
|
private LambdaQueryWrapperX<CrmCreditRatingDO> buildQuery(CrmCreditRatingPageReqVO reqVO) {
|
return new LambdaQueryWrapperX<CrmCreditRatingDO>()
|
.eqIfPresent(CrmCreditRatingDO::getCustomerId, reqVO.getCustomerId())
|
.eqIfPresent(CrmCreditRatingDO::getLevel, reqVO.getLevel())
|
.eqIfPresent(CrmCreditRatingDO::getEvalType, reqVO.getEvalType())
|
.orderByDesc(CrmCreditRatingDO::getOperateTime);
|
}
|
|
}
|