package com.yc.ship.module.ota.dal.mysql.distributorrecharge;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yc.ship.framework.common.pojo.PageResult;
import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yc.ship.module.ota.controller.admin.distributorrecharge.vo.DistributorRechargePageReqVO;
import com.yc.ship.module.ota.controller.admin.distributorrecharge.vo.DistributorRechargeRespVO;
import com.yc.ship.module.ota.dal.dataobject.distributorrecharge.DistributorRechargeDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;


/**
 * 分销商充值 Mapper
 *
 * @author 管理员
 */
@Mapper
public interface DistributorRechargeMapper extends BaseMapperX<DistributorRechargeDO> {

    default PageResult<DistributorRechargeDO> selectPage(DistributorRechargePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<DistributorRechargeDO>()
                .eqIfPresent(DistributorRechargeDO::getDistributorId, reqVO.getDistributorId())
                .eqIfPresent(DistributorRechargeDO::getRechargeType, reqVO.getRechargeType())
                .eqIfPresent(DistributorRechargeDO::getRechargeMode, reqVO.getRechargeMode())
                .eqIfPresent(DistributorRechargeDO::getMoney, reqVO.getMoney())
                .eqIfPresent(DistributorRechargeDO::getApplyUser, reqVO.getApplyUser())
                .betweenIfPresent(DistributorRechargeDO::getApplyTime, reqVO.getApplyTime())
                .eqIfPresent(DistributorRechargeDO::getStatus, reqVO.getStatus())
                .eqIfPresent(DistributorRechargeDO::getAuditUser, reqVO.getAuditUser())
                .eqIfPresent(DistributorRechargeDO::getApplyUserName, reqVO.getApplyUserName())
                .eqIfPresent(DistributorRechargeDO::getAuditUserName, reqVO.getAuditUserName())
                .betweenIfPresent(DistributorRechargeDO::getAuditTime, reqVO.getAuditTime())
                .eqIfPresent(DistributorRechargeDO::getRechargeLogId, reqVO.getRechargeLogId())
                .orderByDesc(DistributorRechargeDO::getId));
    }

    IPage<DistributorRechargeRespVO> queryPage(IPage<DistributorRechargeDO> iPage, @Param("param")DistributorRechargePageReqVO pageReqVO);
}