package org.dromara.payment.channel.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.payment.channel.domain.BusChannelProduct;
import org.dromara.payment.channel.domain.bo.BusChannelProductBo;
import org.dromara.payment.channel.domain.vo.BusChannelProductVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 代理商产品Mapper接口
 *
 * @author LionLi
 * @date 2024-04-10
 */
public interface BusChannelProductMapper extends BaseMapperPlus<BusChannelProduct, BusChannelProductVo> {

    /*
     * @Param
     * @Return
     * @Author sunzexing
     * @Date 2024-04-25 15:51
     * 说明：根据代理商信息查询代理商的产品信息
     **/

    List<BusChannelProductVo> selectAgentProInfos(Map map);


    /*
     * @Param
     * @Return
     * @Author sunzexing
     * @Date 2024-04-25 15:51
     * 说明：根据运营商信息查询运营商的产品信息
     **/
    List<BusChannelProductVo> selectOperProInfos(Map map);


    /*
     * @Param
     * @Return
     * @Author sunzexing
     * @Date 2024-04-25 15:51
     * 说明：运营商分配-根据代理商信息查询代理商的产品信息
     **/
    Page<BusChannelProductVo> selectOperAgentProList(@Param("bo")BusChannelProductBo bo, @Param("page") IPage page);


    /***
     * 代理商分配-代理商分配产品
     * @param bo
     * @param page
     * @return
     */
    Page<BusChannelProductVo> selectAgentProList(@Param("bo")BusChannelProductBo bo, @Param("page") IPage page);


    /**
     * @Param
     * @Return
     * @Author sunzexing
     * @Date 2024-04-25 18:34
     * 说明：根据产品信息查询产品最小费率
     **/

    BigDecimal  selMinChargeFromChannelProByAgentInfo(Map map);



    int updateBusChannelCost(BusChannelProductBo busChannelProductBo);

}
