package org.dromara.payment.sys.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.payment.merchant.domain.vo.BusMerchantVo;
import org.dromara.payment.sys.domain.SysSyd;
import org.dromara.payment.sys.domain.bo.ProInfoCommonBo;
import org.dromara.payment.sys.domain.vo.ProInfoCommonVo;
import org.dromara.payment.sys.domain.vo.SysSydVo;

import java.util.List;
import java.util.Map;

/**
 * @author sunzexing
 * @version 1.0
 * @title ProInfoCommnoMapper
 * @description
 * @create 2024-04-24 17:31
 */
public interface ProInfoCommnoMapper {


    Page<ProInfoCommonVo> selectCommonProListAgent(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper);


    Page<ProInfoCommonVo> selectCommonProListMer(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper);


    Page<ProInfoCommonVo> selectCommonProListOper(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper);


    /***
     * @Param
     * @Return
     * @Author sunzexing
     * @Date 2024-04-24 18:52
     * 说明：查询代理商业务类型
     **/

    List<Integer>  selectAgentBusType( @Param(Constants.WRAPPER) Wrapper wrapper);



    /***
     * @Param
     * @Return
     * @Author sunzexing
     * @Date 2024-04-24 18:52
     * 说明：查询运营商业务类型
     **/
    List<Integer>  selectOperBusType( @Param(Constants.WRAPPER) Wrapper wrapper);


    /*
     * @Param
     * @Return
     * @Author sunzexing
     * @Date 2024-04-25 9:45
     * 说明：给企业分配产品，查询服务商
     **/

    List<Map> selectAgentService(ProInfoCommonBo commonBo);




    /***
     * 根据企业信息，查询企业对应的服务商
     * @param merchantVo
     * @return
     */
    List<SysSydVo>  selectServiceInfoByMerInfo(BusMerchantVo merchantVo);


    /***
     * 根据企业信息，服务商信息，查询对应的业务类型
     * @param map
     * @return
     */
    List<Integer> selectBusTypeByMerSerInfo(Map map);


    /***
     * 查询服务商对应的企业
     * @param id
     * @return
     */
    List<BusMerchantVo> selectMerListByServiceId(Long id);
}
