package cn.iocoder.yudao.module.system.dal.mysql.reservation;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.controller.admin.reservation.vo.VisitRecordPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.reservation.VisitRecordDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * 客户回访记录 Mapper
 *
 * @author 系统管理员
 */
@Mapper
public interface VisitRecordMapper extends BaseMapperX<VisitRecordDO> {

    default PageResult<VisitRecordDO> selectPage(VisitRecordPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<VisitRecordDO>()
                .eqIfPresent(VisitRecordDO::getSourceId, reqVO.getSourceId())
                .eqIfPresent(VisitRecordDO::getSourceType, reqVO.getSourceType())
                .likeIfPresent(VisitRecordDO::getCustomerName, reqVO.getCustomerName())
                .eqIfPresent(VisitRecordDO::getPhone, reqVO.getPhone())
                .eq(VisitRecordDO::getDeleted,0)
                .eqIfPresent(VisitRecordDO::getReturnVisitor, reqVO.getReturnVisitor())
                .betweenIfPresent(VisitRecordDO::getReturnTime, reqVO.getReturnTime())
                .eqIfPresent(VisitRecordDO::getContent, reqVO.getContent())
                .eqIfPresent(VisitRecordDO::getStatus, reqVO.getStatus())
                .inIfPresent(VisitRecordDO::getTenantId,reqVO.getTenantIds())
                .orderByDesc(VisitRecordDO::getReturnTime));
    }

}