package org.dromara.payment.sys.service;

import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.payment.merchant.domain.vo.BusMerchantVo;
import org.dromara.payment.sys.domain.bo.AccAccountsBo;
import org.dromara.payment.sys.domain.bo.ProInfoCommonBo;
import org.dromara.payment.sys.domain.vo.AccAccountsVo;
import org.dromara.payment.sys.domain.vo.ProInfoCommonVo;
import org.dromara.payment.sys.domain.vo.SysSydVo;
import org.dromara.system.api.domain.vo.RemoteDictDataVo;

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

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


    TableDataInfo<ProInfoCommonVo> queryPageList(ProInfoCommonBo bo, PageQuery pageQuery);


    /***
     * 查询不同角色的业务类型
     * @return
     */
    List<Integer> selDifRoleBusType();



    /*
     * @Param
     * @Return
     * @Author sunzexing
     * @Date 2024-04-25 9:46
     * 说明：给企业分配产品，对应的服务商查询，过滤已经分配过的服务商
     **/

    List<Map> selectAgentService(ProInfoCommonBo commonBo);


    /***
     * 根据不同的角色查询企业列表
     * @param commonBo
     * @return
     */
     List<BusMerchantVo>   selectMerchantList(ProInfoCommonBo commonBo);


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


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


    public  List<RemoteDictDataVo>  selectBusTypeByMerSerInfoName(Long merId, Long sydId);

}
