package org.dromara.payment.invoice.service;

import org.apache.ibatis.annotations.Param;
import org.dromara.payment.invoice.domain.MerInvoiceType;
import org.dromara.payment.invoice.domain.vo.MerInvoiceTypeVo;
import org.dromara.payment.invoice.domain.bo.MerInvoiceTypeBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.payment.operator.domain.bo.ReProductInvoiceBo;

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

/**
 * 发票类目Service接口
 *
 * @author LionLi
 * @date 2024-05-06
 */
public interface IMerInvoiceTypeService {

    /**
     * 查询发票类目
     */
    MerInvoiceTypeVo queryById(Long id);

    /**
     * 查询发票类目列表
     */
    TableDataInfo<MerInvoiceTypeVo> queryPageList(MerInvoiceTypeBo bo, PageQuery pageQuery);

    /**
     * 查询发票类目列表
     */
    List<MerInvoiceTypeVo> queryList(MerInvoiceTypeBo bo);

    /**
     * 查询发票类目列表
     * @param busType 业务类型（6：服务商 7：运营商 8：代理商 9：商户 11:账单批次）
     * @param busId 业务id(多个逗号分隔)
     * @param proId 产品id
     * @return
     */
    List<MerInvoiceTypeVo> selectList(int busType, String busId,int proId);

    /**
     * 新增发票类目
     */
    Boolean insertByBo(MerInvoiceTypeBo bo);

    /**
     * 修改发票类目
     */
    Boolean updateByBo(MerInvoiceTypeBo bo);

    /**
     * 校验并批量删除发票类目信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    List<Map> getListInvoice(MerInvoiceTypeBo bo);


    public List<Map> kp(Integer proId);
}
