package com.yc.ship.module.product.dal.mysql.productOtherRule;

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.product.controller.admin.productSpu.otherRuleVO.ProductOtherRulePageReqVO;
import com.yc.ship.module.product.dal.dataobject.productOtherRule.ProductOtherRuleDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * 产品其他规则 Mapper
 *
 * @author 管理员
 */
@Mapper
public interface ProductOtherRuleMapper extends BaseMapperX<ProductOtherRuleDO> {

    default PageResult<ProductOtherRuleDO> selectPage(ProductOtherRulePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<ProductOtherRuleDO>()
                .eqIfPresent(ProductOtherRuleDO::getAutoStartSale, reqVO.getAutoStartSale())
                .eqIfPresent(ProductOtherRuleDO::getAutoStartSaleType, reqVO.getAutoStartSaleType())
                .betweenIfPresent(ProductOtherRuleDO::getAutoStartSaleTime, reqVO.getAutoStartSaleTime())
                .eqIfPresent(ProductOtherRuleDO::getAutoEndSale, reqVO.getAutoEndSale())
                .eqIfPresent(ProductOtherRuleDO::getAutoEndSaleType, reqVO.getAutoEndSaleType())
                .betweenIfPresent(ProductOtherRuleDO::getAutoEndSaleTime, reqVO.getAutoEndSaleTime())
                .eqIfPresent(ProductOtherRuleDO::getCanBuyDay, reqVO.getCanBuyDay())
                .eqIfPresent(ProductOtherRuleDO::getContractId, reqVO.getContractId())
                .eqIfPresent(ProductOtherRuleDO::getNeedInsurance, reqVO.getNeedInsurance())
                .eqIfPresent(ProductOtherRuleDO::getIsRecommend, reqVO.getIsRecommend())
                .eqIfPresent(ProductOtherRuleDO::getCtrlStatusType, reqVO.getCtrlStatusType())
                .betweenIfPresent(ProductOtherRuleDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(ProductOtherRuleDO::getId));
    }

}